summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPixel <pixel@nobis-crew.org>2010-06-15 00:59:57 -0700
committerPixel <pixel@nobis-crew.org>2010-06-15 00:59:57 -0700
commiteed0eb6a476d54ce19aeff137984aa981d9e3976 (patch)
tree807891636efd2f87dcbd261e971216269973ae07
parentccc8261e4d48de89da4ddfe7b55e378ae0cd6f47 (diff)
Upgrading to iup 3.1
-rw-r--r--Makefile3
-rw-r--r--Makefile.mingw322
-rwxr-xr-xiup/COPYRIGHT2
-rwxr-xr-xiup/etc/iup.rc2
-rwxr-xr-xiup/include/iup.h19
-rwxr-xr-xiup/include/iupcbs.h2
-rwxr-xr-xiup/include/iupcontrols.h3
-rwxr-xr-xiup/include/iuplua.h2
-rwxr-xr-xiup/mak.vc8/iupgtk.vcproj4
-rwxr-xr-xiup/mak.vc8/iuplua5.vcproj8
-rwxr-xr-xiup/mak.vc8/iupmot.vcproj4
-rwxr-xr-xiup/mak.vc8/iupsample.vcproj7
-rwxr-xr-xiup/mak.vc8/iupsamplegtk.vcproj9
-rwxr-xr-xiup/mak.vc8/iuptest.vcproj16
-rwxr-xr-xiup/mak.vc8/iuptestgtk.vcproj16
-rwxr-xr-xiup/mak.vc8/iupwin.vcproj4
-rwxr-xr-xiup/mak.vc9/iup.sln12
-rwxr-xr-xiup/mak.vc9/iupcontrols.vcproj8
-rwxr-xr-xiup/mak.vc9/iupcore.vcproj15
-rwxr-xr-xiup/mak.vc9/iupgtk.vcproj4
-rwxr-xr-xiup/mak.vc9/iuplua3.vcproj8
-rwxr-xr-xiup/mak.vc9/iuplua5.vcproj8
-rwxr-xr-xiup/mak.vc9/iupluaexe5.vcproj2
-rwxr-xr-xiup/mak.vc9/iupmot.vcproj4
-rwxr-xr-xiup/mak.vc9/iupsample.vcproj2
-rwxr-xr-xiup/mak.vc9/iupsamplegtk.vcproj2
-rwxr-xr-xiup/mak.vc9/iuptest.vcproj4
-rwxr-xr-xiup/mak.vc9/iuptestgtk.vcproj5
-rwxr-xr-xiup/mak.vc9/iupwin.vcproj4
-rwxr-xr-xiup/src/Makefile11
-rwxr-xr-xiup/src/config.mak108
-rwxr-xr-xiup/src/gtk/iupgtk_button.c10
-rwxr-xr-xiup/src/gtk/iupgtk_canvas.c17
-rwxr-xr-xiup/src/gtk/iupgtk_common.c59
-rwxr-xr-xiup/src/gtk/iupgtk_dialog.c65
-rw-r--r--iup/src/gtk/iupgtk_draw.c161
-rwxr-xr-xiup/src/gtk/iupgtk_drv.h4
-rwxr-xr-xiup/src/gtk/iupgtk_filedlg.c63
-rwxr-xr-xiup/src/gtk/iupgtk_font.c4
-rwxr-xr-xiup/src/gtk/iupgtk_fontdlg.c7
-rwxr-xr-xiup/src/gtk/iupgtk_frame.c22
-rwxr-xr-xiup/src/gtk/iupgtk_key.c26
-rwxr-xr-xiup/src/gtk/iupgtk_label.c4
-rwxr-xr-xiup/src/gtk/iupgtk_list.c29
-rwxr-xr-xiup/src/gtk/iupgtk_loop.c7
-rwxr-xr-xiup/src/gtk/iupgtk_menu.c21
-rwxr-xr-xiup/src/gtk/iupgtk_open.c47
-rwxr-xr-xiup/src/gtk/iupgtk_tabs.c50
-rwxr-xr-xiup/src/gtk/iupgtk_text.c40
-rwxr-xr-xiup/src/gtk/iupgtk_toggle.c4
-rwxr-xr-xiup/src/gtk/iupgtk_tree.c1533
-rw-r--r--iup/src/gtk/iupmac_help.c46
-rw-r--r--iup/src/gtk/iupmac_info.c358
-rwxr-xr-xiup/src/iup.c8
-rwxr-xr-xiup/src/iup.def23
-rwxr-xr-xiup/src/iup_attrib.c73
-rwxr-xr-xiup/src/iup_attrib.h13
-rwxr-xr-xiup/src/iup_box.c8
-rwxr-xr-xiup/src/iup_button.c3
-rwxr-xr-xiup/src/iup_canvas.c4
-rwxr-xr-xiup/src/iup_classattrib.c11
-rwxr-xr-xiup/src/iup_classbase.c13
-rwxr-xr-xiup/src/iup_dialog.c17
-rw-r--r--iup/src/iup_draw.h98
-rwxr-xr-xiup/src/iup_drv.h4
-rwxr-xr-xiup/src/iup_focus.c27
-rwxr-xr-xiup/src/iup_focus.h1
-rwxr-xr-xiup/src/iup_getparam.c97
-rwxr-xr-xiup/src/iup_globalattrib.c6
-rwxr-xr-xiup/src/iup_hbox.c7
-rwxr-xr-xiup/src/iup_key.h20
-rwxr-xr-xiup/src/iup_layout.c23
-rwxr-xr-xiup/src/iup_layout.h2
-rwxr-xr-xiup/src/iup_ledlex.c15
-rwxr-xr-xiup/src/iup_list.c59
-rwxr-xr-xiup/src/iup_list.h1
-rwxr-xr-xiup/src/iup_names.c134
-rwxr-xr-xiup/src/iup_names.h2
-rwxr-xr-xiup/src/iup_object.c11
-rwxr-xr-xiup/src/iup_object.h1
-rwxr-xr-xiup/src/iup_open.c4
-rwxr-xr-xiup/src/iup_register.c1
-rwxr-xr-xiup/src/iup_sbox.c1
-rwxr-xr-xiup/src/iup_show.c46
-rwxr-xr-xiup/src/iup_spin.c9
-rw-r--r--iup/src/iup_split.c780
-rwxr-xr-xiup/src/iup_stdcontrols.h1
-rwxr-xr-xiup/src/iup_str.c24
-rwxr-xr-xiup/src/iup_table.c100
-rwxr-xr-xiup/src/iup_table.h18
-rwxr-xr-xiup/src/iup_tabs.c19
-rwxr-xr-xiup/src/iup_tabs.h1
-rwxr-xr-xiup/src/iup_tree.c397
-rwxr-xr-xiup/src/iup_tree.h36
-rwxr-xr-xiup/src/iup_vbox.c7
-rwxr-xr-xiup/src/iup_zbox.c6
-rwxr-xr-xiup/src/make_uname2
-rwxr-xr-xiup/src/mot/iupmot_button.c44
-rwxr-xr-xiup/src/mot/iupmot_canvas.c48
-rwxr-xr-xiup/src/mot/iupmot_common.c19
-rwxr-xr-xiup/src/mot/iupmot_dialog.c62
-rw-r--r--iup/src/mot/iupmot_draw.c188
-rwxr-xr-xiup/src/mot/iupmot_drv.h2
-rwxr-xr-xiup/src/mot/iupmot_filedlg.c104
-rwxr-xr-xiup/src/mot/iupmot_font.c14
-rwxr-xr-xiup/src/mot/iupmot_frame.c58
-rwxr-xr-xiup/src/mot/iupmot_key.c20
-rwxr-xr-xiup/src/mot/iupmot_label.c40
-rwxr-xr-xiup/src/mot/iupmot_list.c105
-rwxr-xr-xiup/src/mot/iupmot_loop.c15
-rwxr-xr-xiup/src/mot/iupmot_menu.c26
-rwxr-xr-xiup/src/mot/iupmot_progressbar.c30
-rwxr-xr-xiup/src/mot/iupmot_tabs.c73
-rwxr-xr-xiup/src/mot/iupmot_text.c108
-rwxr-xr-xiup/src/mot/iupmot_toggle.c72
-rwxr-xr-xiup/src/mot/iupmot_tree.c1636
-rwxr-xr-xiup/src/mot/iupmot_val.c42
-rwxr-xr-xiup/src/mot/iupunix_info.c2
-rwxr-xr-xiup/src/win/iupwin_button.c62
-rwxr-xr-xiup/src/win/iupwin_canvas.c54
-rwxr-xr-xiup/src/win/iupwin_common.c55
-rwxr-xr-xiup/src/win/iupwin_dialog.c26
-rwxr-xr-xiup/src/win/iupwin_draw.c374
-rwxr-xr-xiup/src/win/iupwin_drv.h5
-rwxr-xr-xiup/src/win/iupwin_filedlg.c72
-rwxr-xr-xiup/src/win/iupwin_focus.c17
-rwxr-xr-xiup/src/win/iupwin_font.c4
-rwxr-xr-xiup/src/win/iupwin_fontdlg.c6
-rwxr-xr-xiup/src/win/iupwin_frame.c43
-rwxr-xr-xiup/src/win/iupwin_globalattrib.c7
-rwxr-xr-xiup/src/win/iupwin_info.c2
-rwxr-xr-xiup/src/win/iupwin_info.h2
-rwxr-xr-xiup/src/win/iupwin_key.c20
-rwxr-xr-xiup/src/win/iupwin_label.c27
-rwxr-xr-xiup/src/win/iupwin_list.c55
-rwxr-xr-xiup/src/win/iupwin_loop.c12
-rwxr-xr-xiup/src/win/iupwin_menu.c3
-rwxr-xr-xiup/src/win/iupwin_open.c5
-rwxr-xr-xiup/src/win/iupwin_progressbar.c2
-rwxr-xr-xiup/src/win/iupwin_tabs.c56
-rwxr-xr-xiup/src/win/iupwin_text.c52
-rwxr-xr-xiup/src/win/iupwin_toggle.c32
-rwxr-xr-xiup/src/win/iupwin_tree.c1292
-rwxr-xr-xiup/src/win/iupwin_val.c37
-rwxr-xr-xiup/srccd/Makefile2
-rwxr-xr-xiup/srccd/iup_cd.c7
-rwxr-xr-xiup/srcconsole/Makefile6
-rwxr-xr-xiup/srcconsole/config.mak51
-rwxr-xr-xiup/srcconsole/console5.lua171
-rwxr-xr-xiup/srcconsole/copy_all_so8
-rw-r--r--iup/srcconsole/copy_cygdll.bat8
-rw-r--r--iup/srcconsole/copy_dylib6
-rwxr-xr-xiup/srcconsole/copy_so2
-rwxr-xr-xiup/srcconsole/iuplua3.rc2
-rwxr-xr-xiup/srcconsole/iuplua5.rc2
-rwxr-xr-xiup/srcconsole/loh/console3.loh254
-rwxr-xr-xiup/srcconsole/loh/console3_be32.loh254
-rwxr-xr-xiup/srcconsole/loh/console3_be64.loh254
-rwxr-xr-xiup/srcconsole/loh/console3_le64.loh251
-rwxr-xr-xiup/srcconsole/loh/console3_le64w.loh251
-rwxr-xr-xiup/srcconsole/loh/console5.loh475
-rwxr-xr-xiup/srcconsole/loh/console5_be32.loh475
-rwxr-xr-xiup/srcconsole/loh/console5_be64.loh524
-rwxr-xr-xiup/srcconsole/loh/console5_le64.loh524
-rwxr-xr-xiup/srcconsole/loh/console5_le64w.loh525
-rwxr-xr-xiup/srcconsole/make_uname.bat10
-rwxr-xr-xiup/srccontrols/Makefile2
-rwxr-xr-xiup/srccontrols/color/iup_colorbrowser.c8
-rwxr-xr-xiup/srccontrols/color/iup_colorbrowserdlg.c8
-rwxr-xr-xiup/srccontrols/config.mak2
-rwxr-xr-xiup/srccontrols/iup_cells.c6
-rwxr-xr-xiup/srccontrols/iup_colorbar.c6
-rwxr-xr-xiup/srccontrols/iup_dial.c10
-rwxr-xr-xiup/srccontrols/iup_gauge.c6
-rwxr-xr-xiup/srccontrols/iup_oldmask.c4
-rwxr-xr-xiup/srccontrols/iup_oldtabs.c6
-rwxr-xr-xiup/srccontrols/iup_oldval.c16
-rwxr-xr-xiup/srccontrols/matrix/iupmat_aux.c212
-rwxr-xr-xiup/srccontrols/matrix/iupmat_aux.h9
-rwxr-xr-xiup/srccontrols/matrix/iupmat_cd.h12
-rwxr-xr-xiup/srccontrols/matrix/iupmat_colres.c54
-rwxr-xr-xiup/srccontrols/matrix/iupmat_def.h11
-rwxr-xr-xiup/srccontrols/matrix/iupmat_draw.c192
-rwxr-xr-xiup/srccontrols/matrix/iupmat_edit.c35
-rwxr-xr-xiup/srccontrols/matrix/iupmat_focus.c8
-rwxr-xr-xiup/srccontrols/matrix/iupmat_getset.c4
-rwxr-xr-xiup/srccontrols/matrix/iupmat_getset.h2
-rwxr-xr-xiup/srccontrols/matrix/iupmat_key.c18
-rwxr-xr-xiup/srccontrols/matrix/iupmat_mouse.c22
-rwxr-xr-xiup/srccontrols/matrix/iupmat_numlc.c8
-rwxr-xr-xiup/srccontrols/matrix/iupmat_scroll.c282
-rwxr-xr-xiup/srccontrols/matrix/iupmat_scroll.h64
-rwxr-xr-xiup/srccontrols/matrix/iupmatrix.c90
-rwxr-xr-xiup/srcgl/Makefile2
-rwxr-xr-xiup/srcim/Makefile2
-rwxr-xr-xiup/srcim/iup_im.c27
-rwxr-xr-xiup/srcimglib/Makefile2
-rwxr-xr-xiup/srcledc/Makefile2
-rwxr-xr-xiup/srclua3/Makefile12
-rwxr-xr-xiup/srclua3/config.mak4
-rwxr-xr-xiup/srclua3/il.h1
-rwxr-xr-xiup/srclua3/il_getparam.c4
-rw-r--r--iup/srclua3/il_split.c50
-rwxr-xr-xiup/srclua3/il_tree.c24
-rwxr-xr-xiup/srclua3/iuplua.c1
-rwxr-xr-xiup/srclua3/iuplua_api.c2
-rwxr-xr-xiup/srclua3/iuplua_widgets.c7
-rwxr-xr-xiup/srclua3/iuplua_widgets.lua2
-rwxr-xr-xiup/srclua3/loh/cells.loh76
-rwxr-xr-xiup/srclua3/loh/cells_be32.loh76
-rwxr-xr-xiup/srclua3/loh/cells_be64.loh75
-rwxr-xr-xiup/srclua3/loh/cells_le64.loh76
-rwxr-xr-xiup/srclua3/loh/cells_le64w.loh76
-rwxr-xr-xiup/srclua3/loh/colorbar.loh49
-rwxr-xr-xiup/srclua3/loh/colorbar_be32.loh49
-rwxr-xr-xiup/srclua3/loh/colorbar_be64.loh48
-rwxr-xr-xiup/srclua3/loh/colorbar_le64.loh49
-rwxr-xr-xiup/srclua3/loh/colorbar_le64w.loh49
-rwxr-xr-xiup/srclua3/loh/colorbrowser.loh39
-rwxr-xr-xiup/srclua3/loh/colorbrowser_be32.loh39
-rwxr-xr-xiup/srclua3/loh/colorbrowser_be64.loh40
-rwxr-xr-xiup/srclua3/loh/colorbrowser_le64.loh39
-rwxr-xr-xiup/srclua3/loh/colorbrowser_le64w.loh39
-rwxr-xr-xiup/srclua3/loh/constants.loh301
-rwxr-xr-xiup/srclua3/loh/constants_be32.loh289
-rwxr-xr-xiup/srclua3/loh/constants_be64.loh301
-rwxr-xr-xiup/srclua3/loh/constants_le64.loh289
-rwxr-xr-xiup/srclua3/loh/constants_le64w.loh301
-rwxr-xr-xiup/srclua3/loh/dial.loh31
-rwxr-xr-xiup/srclua3/loh/dial_be32.loh31
-rwxr-xr-xiup/srclua3/loh/dial_be64.loh30
-rwxr-xr-xiup/srclua3/loh/dial_le64.loh31
-rwxr-xr-xiup/srclua3/loh/dial_le64w.loh31
-rwxr-xr-xiup/srclua3/loh/gauge.loh28
-rwxr-xr-xiup/srclua3/loh/gauge_be32.loh28
-rwxr-xr-xiup/srclua3/loh/gauge_be64.loh27
-rwxr-xr-xiup/srclua3/loh/gauge_le64.loh28
-rwxr-xr-xiup/srclua3/loh/gauge_le64w.loh28
-rwxr-xr-xiup/srclua3/loh/iuplua.loh170
-rwxr-xr-xiup/srclua3/loh/iuplua_be32.loh170
-rwxr-xr-xiup/srclua3/loh/iuplua_be64.loh170
-rwxr-xr-xiup/srclua3/loh/iuplua_le64.loh170
-rwxr-xr-xiup/srclua3/loh/iuplua_le64w.loh170
-rwxr-xr-xiup/srclua3/loh/iuplua_widgets.loh939
-rwxr-xr-xiup/srclua3/loh/iuplua_widgets_be32.loh939
-rwxr-xr-xiup/srclua3/loh/iuplua_widgets_be64.loh939
-rwxr-xr-xiup/srclua3/loh/iuplua_widgets_le64.loh939
-rwxr-xr-xiup/srclua3/loh/iuplua_widgets_le64w.loh920
-rwxr-xr-xiup/srclua3/loh/matrix.loh120
-rwxr-xr-xiup/srclua3/loh/matrix_be32.loh120
-rwxr-xr-xiup/srclua3/loh/matrix_be64.loh120
-rwxr-xr-xiup/srclua3/loh/matrix_le64.loh120
-rwxr-xr-xiup/srclua3/loh/matrix_le64w.loh118
-rwxr-xr-xiup/srclua3/loh/pplot.loh68
-rwxr-xr-xiup/srclua3/loh/pplot_be32.loh68
-rwxr-xr-xiup/srclua3/loh/pplot_be64.loh68
-rwxr-xr-xiup/srclua3/loh/pplot_le64.loh68
-rwxr-xr-xiup/srclua3/loh/pplot_le64w.loh69
-rwxr-xr-xiup/srclua3/loh/sbox.loh27
-rwxr-xr-xiup/srclua3/loh/sbox_be32.loh27
-rwxr-xr-xiup/srclua3/loh/sbox_be64.loh27
-rwxr-xr-xiup/srclua3/loh/sbox_le64.loh27
-rwxr-xr-xiup/srclua3/loh/sbox_le64w.loh27
-rwxr-xr-xiup/srclua3/loh/spin.loh43
-rwxr-xr-xiup/srclua3/loh/spin_be32.loh43
-rwxr-xr-xiup/srclua3/loh/spin_be64.loh43
-rwxr-xr-xiup/srclua3/loh/spin_le64.loh43
-rwxr-xr-xiup/srclua3/loh/spin_le64w.loh44
-rwxr-xr-xiup/srclua3/loh/tabs.loh33
-rwxr-xr-xiup/srclua3/loh/tabs_be32.loh33
-rwxr-xr-xiup/srclua3/loh/tabs_be64.loh33
-rwxr-xr-xiup/srclua3/loh/tabs_le64.loh33
-rwxr-xr-xiup/srclua3/loh/tabs_le64w.loh34
-rwxr-xr-xiup/srclua3/loh/tree.loh115
-rwxr-xr-xiup/srclua3/loh/tree_be32.loh115
-rwxr-xr-xiup/srclua3/loh/tree_be64.loh115
-rwxr-xr-xiup/srclua3/loh/tree_le64.loh115
-rwxr-xr-xiup/srclua3/loh/tree_le64w.loh116
-rwxr-xr-xiup/srclua3/loh/val.loh45
-rwxr-xr-xiup/srclua3/loh/val_be32.loh45
-rwxr-xr-xiup/srclua3/loh/val_be64.loh45
-rwxr-xr-xiup/srclua3/loh/val_le64.loh45
-rwxr-xr-xiup/srclua3/loh/val_le64w.loh45
-rw-r--r--iup/srclua3/split.lua10
-rwxr-xr-xiup/srclua3/tree.lua2
-rwxr-xr-xiup/srclua5/Makefile14
-rwxr-xr-xiup/srclua5/button.lua10
-rwxr-xr-xiup/srclua5/canvas.lua10
-rwxr-xr-xiup/srclua5/cbox.lua10
-rwxr-xr-xiup/srclua5/cells.lua10
-rwxr-xr-xiup/srclua5/clipboard.lua10
-rw-r--r--iup/srclua5/clua/button.clua27
-rw-r--r--iup/srclua5/clua/canvas.clua58
-rw-r--r--iup/srclua5/clua/cbox.clua55
-rw-r--r--iup/srclua5/clua/cells.clua69
-rw-r--r--iup/srclua5/clua/clipboard.clua25
-rw-r--r--iup/srclua5/clua/colorbar.clua48
-rw-r--r--iup/srclua5/clua/colorbrowser.clua39
-rw-r--r--iup/srclua5/clua/colordlg.clua41
-rw-r--r--iup/srclua5/clua/constants.clua125
-rw-r--r--iup/srclua5/clua/dial.clua55
-rw-r--r--iup/srclua5/clua/dialog.clua67
-rw-r--r--iup/srclua5/clua/filedlg.clua46
-rw-r--r--iup/srclua5/clua/fill.clua23
-rw-r--r--iup/srclua5/clua/fontdlg.clua43
-rw-r--r--iup/srclua5/clua/frame.clua25
-rw-r--r--iup/srclua5/clua/gauge.clua29
-rw-r--r--iup/srclua5/clua/glcanvas.clua85
-rw-r--r--iup/srclua5/clua/hbox.clua27
-rw-r--r--iup/srclua5/clua/image.clua246
-rw-r--r--iup/srclua5/clua/imagergb.clua73
-rw-r--r--iup/srclua5/clua/imagergba.clua73
-rw-r--r--iup/srclua5/clua/item.clua31
-rw-r--r--iup/srclua5/clua/iuplua.clua804
-rw-r--r--iup/srclua5/clua/label.clua25
-rw-r--r--iup/srclua5/clua/list.clua39
-rw-r--r--iup/srclua5/clua/matrix.clua117
-rw-r--r--iup/srclua5/clua/menu.clua134
-rw-r--r--iup/srclua5/clua/messagedlg.clua43
-rw-r--r--iup/srclua5/clua/multiline.clua29
-rw-r--r--iup/srclua5/clua/normalizer.clua56
-rw-r--r--iup/srclua5/clua/olecontrol.clua119
-rw-r--r--iup/srclua5/clua/pplot.clua87
-rw-r--r--iup/srclua5/clua/progressbar.clua27
-rw-r--r--iup/srclua5/clua/radio.clua69
-rw-r--r--iup/srclua5/clua/sbox.clua25
-rw-r--r--iup/srclua5/clua/separator.clua23
-rw-r--r--iup/srclua5/clua/spin.clua27
-rw-r--r--iup/srclua5/clua/spinbox.clua28
-rw-r--r--iup/srclua5/clua/split.clua32
-rw-r--r--iup/srclua5/clua/submenu.clua35
-rw-r--r--iup/srclua5/clua/tabs.clua59
-rw-r--r--iup/srclua5/clua/text.clua36
-rw-r--r--iup/srclua5/clua/timer.clua25
-rw-r--r--iup/srclua5/clua/toggle.clua29
-rw-r--r--iup/srclua5/clua/tree.clua325
-rw-r--r--iup/srclua5/clua/user.clua23
-rw-r--r--iup/srclua5/clua/val.clua34
-rw-r--r--iup/srclua5/clua/vbox.clua27
-rw-r--r--iup/srclua5/clua/zbox.clua57
-rwxr-xr-xiup/srclua5/colorbar.lua14
-rwxr-xr-xiup/srclua5/colorbrowser.lua10
-rwxr-xr-xiup/srclua5/colordlg.lua14
-rwxr-xr-xiup/srclua5/config.mak2
-rwxr-xr-xiup/srclua5/constants.lua86
-rwxr-xr-xiup/srclua5/ctrl_template.lua12
-rwxr-xr-xiup/srclua5/dial.lua12
-rwxr-xr-xiup/srclua5/dialog.lua17
-rwxr-xr-xiup/srclua5/filedlg.lua14
-rwxr-xr-xiup/srclua5/fill.lua10
-rwxr-xr-xiup/srclua5/fontdlg.lua14
-rwxr-xr-xiup/srclua5/frame.lua12
-rwxr-xr-xiup/srclua5/gauge.lua10
-rwxr-xr-xiup/srclua5/generator.lua11
-rwxr-xr-xiup/srclua5/glcanvas.lua13
-rwxr-xr-xiup/srclua5/hbox.lua12
-rwxr-xr-xiup/srclua5/il.h14
-rwxr-xr-xiup/srclua5/il_dial.c2
-rwxr-xr-xiup/srclua5/il_dialog.c33
-rwxr-xr-xiup/srclua5/il_frame.c2
-rwxr-xr-xiup/srclua5/il_getcolor.c4
-rwxr-xr-xiup/srclua5/il_getparam.c4
-rwxr-xr-xiup/srclua5/il_glcanvas.c3
-rwxr-xr-xiup/srclua5/il_olecontrol.c3
-rwxr-xr-xiup/srclua5/il_radio.c2
-rwxr-xr-xiup/srclua5/il_sbox.c2
-rw-r--r--iup/srclua5/il_split.c31
-rwxr-xr-xiup/srclua5/il_submenu.c2
-rwxr-xr-xiup/srclua5/il_tree.c27
-rwxr-xr-xiup/srclua5/il_tree_aux.c21
-rwxr-xr-xiup/srclua5/il_val.c2
-rwxr-xr-xiup/srclua5/image.lua14
-rwxr-xr-xiup/srclua5/imagergb.lua10
-rwxr-xr-xiup/srclua5/imagergba.lua10
-rwxr-xr-xiup/srclua5/item.lua10
-rwxr-xr-xiup/srclua5/iuplua.c118
-rwxr-xr-xiup/srclua5/iuplua.lua165
-rwxr-xr-xiup/srclua5/iuplua5.def3
-rwxr-xr-xiup/srclua5/iuplua_api.c17
-rwxr-xr-xiup/srclua5/iuplua_controls.c4
-rwxr-xr-xiup/srclua5/iuplua_glcanvas.c3
-rwxr-xr-xiup/srclua5/iuplua_im.c3
-rwxr-xr-xiup/srclua5/iuplua_imglib.c3
-rwxr-xr-xiup/srclua5/iuplua_pplot.c3
-rwxr-xr-xiup/srclua5/label.lua10
-rwxr-xr-xiup/srclua5/list.lua10
-rwxr-xr-xiup/srclua5/matrix.lua14
-rwxr-xr-xiup/srclua5/menu.lua42
-rwxr-xr-xiup/srclua5/messagedlg.lua14
-rwxr-xr-xiup/srclua5/multiline.lua10
-rwxr-xr-xiup/srclua5/normalizer.lua20
-rwxr-xr-xiup/srclua5/olecontrol.lua13
-rwxr-xr-xiup/srclua5/pplot.lua10
-rwxr-xr-xiup/srclua5/progressbar.lua10
-rwxr-xr-xiup/srclua5/radio.lua26
-rwxr-xr-xiup/srclua5/sbox.lua14
-rwxr-xr-xiup/srclua5/separator.lua10
-rwxr-xr-xiup/srclua5/spin.lua10
-rwxr-xr-xiup/srclua5/spinbox.lua10
-rw-r--r--iup/srclua5/split.lua16
-rwxr-xr-xiup/srclua5/submenu.lua12
-rwxr-xr-xiup/srclua5/tabs.lua10
-rwxr-xr-xiup/srclua5/text.lua10
-rwxr-xr-xiup/srclua5/timer.lua10
-rwxr-xr-xiup/srclua5/toggle.lua10
-rwxr-xr-xiup/srclua5/tree.lua107
-rwxr-xr-xiup/srclua5/user.lua10
-rwxr-xr-xiup/srclua5/val.lua12
-rwxr-xr-xiup/srclua5/vbox.lua12
-rwxr-xr-xiup/srclua5/zbox.lua18
-rwxr-xr-xiup/srcole/config.mak5
-rwxr-xr-xiup/srcole/tLegacy.h2
-rwxr-xr-xiup/srcole/tOleInPlaceSite.cpp10
-rwxr-xr-xiup/srcpplot/Makefile2
-rwxr-xr-xiup/srcpplot/iupPPlot.cpp2
-rwxr-xr-xiup/srcpplot/iup_pplot.cpp309
-rwxr-xr-xiup/srcview/Makefile4
-rwxr-xr-xiup/srcview/config.mak29
-rwxr-xr-xiup/srcview/iup_view.c66
-rwxr-xr-xiup/srcview/make_uname.bat8
-rwxr-xr-xiup/tecmake_compact.mak1172
-rwxr-xr-xiup/test/bigtest.c4
-rwxr-xr-xiup/test/button.c20
-rwxr-xr-xiup/test/canvas.c40
-rwxr-xr-xiup/test/config.mak42
-rwxr-xr-xiup/test/dialog.c2
-rwxr-xr-xiup/test/frame.c7
-rwxr-xr-xiup/test/getparam.c4
-rwxr-xr-xiup/test/glcanvas_cube.c2
-rwxr-xr-xiup/test/list.c15
-rwxr-xr-xiup/test/make_uname3
-rwxr-xr-xiup/test/matrix.c41
-rwxr-xr-xiup/test/matrix_cbmode.c66
-rwxr-xr-xiup/test/matrix_cbs.c2
-rwxr-xr-xiup/test/pplot.c9
-rwxr-xr-xiup/test/predialogs.c26
-rwxr-xr-xiup/test/sample.c24
-rw-r--r--iup/test/split.c47
-rwxr-xr-xiup/test/tabs.c1
-rwxr-xr-xiup/test/tree.c109
-rwxr-xr-xiup/test/val.c6
-rwxr-xr-xiup/test/vbox.c12
-rwxr-xr-xiup/test/zbox.c5
-rw-r--r--rclua519591
444 files changed, 30445 insertions, 21907 deletions
diff --git a/Makefile b/Makefile
index 5d5750a..9a92a05 100644
--- a/Makefile
+++ b/Makefile
@@ -258,8 +258,10 @@ iup_sbox.c \
iup_normalizer.c \
iup_tree.c \
iup_oldmask.c \
+iup_split.c \
iupmot_common.c \
iupmot_color.c \
+iupmot_draw.c \
iupmot_focus.c \
iupmot_font.c \
iupmot_key.c \
@@ -356,6 +358,7 @@ il_tabs.c \
il_fontdlg.c \
il_tree.c \
il_progressbar.c \
+il_split.c \
iuplua_cd.c \
iuplua_controls.c \
il_mask.c \
diff --git a/Makefile.mingw32 b/Makefile.mingw32
index f4c7fd8..48a1e79 100644
--- a/Makefile.mingw32
+++ b/Makefile.mingw32
@@ -246,6 +246,7 @@ iup_getparam.c \
iup_sbox.c \
iup_normalizer.c \
iup_tree.c \
+iup_split.c \
iupwin_brush.c \
iupwin_button.c \
iupwin_canvas.c \
@@ -411,6 +412,7 @@ il_tabs.c \
il_fontdlg.c \
il_tree.c \
il_progressbar.c \
+il_split.c \
iuplua_cd.c \
iuplua_controls.c \
il_mask.c \
diff --git a/iup/COPYRIGHT b/iup/COPYRIGHT
index dd31d6c..0061f2d 100755
--- a/iup/COPYRIGHT
+++ b/iup/COPYRIGHT
@@ -7,7 +7,7 @@ and commercial purposes at absolutely no cost.
===============================================================================
-Copyright (C) 1994-2009 Tecgraf, PUC-Rio.
+Copyright (C) 1994-2010 Tecgraf, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/iup/etc/iup.rc b/iup/etc/iup.rc
index eab8cf5..49c324d 100755
--- a/iup/etc/iup.rc
+++ b/iup/etc/iup.rc
@@ -12,7 +12,7 @@ BEGIN
VALUE "CompanyName", "Tecgraf/PUC-Rio\0"
VALUE "FileDescription", "IUP - Portable User Interface\0"
VALUE "FileVersion", "3.0.0\0"
- VALUE "LegalCopyright", "Copyright © 1994-2009 Tecgraf, PUC-Rio.\0"
+ VALUE "LegalCopyright", "Copyright © 1994-2010 Tecgraf, PUC-Rio.\0"
VALUE "OriginalFilename", "iup.dll\0"
VALUE "ProductName", "IUP for Windows\0"
VALUE "ProductVersion", "3.0.0\0"
diff --git a/iup/include/iup.h b/iup/include/iup.h
index 9913329..2d33b98 100755
--- a/iup/include/iup.h
+++ b/iup/include/iup.h
@@ -19,11 +19,11 @@ extern "C" {
#define IUP_NAME "IUP - Portable User Interface"
-#define IUP_COPYRIGHT "Copyright (C) 1994-2009 Tecgraf, PUC-Rio."
+#define IUP_COPYRIGHT "Copyright (C) 1994-2010 Tecgraf, PUC-Rio."
#define IUP_DESCRIPTION "Portable toolkit for building graphical user interfaces."
-#define IUP_VERSION "3.0" /* bug fixes are reported only by IupVersion functions */
-#define IUP_VERSION_NUMBER 300000
-#define IUP_VERSION_DATE "2009/10/02"
+#define IUP_VERSION "3.1" /* bug fixes are reported only by IupVersion functions */
+#define IUP_VERSION_NUMBER 301000
+#define IUP_VERSION_DATE "2010/04/22"
typedef struct Ihandle_ Ihandle;
typedef int (*Icallback)(Ihandle*);
@@ -38,6 +38,7 @@ void IupImageLibOpen (void);
int IupMainLoop (void);
int IupLoopStep (void);
+int IupLoopStepWait (void);
int IupMainLoopLevel (void);
void IupFlush (void);
void IupExitLoop (void);
@@ -148,6 +149,7 @@ Ihandle* IupNormalizerv(Ihandle* *ih_list);
Ihandle* IupCbox (Ihandle* child, ...);
Ihandle* IupCboxv (Ihandle* *children);
Ihandle* IupSbox (Ihandle *child);
+Ihandle* IupSplit (Ihandle* child1, Ihandle* child2);
Ihandle* IupFrame (Ihandle* child);
@@ -197,12 +199,13 @@ int IupTreeSetUserId(Ihandle* ih, int id, void* userid);
void* IupTreeGetUserId(Ihandle* ih, int id);
int IupTreeGetId(Ihandle* ih, void *userid);
-void IupTreeSetAttribute (Ihandle* ih, const char* name, int id, char* value);
-void IupTreeStoreAttribute(Ihandle* ih, const char* name, int id, char* value);
+void IupTreeSetAttribute (Ihandle* ih, const char* name, int id, const char* value);
+void IupTreeStoreAttribute(Ihandle* ih, const char* name, int id, const char* value);
char* IupTreeGetAttribute (Ihandle* ih, const char* name, int id);
int IupTreeGetInt (Ihandle* ih, const char* name, int id);
float IupTreeGetFloat (Ihandle* ih, const char* name, int id);
-void IupTreeSetfAttribute (Ihandle* ih, const char* name, int id, char* format, ...);
+void IupTreeSetfAttribute (Ihandle* ih, const char* name, int id, const char* format, ...);
+void IupTreeSetAttributeHandle(Ihandle* ih, const char* a, int id, Ihandle* ih_named);
/************************************************************************/
@@ -338,7 +341,7 @@ int IupMain (int argc, char** argv); /* In C++ we have to declare the prototype
#endif
/******************************************************************************
-* Copyright (C) 1994-2009 Tecgraf, PUC-Rio.
+* Copyright (C) 1994-2010 Tecgraf, PUC-Rio.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
diff --git a/iup/include/iupcbs.h b/iup/include/iupcbs.h
index f33166b..70d117f 100755
--- a/iup/include/iupcbs.h
+++ b/iup/include/iupcbs.h
@@ -24,7 +24,7 @@ typedef int (*IFnnii)(Ihandle*, Ihandle*, int, int); /* drop_cb */
typedef int (*IFnnn)(Ihandle*, Ihandle*, Ihandle*); /* tabchange_cb */
typedef int (*IFnss)(Ihandle*, char *, char *); /* file_cb */
typedef int (*IFns)(Ihandle*, char *); /* multiselect_cb */
-typedef int (*IFnis)(Ihandle*, int, char *); /* text_action, multiline_action, edit_cb, renamenode_cb, rename_cb */
+typedef int (*IFnis)(Ihandle*, int, char *); /* text_action, multiline_action, edit_cb, rename_cb */
typedef int (*IFnsii)(Ihandle*, char*, int, int); /* list_action */
typedef int (*IFnsiii)(Ihandle*, char*, int, int, int); /* dropfiles_cb */
typedef int (*IFniis)(Ihandle*, int, int, char*); /* motion_cb, click_cb, value_edit_cb */
diff --git a/iup/include/iupcontrols.h b/iup/include/iupcontrols.h
index c7bc566..a30d407 100755
--- a/iup/include/iupcontrols.h
+++ b/iup/include/iupcontrols.h
@@ -15,9 +15,6 @@ extern "C" {
int IupControlsOpen(void);
void IupControlsClose(void); /* for backward compatibility only, does nothing since IUP 3 */
-void IupOldValOpen(void);
-void IupOldTabsOpen(void);
-
Ihandle* IupColorbar(void);
Ihandle* IupCells(void);
Ihandle *IupColorBrowser(void);
diff --git a/iup/include/iuplua.h b/iup/include/iuplua.h
index dc660b5..854a858 100755
--- a/iup/include/iuplua.h
+++ b/iup/include/iuplua.h
@@ -23,7 +23,7 @@ int iuplua_dofile (char *filename);
#ifdef LUA_TNONE /* Lua 5 */
int iuplua_open(lua_State *L);
-int iupkey_open(lua_State *L);
+int iupkey_open(lua_State *L); /* does nothing, kept for backward compatibility */
int iuplua_close(lua_State * L);
/* utilities */
diff --git a/iup/mak.vc8/iupgtk.vcproj b/iup/mak.vc8/iupgtk.vcproj
index 5d0a8e2..9fccbb2 100755
--- a/iup/mak.vc8/iupgtk.vcproj
+++ b/iup/mak.vc8/iupgtk.vcproj
@@ -143,6 +143,10 @@
>
</File>
<File
+ RelativePath="..\src\gtk\iupgtk_clipboard.c"
+ >
+ </File>
+ <File
RelativePath="..\src\gtk\iupgtk_colordlg.c"
>
</File>
diff --git a/iup/mak.vc8/iuplua5.vcproj b/iup/mak.vc8/iuplua5.vcproj
index 0c62f76..1245e86 100755
--- a/iup/mak.vc8/iuplua5.vcproj
+++ b/iup/mak.vc8/iuplua5.vcproj
@@ -123,6 +123,10 @@
>
</File>
<File
+ RelativePath="..\srclua5\il_clipboard.c"
+ >
+ </File>
+ <File
RelativePath="..\srclua5\il_colordlg.c"
>
</File>
@@ -307,6 +311,10 @@
>
</File>
<File
+ RelativePath="..\srclua5\clipboard.lua"
+ >
+ </File>
+ <File
RelativePath="..\srclua5\colordlg.lua"
>
</File>
diff --git a/iup/mak.vc8/iupmot.vcproj b/iup/mak.vc8/iupmot.vcproj
index aedd67e..d2d1780 100755
--- a/iup/mak.vc8/iupmot.vcproj
+++ b/iup/mak.vc8/iupmot.vcproj
@@ -161,6 +161,10 @@
>
</File>
<File
+ RelativePath="..\src\mot\iupmot_clipboard.c"
+ >
+ </File>
+ <File
RelativePath="..\src\mot\iupmot_colordlg.c"
>
</File>
diff --git a/iup/mak.vc8/iupsample.vcproj b/iup/mak.vc8/iupsample.vcproj
index bddc4f6..dde33fd 100755
--- a/iup/mak.vc8/iupsample.vcproj
+++ b/iup/mak.vc8/iupsample.vcproj
@@ -616,6 +616,13 @@
<File
RelativePath="..\html\examples\C\sample.c"
>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
</File>
<File
RelativePath="..\html\examples\C\sbox1.c"
diff --git a/iup/mak.vc8/iupsamplegtk.vcproj b/iup/mak.vc8/iupsamplegtk.vcproj
index b4792dd..290a86e 100755
--- a/iup/mak.vc8/iupsamplegtk.vcproj
+++ b/iup/mak.vc8/iupsamplegtk.vcproj
@@ -435,6 +435,14 @@
<File
RelativePath="..\html\examples\C\list1.c"
>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
</File>
<File
RelativePath="..\html\examples\C\list2.c"
@@ -777,7 +785,6 @@
>
<FileConfiguration
Name="Debug|Win32"
- ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
diff --git a/iup/mak.vc8/iuptest.vcproj b/iup/mak.vc8/iuptest.vcproj
index 375d83f..b539677 100755
--- a/iup/mak.vc8/iuptest.vcproj
+++ b/iup/mak.vc8/iuptest.vcproj
@@ -159,6 +159,10 @@
>
</File>
<File
+ RelativePath="..\test\clipboard.c"
+ >
+ </File>
+ <File
RelativePath="..\test\colorbar.c"
>
</File>
@@ -255,6 +259,14 @@
>
</File>
<File
+ RelativePath="..\test\sbox.c"
+ >
+ </File>
+ <File
+ RelativePath="..\test\scanf.c"
+ >
+ </File>
+ <File
RelativePath="..\test\spin.c"
>
</File>
@@ -298,6 +310,10 @@
RelativePath="..\test\vbox.c"
>
</File>
+ <File
+ RelativePath="..\test\zbox.c"
+ >
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/iup/mak.vc8/iuptestgtk.vcproj b/iup/mak.vc8/iuptestgtk.vcproj
index 46d9e49..017bb69 100755
--- a/iup/mak.vc8/iuptestgtk.vcproj
+++ b/iup/mak.vc8/iuptestgtk.vcproj
@@ -154,6 +154,10 @@
>
</File>
<File
+ RelativePath="..\test\clipboard.c"
+ >
+ </File>
+ <File
RelativePath="..\test\colorbar.c"
>
</File>
@@ -246,6 +250,14 @@
>
</File>
<File
+ RelativePath="..\test\sbox.c"
+ >
+ </File>
+ <File
+ RelativePath="..\test\scanf.c"
+ >
+ </File>
+ <File
RelativePath="..\test\spin.c"
>
</File>
@@ -289,6 +301,10 @@
RelativePath="..\test\vbox.c"
>
</File>
+ <File
+ RelativePath="..\test\zbox.c"
+ >
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/iup/mak.vc8/iupwin.vcproj b/iup/mak.vc8/iupwin.vcproj
index c1e2434..cf53df8 100755
--- a/iup/mak.vc8/iupwin.vcproj
+++ b/iup/mak.vc8/iupwin.vcproj
@@ -176,6 +176,10 @@
>
</File>
<File
+ RelativePath="..\src\win\iupwin_clipboard.c"
+ >
+ </File>
+ <File
RelativePath="..\src\win\iupwin_colordlg.c"
>
</File>
diff --git a/iup/mak.vc9/iup.sln b/iup/mak.vc9/iup.sln
index 898c75f..47e2076 100755
--- a/iup/mak.vc9/iup.sln
+++ b/iup/mak.vc9/iup.sln
@@ -95,6 +95,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iuplua5_exe", "iupluaexe5.v
{1EBC7A53-4677-AAAA-1234-49D301F17D85} = {1EBC7A53-4677-AAAA-1234-49D301F17D85}
{1EBC7A53-4677-75D7-8D4A-49D301F17D85} = {1EBC7A53-4677-75D7-8D4A-49D301F17D85}
{1EBC7A53-4677-ADF1-8D4A-49D301F17D85} = {1EBC7A53-4677-ADF1-8D4A-49D301F17D85}
+ {1EBC7A53-4677-FFFF-1234-49D301F17D85} = {1EBC7A53-4677-FFFF-1234-49D301F17D85}
{B4823266-DF8C-4EFB-91C0-C7688C234EAC} = {B4823266-DF8C-4EFB-91C0-C7688C234EAC}
{5EEFE977-C56D-462F-BDEE-12A5452EB8CC} = {5EEFE977-C56D-462F-BDEE-12A5452EB8CC}
{5EEFE977-C56D-462F-BDEE-12A5452EB8CC} = {5EEFE977-C56D-462F-BDEE-12A5452EB8CC}
@@ -196,6 +197,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iuplua5gtk_exe", "iupluaexe
{E251B4F4-0B0A-482B-BA18-2509ADC4B6AA} = {E251B4F4-0B0A-482B-BA18-2509ADC4B6AA}
EndProjectSection
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{B24D8E0A-2EB5-4C49-A146-C0AABEF81788}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -285,7 +288,6 @@ Global
{2F92EC58-D94C-40BF-8C82-77607C72E1E3} = {FC52B7B5-744E-45D6-815C-3502F9D965E7}
{9462FDEA-3E53-4250-8710-DD50AF48607C} = {FC52B7B5-744E-45D6-815C-3502F9D965E7}
{C684B76D-52EC-49CE-84F2-B031509419A5} = {FC52B7B5-744E-45D6-815C-3502F9D965E7}
- {A60D658D-766C-40DB-BAFF-59AB884D86FB} = {11041D08-354A-4300-9624-41277E67DE34}
{1EBC7A53-4677-4C3A-8DFF-269001F17D85} = {11041D08-354A-4300-9624-41277E67DE34}
{1EBC7A53-4677-4C3A-8DFF-49DFF4417D85} = {11041D08-354A-4300-9624-41277E67DE34}
{1EBC7A53-33FF-4C3A-8DFF-49D301F17D85} = {11041D08-354A-4300-9624-41277E67DE34}
@@ -293,7 +295,6 @@ Global
{1EBC7A53-4677-1234-DDDD-49DFF4417D85} = {11041D08-354A-4300-9624-41277E67DE34}
{B4823266-DF8C-4EFB-91C0-C7E78C234EAC} = {11041D08-354A-4300-9624-41277E67DE34}
{1EBC7A53-4677-4C3A-8DFF-49D301F17D85} = {11041D08-354A-4300-9624-41277E67DE34}
- {A60D658D-766C-40DB-BAE4-59AB884D86FB} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
{1EBC7A53-4677-ADF1-8D4A-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
{1EBC7A53-4677-75D7-8D4A-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
{1EBC7A53-4677-4C3A-8D4A-49D301157985} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
@@ -302,7 +303,12 @@ Global
{B4823266-DF8C-4EFB-91C0-C7688C234EAC} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
{1EBC7A53-4677-4C3A-8D4A-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
{1EBC7A53-4677-FFFF-1234-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
- {389DF3C9-A628-4F6D-8C52-8924FA01DE66} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
+ {A60D658D-766C-40DB-BAFF-59AB884D86FB} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}
+ {A60D658D-766C-40DB-BAE4-59AB884D86FB} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}
+ {389DF3C9-A628-4F6D-8C52-8924FA01DE66} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}
+ {2F92EC58-D94C-40BF-4444-77607C72E1E3} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}
+ {E7D19356-B0AB-44AD-ACCB-5FFFCC4837BE} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}
+ {0F789DF8-22CC-4392-98DB-AC3960FAD4EA} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}
EndGlobalSection
GlobalSection(DevPartner) = postSolution
EndGlobalSection
diff --git a/iup/mak.vc9/iupcontrols.vcproj b/iup/mak.vc9/iupcontrols.vcproj
index 6a452af..2a7875c 100755
--- a/iup/mak.vc9/iupcontrols.vcproj
+++ b/iup/mak.vc9/iupcontrols.vcproj
@@ -311,14 +311,6 @@
>
</File>
<File
- RelativePath="..\srccontrols\iup_oldtabs.c"
- >
- </File>
- <File
- RelativePath="..\srccontrols\iup_oldval.c"
- >
- </File>
- <File
RelativePath="..\srccontrols\iupcontrols.def"
>
<FileConfiguration
diff --git a/iup/mak.vc9/iupcore.vcproj b/iup/mak.vc9/iupcore.vcproj
index fbe0017..851395e 100755
--- a/iup/mak.vc9/iupcore.vcproj
+++ b/iup/mak.vc9/iupcore.vcproj
@@ -475,6 +475,10 @@
>
</File>
<File
+ RelativePath="..\src\iup_split.c"
+ >
+ </File>
+ <File
RelativePath="..\src\iup_tabs.c"
>
</File>
@@ -583,17 +587,6 @@
>
</File>
</Filter>
- <File
- RelativePath="..\src\iup.def"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- </File>
</Files>
<Globals>
</Globals>
diff --git a/iup/mak.vc9/iupgtk.vcproj b/iup/mak.vc9/iupgtk.vcproj
index 17281f1..a84dd4a 100755
--- a/iup/mak.vc9/iupgtk.vcproj
+++ b/iup/mak.vc9/iupgtk.vcproj
@@ -95,6 +95,10 @@
>
</File>
<File
+ RelativePath="..\src\gtk\iupgtk_draw.c"
+ >
+ </File>
+ <File
RelativePath="..\src\gtk\iupgtk_focus.c"
>
</File>
diff --git a/iup/mak.vc9/iuplua3.vcproj b/iup/mak.vc9/iuplua3.vcproj
index 9993c1c..e46f316 100755
--- a/iup/mak.vc9/iuplua3.vcproj
+++ b/iup/mak.vc9/iuplua3.vcproj
@@ -116,6 +116,10 @@
>
</File>
<File
+ RelativePath="..\srclua3\il_split.c"
+ >
+ </File>
+ <File
RelativePath="..\srclua3\il_tabs.c"
>
</File>
@@ -164,6 +168,10 @@
>
</File>
<File
+ RelativePath="..\srclua3\split.lua"
+ >
+ </File>
+ <File
RelativePath="..\srclua3\tabs.lua"
>
</File>
diff --git a/iup/mak.vc9/iuplua5.vcproj b/iup/mak.vc9/iuplua5.vcproj
index 17d9a55..ad13650 100755
--- a/iup/mak.vc9/iuplua5.vcproj
+++ b/iup/mak.vc9/iuplua5.vcproj
@@ -231,6 +231,10 @@
>
</File>
<File
+ RelativePath="..\srclua5\il_split.c"
+ >
+ </File>
+ <File
RelativePath="..\srclua5\il_submenu.c"
>
</File>
@@ -407,6 +411,10 @@
>
</File>
<File
+ RelativePath="..\srclua5\split.lua"
+ >
+ </File>
+ <File
RelativePath="..\srclua5\submenu.lua"
>
</File>
diff --git a/iup/mak.vc9/iupluaexe5.vcproj b/iup/mak.vc9/iupluaexe5.vcproj
index db6804a..39d15f2 100755
--- a/iup/mak.vc9/iupluaexe5.vcproj
+++ b/iup/mak.vc9/iupluaexe5.vcproj
@@ -72,7 +72,7 @@
OutputFile="$(OutDir)/iuplua51.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories="..\..\im\lib;..\..\cd\lib;..\lib;..\..\lua5.1\lib\vc9;..\..\luagl\lib\static"
+ AdditionalLibraryDirectories="..\..\im\lib;..\..\cd\lib;..\lib;..\..\lua5.1\lib\vc9;..\..\luagl\lib\static;..\..\lfs\lib\vc9"
GenerateManifest="false"
GenerateDebugInformation="true"
SubSystem="1"
diff --git a/iup/mak.vc9/iupmot.vcproj b/iup/mak.vc9/iupmot.vcproj
index 9bbfa5c..5c40695 100755
--- a/iup/mak.vc9/iupmot.vcproj
+++ b/iup/mak.vc9/iupmot.vcproj
@@ -109,6 +109,10 @@
>
</File>
<File
+ RelativePath="..\src\mot\iupmot_draw.c"
+ >
+ </File>
+ <File
RelativePath="..\src\mot\iupmot_focus.c"
>
</File>
diff --git a/iup/mak.vc9/iupsample.vcproj b/iup/mak.vc9/iupsample.vcproj
index 144f3ba..0e10bb6 100755
--- a/iup/mak.vc9/iupsample.vcproj
+++ b/iup/mak.vc9/iupsample.vcproj
@@ -45,7 +45,7 @@
Optimization="0"
AdditionalIncludeDirectories="..\include;..\..\cd\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WIN32_WINNT=0x0500;_WIN32_IE=0x0500;_CRT_SECURE_NO_DEPRECATE;__IUPDEF_H"
- ExceptionHandling="0"
+ ExceptionHandling="1"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
diff --git a/iup/mak.vc9/iupsamplegtk.vcproj b/iup/mak.vc9/iupsamplegtk.vcproj
index 24da672..485b773 100755
--- a/iup/mak.vc9/iupsamplegtk.vcproj
+++ b/iup/mak.vc9/iupsamplegtk.vcproj
@@ -617,7 +617,6 @@
>
<FileConfiguration
Name="Debug|Win32"
- ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@@ -785,6 +784,7 @@
>
<FileConfiguration
Name="Debug|Win32"
+ ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
diff --git a/iup/mak.vc9/iuptest.vcproj b/iup/mak.vc9/iuptest.vcproj
index 213431c..ac8f359 100755
--- a/iup/mak.vc9/iuptest.vcproj
+++ b/iup/mak.vc9/iuptest.vcproj
@@ -271,6 +271,10 @@
>
</File>
<File
+ RelativePath="..\test\split.c"
+ >
+ </File>
+ <File
RelativePath="..\test\sysinfo.c"
>
</File>
diff --git a/iup/mak.vc9/iuptestgtk.vcproj b/iup/mak.vc9/iuptestgtk.vcproj
index 4cbc9da..d8c092c 100755
--- a/iup/mak.vc9/iuptestgtk.vcproj
+++ b/iup/mak.vc9/iuptestgtk.vcproj
@@ -73,6 +73,7 @@
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\lib;d:\lng\gtk\lib;..\..\cd\lib;D:\LNG\vld\lib"
+ GenerateManifest="false"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
SubSystem="1"
@@ -262,6 +263,10 @@
>
</File>
<File
+ RelativePath="..\test\split.c"
+ >
+ </File>
+ <File
RelativePath="..\test\sysinfo.c"
>
</File>
diff --git a/iup/mak.vc9/iupwin.vcproj b/iup/mak.vc9/iupwin.vcproj
index 15578a9..94ef390 100755
--- a/iup/mak.vc9/iupwin.vcproj
+++ b/iup/mak.vc9/iupwin.vcproj
@@ -248,6 +248,10 @@
>
</File>
</Filter>
+ <File
+ RelativePath="..\src\iup.def"
+ >
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/iup/src/Makefile b/iup/src/Makefile
index 028047f..e666555 100755
--- a/iup/src/Makefile
+++ b/iup/src/Makefile
@@ -1,9 +1,12 @@
-.PHONY: do_all iup iupgtk
-do_all: iup iupgtk
+.PHONY: do_all iup iupgtk iupmot
+do_all: iup
iup:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
+ @$(MAKE) --no-print-directory -f ../tecmake.mak
iupgtk:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak USE_GTK=Yes
+ @$(MAKE) --no-print-directory -f ../tecmake.mak USE_GTK=Yes
+
+iupmot:
+ @$(MAKE) --no-print-directory -f ../tecmake.mak USE_MOTIF=Yes
diff --git a/iup/src/config.mak b/iup/src/config.mak
index e857643..82b8452 100755
--- a/iup/src/config.mak
+++ b/iup/src/config.mak
@@ -2,9 +2,31 @@ PROJNAME = iup
LIBNAME = iup
OPT = YES
-#ifdef DBG
+ifdef GTK_DEFAULT
+ ifdef USE_MOTIF
+ # Build Motif version in Linux,Darwin,FreeBSD
+ LIBNAME = iupmot
+ else
+ ifeq ($(findstring Win, $(TEC_SYSNAME)), )
+ # Force definition if not in Windows
+ USE_GTK = Yes
+ endif
+ endif
+else
+ ifdef USE_GTK
+ # Build GTK version in IRIX,SunOS,AIX,Win32
+ LIBNAME = iupgtk
+ else
+ ifeq ($(findstring Win, $(TEC_SYSNAME)), )
+ # Force definition if not in Windows
+ USE_MOTIF = Yes
+ endif
+ endif
+endif
+
+ifdef DBG
DEFINES += IUP_ASSERT
-#endif
+endif
INCLUDES = ../include .
@@ -17,19 +39,14 @@ SRC = iup_array.c iup_callback.c iup_dlglist.c iup_attrib.c iup_focus.c iup_font
iup_user.c iup_button.c iup_radio.c iup_toggle.c iup_progressbar.c iup_text.c iup_val.c \
iup_box.c iup_hbox.c iup_vbox.c iup_cbox.c iup_class.c iup_classbase.c iup_maskmatch.c \
iup_mask.c iup_maskparse.c iup_tabs.c iup_spin.c iup_list.c iup_getparam.c \
- iup_sbox.c iup_normalizer.c iup_tree.c
+ iup_sbox.c iup_normalizer.c iup_tree.c iup_split.c
ifdef USE_GTK
- ifndef GTK_DEFAULT
- # Build GTK version in IRIX,SunOS,AIX,Win32
- LIBNAME := iupgtk
- endif
-
DEFINES += GTK_DISABLE_DEPRECATED
INCLUDES += gtk
SRC += gtk/iupgtk_common.c gtk/iupgtk_focus.c gtk/iupgtk_font.c gtk/iupgtk_clipboard.c \
gtk/iupgtk_globalattrib.c gtk/iupgtk_key.c gtk/iupgtk_tips.c \
- gtk/iupgtk_loop.c gtk/iupgtk_open.c gtk/iupgtk_messagedlg.c \
+ gtk/iupgtk_loop.c gtk/iupgtk_open.c gtk/iupgtk_messagedlg.c gtk/iupgtk_draw.c \
gtk/iupgtk_dialog.c gtk/iupgtk_timer.c gtk/iupgtk_image.c gtk/iupgtk_label.c \
gtk/iupgtk_colordlg.c gtk/iupgtk_fontdlg.c gtk/iupgtk_filedlg.c \
gtk/iupgtk_button.c gtk/iupgtk_toggle.c gtk/iupgtk_progressbar.c \
@@ -40,7 +57,11 @@ ifdef USE_GTK
DEFINES += _WIN32_WINNT=0x0500 _WIN32_IE=0x0500 WINVER=0x0500 NOTREEVIEW
SRC += win/iupwindows_main.c win/iupwindows_help.c win/iupwindows_info.c
else
- SRC += gtk/iupgtk_help.c mot/iupunix_info.c
+ ifdef GTK_MAC
+ SRC += gtk/iupmac_help.c gtk/iupmac_info.c
+ else
+ SRC += gtk/iupgtk_help.c mot/iupunix_info.c
+ endif
endif
ifdef USE_HILDON
@@ -49,42 +70,35 @@ ifdef USE_GTK
LIBS += hildon-1
endif
else
- ifneq ($(findstring Win, $(TEC_SYSNAME)), )
-
- SRC += win/iupwin_common.c win/iupwin_brush.c win/iupwin_focus.c win/iupwin_font.c \
- win/iupwin_globalattrib.c win/iupwin_handle.c win/iupwin_key.c \
- win/iupwin_loop.c win/iupwin_open.c win/iupwin_tips.c win/iupwin_info.c \
- win/iupwin_dialog.c win/iupwin_messagedlg.c win/iupwin_timer.c \
- win/iupwin_image.c win/iupwin_label.c win/iupwin_canvas.c win/iupwin_frame.c \
- win/iupwin_colordlg.c win/iupwin_fontdlg.c win/iupwin_filedlg.c \
- win/iupwin_button.c win/iupwin_draw.c win/iupwin_toggle.c win/iupwin_clipboard.c \
- win/iupwin_progressbar.c win/iupwin_text.c win/iupwin_val.c \
- win/iupwin_tabs.c win/iupwin_menu.c win/iupwin_list.c win/iupwin_tree.c
-
- SRC += win/iupwindows_main.c win/iupwindows_help.c win/iupwindows_info.c
-
- INCLUDES += win
- DEFINES += _WIN32_WINNT=0x0500 _WIN32_IE=0x0500 WINVER=0x0500 NOTREEVIEW
- else
- ifdef GTK_DEFAULT
- # Build Motif version in Linux,Darwin,FreeBSD
- LIBNAME := iupmot
- endif
-
- SRC += mot/iupmot_common.c mot/iupmot_color.c mot/iupmot_focus.c mot/iupmot_font.c \
- mot/iupmot_key.c mot/iupmot_loop.c mot/iupmot_open.c mot/iupmot_tips.c \
- mot/iupmot_globalattrib.c mot/iupmot_dialog.c mot/iupmot_messagedlg.c \
- mot/iupmot_timer.c mot/iupmot_image.c mot/iupmot_label.c mot/iupmot_canvas.c \
- mot/iupmot_colordlg.c mot/iupmot_fontdlg.c mot/iupmot_filedlg.c mot/iupmot_frame.c \
- mot/iupmot_button.c mot/iupmot_toggle.c mot/iupmot_progressbar.c mot/iupmot_clipboard.c \
- mot/iupmot_text.c mot/iupmot_val.c mot/iupmot_tabs.c mot/iupmot_menu.c \
- mot/iupmot_list.c mot/iupmot_tree.c
-
- SRC += mot/iupunix_help.c mot/iupunix_info.c
-
- INCLUDES += mot
- USE_MOTIF=Yes
- endif
+ifdef USE_MOTIF
+ SRC += mot/iupmot_common.c mot/iupmot_color.c mot/iupmot_focus.c mot/iupmot_font.c \
+ mot/iupmot_key.c mot/iupmot_loop.c mot/iupmot_open.c mot/iupmot_tips.c \
+ mot/iupmot_globalattrib.c mot/iupmot_dialog.c mot/iupmot_messagedlg.c mot/iupmot_draw.c \
+ mot/iupmot_timer.c mot/iupmot_image.c mot/iupmot_label.c mot/iupmot_canvas.c \
+ mot/iupmot_colordlg.c mot/iupmot_fontdlg.c mot/iupmot_filedlg.c mot/iupmot_frame.c \
+ mot/iupmot_button.c mot/iupmot_toggle.c mot/iupmot_progressbar.c mot/iupmot_clipboard.c \
+ mot/iupmot_text.c mot/iupmot_val.c mot/iupmot_tabs.c mot/iupmot_menu.c \
+ mot/iupmot_list.c mot/iupmot_tree.c
+
+ SRC += mot/iupunix_help.c mot/iupunix_info.c
+
+ INCLUDES += mot
+else
+ SRC += win/iupwin_common.c win/iupwin_brush.c win/iupwin_focus.c win/iupwin_font.c \
+ win/iupwin_globalattrib.c win/iupwin_handle.c win/iupwin_key.c \
+ win/iupwin_loop.c win/iupwin_open.c win/iupwin_tips.c win/iupwin_info.c \
+ win/iupwin_dialog.c win/iupwin_messagedlg.c win/iupwin_timer.c \
+ win/iupwin_image.c win/iupwin_label.c win/iupwin_canvas.c win/iupwin_frame.c \
+ win/iupwin_colordlg.c win/iupwin_fontdlg.c win/iupwin_filedlg.c \
+ win/iupwin_button.c win/iupwin_draw.c win/iupwin_toggle.c win/iupwin_clipboard.c \
+ win/iupwin_progressbar.c win/iupwin_text.c win/iupwin_val.c \
+ win/iupwin_tabs.c win/iupwin_menu.c win/iupwin_list.c win/iupwin_tree.c
+
+ SRC += win/iupwindows_main.c win/iupwindows_help.c win/iupwindows_info.c
+
+ INCLUDES += win
+ DEFINES += _WIN32_WINNT=0x0500 _WIN32_IE=0x0500 WINVER=0x0500 NOTREEVIEW
+endif
endif
ifeq "$(TEC_SYSNAME)" "SunOS"
@@ -113,6 +127,6 @@ ifeq "$(TEC_UNAME)" "dll"
endif
ifeq "$(TEC_UNAME)" "owc1"
- # Necessary or IUP will not work in Open Watcom
+ # Necessary or IUP 3 will not work in Open Watcom
DBG=Yes
endif
diff --git a/iup/src/gtk/iupgtk_button.c b/iup/src/gtk/iupgtk_button.c
index 18be87c..f8474ae 100755
--- a/iup/src/gtk/iupgtk_button.c
+++ b/iup/src/gtk/iupgtk_button.c
@@ -150,8 +150,10 @@ static int gtkButtonSetPaddingAttrib(Ihandle* ih, const char* value)
gtk_alignment_set_padding(alignment, ih->data->vert_padding, ih->data->vert_padding,
ih->data->horiz_padding, ih->data->horiz_padding);
}
+ return 0;
}
- return 0;
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
#ifdef WIN32
@@ -366,12 +368,12 @@ static int gtkButtonMapMethod(Ihandle* ih)
ih->data->type = IUP_BUTTON_IMAGE;
value = iupAttribGet(ih, "TITLE");
- if (value)
+ if (value && *value!=0)
{
GtkSettings* settings = gtk_widget_get_settings(ih->handle);
g_object_set(settings, "gtk-button-images", (int)TRUE, NULL);
- gtk_button_set_label((GtkButton*)ih->handle, value);
+ gtk_button_set_label((GtkButton*)ih->handle, iupgtkStrConvertToUTF8(value));
ih->data->type |= IUP_BUTTON_TEXT;
#if GTK_CHECK_VERSION(2, 10, 0)
@@ -397,7 +399,7 @@ static int gtkButtonMapMethod(Ihandle* ih)
#endif
}
else
- gtk_button_set_label((GtkButton*)ih->handle, title);
+ gtk_button_set_label((GtkButton*)ih->handle, iupgtkStrConvertToUTF8(title));
ih->data->type = IUP_BUTTON_TEXT;
}
diff --git a/iup/src/gtk/iupgtk_canvas.c b/iup/src/gtk/iupgtk_canvas.c
index daae4ad..3af48a4 100755
--- a/iup/src/gtk/iupgtk_canvas.c
+++ b/iup/src/gtk/iupgtk_canvas.c
@@ -537,8 +537,8 @@ static int gtkCanvasMapMethod(Ihandle* ih)
/* To receive mouse events on a drawing area, you will need to enable them. */
gtk_widget_add_events(ih->handle, GDK_EXPOSURE_MASK|
- GDK_POINTER_MOTION_MASK|GDK_BUTTON_MOTION_MASK|
- GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK|
+ GDK_POINTER_MOTION_MASK|GDK_POINTER_MOTION_HINT_MASK|
+ GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK|GDK_BUTTON_MOTION_MASK|
GDK_KEY_PRESS_MASK|GDK_KEY_RELEASE_MASK|
GDK_ENTER_NOTIFY_MASK|GDK_LEAVE_NOTIFY_MASK|
GDK_FOCUS_CHANGE_MASK|GDK_STRUCTURE_MASK);
@@ -611,14 +611,15 @@ void iupdrvCanvasInitClass(Iclass* ic)
iupClassRegisterAttribute(ic, "YAUTOHIDE", NULL, gtkCanvasSetYAutoHideAttrib, "YES", NULL, IUPAF_DEFAULT); /* force new default value */
iupClassRegisterAttribute(ic, "DRAWABLE", gtkCanvasGetDrawableAttrib, NULL, NULL, NULL, IUPAF_NO_STRING);
- //iupClassRegisterAttribute(ic, "CD_GDK", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);
/* IupCanvas Windows or X only */
-#ifdef WIN32
- iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
-#else
- iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING);
- iupClassRegisterAttribute(ic, "XDISPLAY", (IattribGetFunc)iupdrvGetDisplay, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);
+#ifndef GTK_MAC
+ #ifdef WIN32
+ iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
+ #else
+ iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING);
+ iupClassRegisterAttribute(ic, "XDISPLAY", (IattribGetFunc)iupdrvGetDisplay, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);
+ #endif
#endif
}
diff --git a/iup/src/gtk/iupgtk_common.c b/iup/src/gtk/iupgtk_common.c
index 40368f2..d84c1c8 100755
--- a/iup/src/gtk/iupgtk_common.c
+++ b/iup/src/gtk/iupgtk_common.c
@@ -91,13 +91,13 @@ void iupdrvBaseUnMapMethod(Ihandle* ih)
gtk_widget_destroy(widget); /* To match the call to gtk_*****_new */
}
-void iupdrvDisplayUpdate(Ihandle *ih)
+void iupdrvPostRedraw(Ihandle *ih)
{
/* Post a REDRAW */
gtk_widget_queue_draw(ih->handle);
}
-void iupdrvDisplayRedraw(Ihandle *ih)
+void iupdrvRedrawNow(Ihandle *ih)
{
GdkWindow* window = ih->handle->window;
/* Post a REDRAW */
@@ -202,7 +202,11 @@ void iupdrvSetVisible(Ihandle* ih, int visible)
int iupdrvIsVisible(Ihandle* ih)
{
+#if GTK_CHECK_VERSION(2, 18, 0)
+ if (gtk_widget_get_visible(ih->handle))
+#else
if (GTK_WIDGET_VISIBLE(ih->handle))
+#endif
{
/* if marked as visible, since we use gtk_widget_hide and NOT gtk_widget_hide_all
must check its parents. */
@@ -211,7 +215,11 @@ int iupdrvIsVisible(Ihandle* ih)
{
if (parent->iclass->nativetype != IUP_TYPEVOID)
{
+#if GTK_CHECK_VERSION(2, 18, 0)
+ if (!gtk_widget_get_visible(parent->handle))
+#else
if (!GTK_WIDGET_VISIBLE(parent->handle))
+#endif
return 0;
}
@@ -225,7 +233,11 @@ int iupdrvIsVisible(Ihandle* ih)
int iupdrvIsActive(Ihandle *ih)
{
- return (GTK_WIDGET_IS_SENSITIVE(ih->handle));
+#if GTK_CHECK_VERSION(2, 18, 0)
+ return gtk_widget_is_sensitive(ih->handle);
+#else
+ return GTK_WIDGET_IS_SENSITIVE(ih->handle);
+#endif
}
void iupdrvSetActive(Ihandle* ih, int enable)
@@ -424,9 +436,11 @@ static GdkCursor* gtkGetCursor(Ihandle* ih, const char* name)
{ "RESIZE_N", GDK_TOP_SIDE},
{ "RESIZE_S", GDK_BOTTOM_SIDE},
{ "RESIZE_NS", GDK_SB_V_DOUBLE_ARROW},
+ { "SPLITTER_HORIZ", GDK_SB_V_DOUBLE_ARROW},
{ "RESIZE_W", GDK_LEFT_SIDE},
{ "RESIZE_E", GDK_RIGHT_SIDE},
{ "RESIZE_WE", GDK_SB_H_DOUBLE_ARROW},
+ { "SPLITTER_VERT", GDK_SB_H_DOUBLE_ARROW},
{ "RESIZE_NE", GDK_TOP_RIGHT_CORNER},
{ "RESIZE_SE", GDK_BOTTOM_RIGHT_CORNER},
{ "RESIZE_NW", GDK_TOP_LEFT_CORNER},
@@ -571,18 +585,24 @@ void iupdrvDrawFocusRect(Ihandle* ih, void* _gc, int x, int y, int w, int h)
{
GdkWindow* window = ih->handle->window;
GtkStyle *style = gtk_widget_get_style(ih->handle);
+#if GTK_CHECK_VERSION(2, 18, 0)
+ GtkStateType state = gtk_widget_get_state(ih->handle);
+#else
+ GtkStateType state = GTK_WIDGET_STATE(ih->handle);
+#endif
+ gtk_paint_focus(style, window, state, NULL, ih->handle, NULL, x, y, w, h);
(void)_gc;
-
- gtk_paint_focus(style, window, GTK_WIDGET_STATE(ih->handle), NULL, ih->handle, NULL, x, y, w, h);
}
void iupdrvBaseRegisterCommonAttrib(Iclass* ic)
{
+#ifndef GTK_MAC
#ifdef WIN32
iupClassRegisterAttribute(ic, "HFONT", iupgtkGetFontIdAttrib, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);
#else
iupClassRegisterAttribute(ic, "XFONTID", iupgtkGetFontIdAttrib, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);
#endif
+#endif
iupClassRegisterAttribute(ic, "PANGOFONTDESC", iupgtkGetPangoFontDescAttrib, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);
}
@@ -789,7 +809,17 @@ char* iupgtkStrConvertFromFilename(const char* str) /* From Filename to IUP */
gboolean iupgtkMotionNotifyEvent(GtkWidget *widget, GdkEventMotion *evt, Ihandle *ih)
{
- IFniis cb = (IFniis)IupGetCallback(ih,"MOTION_CB");
+ IFniis cb;
+
+ if (evt->is_hint)
+ {
+ int x, y;
+ gdk_window_get_pointer(widget->window, &x, &y, NULL);
+ evt->x = x;
+ evt->y = y;
+ }
+
+ cb = (IFniis)IupGetCallback(ih,"MOTION_CB");
if (cb)
{
char status[IUPKEY_STATUS_SIZE] = IUPKEY_STATUS_INIT;
@@ -818,6 +848,23 @@ gboolean iupgtkButtonEvent(GtkWidget *widget, GdkEventButton *evt, Ihandle *ih)
iupgtkButtonKeySetStatus(evt->state, evt->button, status, doubleclick);
+ if (doubleclick)
+ {
+ /* Must compensate the fact that in GTK there is an extra button press event
+ when occours a double click, we compensate that completing the event
+ with a button release before the double click. */
+
+ status[5] = ' '; /* clear double click */
+
+ ret = cb(ih, b, 0, (int)evt->x, (int)evt->y, status); /* release */
+ if (ret==IUP_CLOSE)
+ IupExitLoop();
+ else if (ret==IUP_IGNORE)
+ return TRUE;
+
+ status[5] = 'D'; /* restore double click */
+ }
+
ret = cb(ih, b, press, (int)evt->x, (int)evt->y, status);
if (ret==IUP_CLOSE)
IupExitLoop();
diff --git a/iup/src/gtk/iupgtk_dialog.c b/iup/src/gtk/iupgtk_dialog.c
index 46c0ce1..ff0d8f2 100755
--- a/iup/src/gtk/iupgtk_dialog.c
+++ b/iup/src/gtk/iupgtk_dialog.c
@@ -120,12 +120,13 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
static int native_border = 0;
static int native_caption = 0;
- int has_caption = iupAttribGetBoolean(ih, "MAXBOX") ||
- iupAttribGetBoolean(ih, "MINBOX") ||
- iupAttribGetBoolean(ih, "MENUBOX") ||
- IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */
+ int has_titlebar = iupAttribGetBoolean(ih, "RESIZE") || /* GTK and Motif only */
+ iupAttribGetBoolean(ih, "MAXBOX") ||
+ iupAttribGetBoolean(ih, "MINBOX") ||
+ iupAttribGetBoolean(ih, "MENUBOX") ||
+ IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */
- int has_border = has_caption ||
+ int has_border = has_titlebar ||
iupAttribGetBoolean(ih, "RESIZE") ||
iupAttribGetBoolean(ih, "BORDER");
@@ -147,7 +148,7 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
*border = win_border;
*caption = 0;
- if (has_caption)
+ if (has_titlebar)
*caption = win_caption;
if (!native_border && *border)
@@ -171,7 +172,7 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
}
*caption = 0;
- if (has_caption)
+ if (has_titlebar)
{
if (native_caption)
*caption = native_caption;
@@ -429,6 +430,7 @@ static int gtkDialogMapMethod(Ihandle* ih)
int functions = 0;
InativeHandle* parent;
GtkWidget* fixed;
+ int has_titlebar = 0;
#ifdef HILDON
if (iupAttribGetBoolean(ih, "HILDONWINDOW"))
@@ -494,33 +496,41 @@ static int gtkDialogMapMethod(Ihandle* ih)
iupAttribSetStr(ih, "MINBOX", "NO");
}
- if (IupGetAttribute(ih, "TITLE")) { /* must use IupGetAttribute to check from the native implementation */
- functions |= GDK_FUNC_MOVE;
- decorations |= GDK_DECOR_TITLE;
- }
-
- if (iupAttribGetBoolean(ih, "MENUBOX")) {
+ if (iupAttribGet(ih, "TITLE"))
+ has_titlebar = 1;
+ if (iupAttribGetBoolean(ih, "MENUBOX"))
+ {
functions |= GDK_FUNC_CLOSE;
decorations |= GDK_DECOR_MENU;
+ has_titlebar = 1;
}
-
- if (iupAttribGetBoolean(ih, "MINBOX")) {
+ if (iupAttribGetBoolean(ih, "MINBOX"))
+ {
functions |= GDK_FUNC_MINIMIZE;
decorations |= GDK_DECOR_MINIMIZE;
+ has_titlebar = 1;
}
-
- if (iupAttribGetBoolean(ih, "MAXBOX")) {
+ if (iupAttribGetBoolean(ih, "MAXBOX"))
+ {
functions |= GDK_FUNC_MAXIMIZE;
decorations |= GDK_DECOR_MAXIMIZE;
+ has_titlebar = 1;
}
-
- if (iupAttribGetBoolean(ih, "RESIZE")) {
+ if (iupAttribGetBoolean(ih, "RESIZE"))
+ {
functions |= GDK_FUNC_RESIZE;
decorations |= GDK_DECOR_RESIZEH;
- }
- if (iupAttribGetBoolean(ih, "BORDER"))
- decorations |= GDK_DECOR_BORDER;
+ decorations |= GDK_DECOR_BORDER; /* has_border */
+ }
+ if (has_titlebar)
+ {
+ functions |= GDK_FUNC_MOVE;
+ decorations |= GDK_DECOR_TITLE;
+ gtk_window_set_title((GtkWindow*)ih->handle, "");
+ }
+ if (iupAttribGetBoolean(ih, "BORDER") || has_titlebar)
+ decorations |= GDK_DECOR_BORDER; /* has_border */
if (decorations == 0)
gtk_window_set_decorated((GtkWindow*)ih->handle, FALSE);
@@ -980,11 +990,12 @@ void iupdrvDialogInitClass(Iclass* ic)
iupClassRegisterCallback(ic, "TRAYCLICK_CB", "iii");
/* Driver Dependent Attribute functions */
-
-#ifdef WIN32
- iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
-#else
- iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING);
+#ifndef GTK_MAC
+ #ifdef WIN32
+ iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
+ #else
+ iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING);
+ #endif
#endif
/* Visual */
diff --git a/iup/src/gtk/iupgtk_draw.c b/iup/src/gtk/iupgtk_draw.c
new file mode 100644
index 0000000..4390c66
--- /dev/null
+++ b/iup/src/gtk/iupgtk_draw.c
@@ -0,0 +1,161 @@
+/** \file
+ * \brief Draw Functions
+ *
+ * See Copyright Notice in "iup.h"
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <memory.h>
+
+#include <gtk/gtk.h>
+
+#include "iup.h"
+
+#include "iup_attrib.h"
+#include "iup_class.h"
+#include "iup_str.h"
+#include "iup_object.h"
+#include "iup_image.h"
+#include "iup_draw.h"
+
+#include "iupgtk_drv.h"
+
+
+struct _IdrawCanvas{
+ Ihandle* ih;
+ int w, h;
+
+ GdkDrawable* wnd;
+ GdkPixmap* pixmap;
+ GdkGC *gc, *pixmap_gc;
+};
+
+IdrawCanvas* iupDrawCreateCanvas(Ihandle* ih)
+{
+ IdrawCanvas* dc = calloc(1, sizeof(IdrawCanvas));
+
+ dc->wnd = ih->handle->window;
+ dc->gc = gdk_gc_new(dc->wnd);
+
+ gdk_drawable_get_size(dc->wnd, &dc->w, &dc->h);
+
+ dc->pixmap = gdk_pixmap_new(dc->wnd, dc->w, dc->h, gdk_drawable_get_depth(dc->wnd));
+ dc->pixmap_gc = gdk_gc_new(dc->pixmap);
+
+ return dc;
+}
+
+void iupDrawKillCanvas(IdrawCanvas* dc)
+{
+ g_object_unref(dc->pixmap_gc);
+ g_object_unref(dc->pixmap);
+ g_object_unref(dc->gc);
+
+ free(dc);
+}
+
+void iupDrawUpdateSize(IdrawCanvas* dc)
+{
+ int w, h;
+ gdk_drawable_get_size(dc->wnd, &w, &h);
+
+ if (w != dc->w || h != dc->h)
+ {
+ g_object_unref(dc->pixmap_gc);
+ g_object_unref(dc->pixmap);
+
+ dc->pixmap = gdk_pixmap_new(dc->wnd, dc->w, dc->h, gdk_drawable_get_depth(dc->wnd));
+ dc->pixmap_gc = gdk_gc_new(dc->pixmap);
+ }
+}
+
+void iupDrawFlush(IdrawCanvas* dc)
+{
+ gdk_draw_drawable(dc->wnd, dc->gc, dc->pixmap, 0, 0, 0, 0, dc->w, dc->h);
+}
+
+void iupDrawGetSize(IdrawCanvas* dc, int *w, int *h)
+{
+ if (w) *w = dc->w;
+ if (h) *h = dc->h;
+}
+
+void iupDrawParentBackground(IdrawCanvas* dc)
+{
+ unsigned char r=0, g=0, b=0;
+ char* color = iupBaseNativeParentGetBgColorAttrib(dc->ih);
+ iupStrToRGB(color, &r, &g, &b);
+ iupDrawRectangle(dc, 0, 0, dc->w-1, dc->h-1, r, g, b, 1);
+}
+
+void iupDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int filled)
+{
+ GdkColor color;
+ iupgdkColorSet(&color, r, g, b);
+ gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color);
+ gdk_draw_rectangle(dc->pixmap, dc->pixmap_gc, filled, x1, y1, x2-x1+1, y2-y1+1);
+}
+
+void iupDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b)
+{
+ GdkColor color;
+ iupgdkColorSet(&color, r, g, b);
+ gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color);
+ gdk_draw_line(dc->pixmap, dc->pixmap_gc, x1, y1, x2, y2);
+}
+
+void iupDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int filled)
+{
+ GdkColor color;
+ iupgdkColorSet(&color, r, g, b);
+ gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color);
+ gdk_draw_arc(dc->pixmap, dc->pixmap_gc, filled, x1, y1, x2-x1+1, y2-y1+1, iupROUND(a1*64), iupROUND((a2 - a1)*64));
+}
+
+void iupDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int filled)
+{
+ GdkColor color;
+ iupgdkColorSet(&color, r, g, b);
+ gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color);
+ gdk_draw_polygon(dc->pixmap, dc->pixmap_gc, filled, (GdkPoint*)points, count);
+}
+
+void iupDrawSetClipRect(IdrawCanvas* dc, int x1, int y1, int x2, int y2)
+{
+ GdkRectangle rect;
+ rect.x = x1;
+ rect.y = y1;
+ rect.width = x2-x1+1;
+ rect.height = y2-y1+1;
+ gdk_gc_set_clip_rectangle(dc->pixmap_gc, &rect);
+}
+
+void iupDrawResetClip(IdrawCanvas* dc)
+{
+ gdk_gc_set_clip_region(dc->pixmap_gc, NULL);
+}
+
+void iupDrawText(IdrawCanvas* dc, const char* text, int len, int x, int y, unsigned char r, unsigned char g, unsigned char b)
+{
+ PangoLayout* fontlayout = (PangoLayout*)IupGetAttribute(dc->ih, "PANGOLAYOUT");
+ GdkColor color;
+ iupgdkColorSet(&color, r, g, b);
+ gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color);
+ pango_layout_set_text(fontlayout, iupgtkStrConvertToUTF8(text), len);
+ gdk_draw_layout(dc->pixmap, dc->pixmap_gc, x, y, fontlayout);
+}
+
+void iupDrawImage(IdrawCanvas* dc, const char* name, int make_inactive, int x, int y)
+{
+ int img_w, img_h, bpp;
+ GdkPixbuf* pixbuf = iupImageGetImage(name, dc->ih, make_inactive);
+ if (!pixbuf)
+ return;
+
+ /* must use this info, since image can be a driver image loaded from resources */
+ iupdrvImageGetInfo(pixbuf, &img_w, &img_h, &bpp);
+
+ gdk_draw_pixbuf(dc->pixmap, dc->pixmap_gc, pixbuf, 0, 0, x, y, img_w, img_h, GDK_RGB_DITHER_NORMAL, 0, 0);
+}
diff --git a/iup/src/gtk/iupgtk_drv.h b/iup/src/gtk/iupgtk_drv.h
index ade2a4a..bf567d6 100755
--- a/iup/src/gtk/iupgtk_drv.h
+++ b/iup/src/gtk/iupgtk_drv.h
@@ -59,8 +59,8 @@ void iupgtkFontUpdateObjectPangoLayout(Ihandle* ih, gpointer object);
/* There are PANGO_SCALE Pango units in one device unit.
For an output backend where a device unit is a pixel,
a size value of 10 * PANGO_SCALE gives 10 pixels. */
-#define IUPGTK_PANGOUNITS2PIXELS(_x) (((_x) + PANGO_SCALE/2) / PANGO_SCALE)
-#define IUPGTK_PIXELS2PANGOUNITS(_x) ((_x) * PANGO_SCALE)
+#define iupGTK_PANGOUNITS2PIXELS(_x) (((_x) + PANGO_SCALE/2) / PANGO_SCALE)
+#define iupGTK_PIXELS2PANGOUNITS(_x) ((_x) * PANGO_SCALE)
/* open */
diff --git a/iup/src/gtk/iupgtk_filedlg.c b/iup/src/gtk/iupgtk_filedlg.c
index 5426910..a326c72 100755
--- a/iup/src/gtk/iupgtk_filedlg.c
+++ b/iup/src/gtk/iupgtk_filedlg.c
@@ -77,6 +77,8 @@ static void gtkFileDlgGetMultipleFiles(Ihandle* ih, GSList* list)
cur_len = iupArrayCount(names_array);
all_names = iupArrayAdd(names_array, dir_len+1);
memcpy(all_names+cur_len, filename, dir_len);
+ all_names[cur_len+dir_len] = '0';
+ iupAttribStoreStr(ih, "DIRECTORY", all_names);
all_names[cur_len+dir_len] = '|';
dir_len++; /* skip separator */
@@ -101,10 +103,14 @@ static void gtkFileDlgGetMultipleFiles(Ihandle* ih, GSList* list)
iupArrayDestroy(names_array);
}
-#ifdef WIN32
-#include <gdk/gdkwin32.h>
+#ifdef GTK_MAC
+ #include <gdk/gdk.h>
#else
-#include <gdk/gdkx.h>
+ #ifdef WIN32
+ #include <gdk/gdkwin32.h>
+ #else
+ #include <gdk/gdkx.h>
+ #endif
#endif
static void gtkFileDlgUpdatePreviewGLCanvas(Ihandle* ih)
@@ -112,10 +118,12 @@ static void gtkFileDlgUpdatePreviewGLCanvas(Ihandle* ih)
Ihandle* glcanvas = IupGetAttributeHandle(ih, "PREVIEWGLCANVAS");
if (glcanvas)
{
-#ifdef WIN32
- iupAttribSetStr(glcanvas, "HWND", iupAttribGet(ih, "HWND"));
-#else
- iupAttribSetStr(glcanvas, "XWINDOW", iupAttribGet(ih, "XWINDOW"));
+#ifndef GTK_MAC
+ #ifdef WIN32
+ iupAttribSetStr(glcanvas, "HWND", iupAttribGet(ih, "HWND"));
+ #else
+ iupAttribSetStr(glcanvas, "XWINDOW", iupAttribGet(ih, "XWINDOW"));
+ #endif
#endif
glcanvas->iclass->Map(glcanvas);
}
@@ -126,12 +134,15 @@ static void gtkFileDlgPreviewRealize(GtkWidget *widget, Ihandle *ih)
iupAttribSetStr(ih, "PREVIEWDC", iupgtkGetNativeGraphicsContext(widget));
iupAttribSetStr(ih, "WID", (char*)widget);
-#ifdef WIN32
- iupAttribSetStr(ih, "HWND", (char*)GDK_WINDOW_HWND(widget->window));
-#else
- iupAttribSetStr(ih, "XWINDOW", (char*)GDK_WINDOW_XID(widget->window));
- iupAttribSetStr(ih, "XDISPLAY", (char*)iupdrvGetDisplay());
+#ifndef GTK_MAC
+ #ifdef WIN32
+ iupAttribSetStr(ih, "HWND", (char*)GDK_WINDOW_HWND(widget->window));
+ #else
+ iupAttribSetStr(ih, "XWINDOW", (char*)GDK_WINDOW_XID(widget->window));
+ iupAttribSetStr(ih, "XDISPLAY", (char*)iupdrvGetDisplay());
+ #endif
#endif
+
gtkFileDlgUpdatePreviewGLCanvas(ih);
}
@@ -174,11 +185,11 @@ static void gtkFileDlgUpdatePreview(GtkFileChooser *file_chooser, Ihandle* ih)
{
char *filename = gtk_file_chooser_get_preview_filename(file_chooser);
+ IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");
if (iupdrvIsFile(filename))
- {
- IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");
cb(ih, iupgtkStrConvertFromFilename(filename), "SELECT");
- }
+ else
+ cb(ih, iupgtkStrConvertFromFilename(filename), "OTHER");
g_free (filename);
@@ -469,6 +480,13 @@ static int gtkFileDlgPopup(Ihandle* ih, int x, int y)
char* filename = (char*)file_list->data;
iupAttribStoreStr(ih, "VALUE", iupgtkStrConvertFromFilename(filename));
g_free(filename);
+
+ /* store the DIRECTORY */
+ {
+ char* dir = iupStrFileGetPath(iupAttribGet(ih, "VALUE"));
+ iupAttribStoreStr(ih, "DIRECTORY", dir);
+ free(dir);
+ }
}
g_slist_free(file_list);
@@ -481,6 +499,14 @@ static int gtkFileDlgPopup(Ihandle* ih, int x, int y)
iupAttribStoreStr(ih, "VALUE", iupgtkStrConvertFromFilename(filename));
file_exist = iupdrvIsFile(filename);
dir_exist = iupdrvIsDirectory(filename);
+
+ if (file_exist)
+ {
+ char* dir = iupStrFileGetPath(filename);
+ iupAttribStoreStr(ih, "DIRECTORY", dir);
+ free(dir);
+ }
+
g_free(filename);
}
@@ -507,8 +533,11 @@ static int gtkFileDlgPopup(Ihandle* ih, int x, int y)
{
/* GtkFileChooser does not change the current directory */
char* dir = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(dialog));
- if (dir) iupdrvSetCurrentDirectory(dir);
- g_free(dir);
+ if (dir)
+ {
+ iupdrvSetCurrentDirectory(dir);
+ g_free(dir);
+ }
}
}
else
diff --git a/iup/src/gtk/iupgtk_font.c b/iup/src/gtk/iupgtk_font.c
index f7ff348..1139f62 100755
--- a/iup/src/gtk/iupgtk_font.c
+++ b/iup/src/gtk/iupgtk_font.c
@@ -132,9 +132,9 @@ static IgtkFont* gtkFindFont(const char *standardfont)
metrics = pango_context_get_metrics(gtk_fonts_context, fontdesc, pango_context_get_language(gtk_fonts_context));
fonts[i].charheight = pango_font_metrics_get_ascent(metrics) + pango_font_metrics_get_descent(metrics);
- fonts[i].charheight = IUPGTK_PANGOUNITS2PIXELS(fonts[i].charheight);
+ fonts[i].charheight = iupGTK_PANGOUNITS2PIXELS(fonts[i].charheight);
fonts[i].charwidth = pango_font_metrics_get_approximate_char_width(metrics);
- fonts[i].charwidth = IUPGTK_PANGOUNITS2PIXELS(fonts[i].charwidth);
+ fonts[i].charwidth = iupGTK_PANGOUNITS2PIXELS(fonts[i].charwidth);
pango_font_metrics_unref(metrics);
gtkFontUpdate(&(fonts[i]));
diff --git a/iup/src/gtk/iupgtk_fontdlg.c b/iup/src/gtk/iupgtk_fontdlg.c
index 5769cbc..dca0232 100755
--- a/iup/src/gtk/iupgtk_fontdlg.c
+++ b/iup/src/gtk/iupgtk_fontdlg.c
@@ -24,7 +24,7 @@ static int gtkFontDlgPopup(Ihandle* ih, int x, int y)
InativeHandle* parent = iupDialogGetNativeParent(ih);
GtkFontSelectionDialog* dialog;
int response;
- char* preview_text;
+ char* preview_text, *standardfont;
iupAttribSetInt(ih, "_IUPDLG_X", x); /* used in iupDialogUpdatePosition */
iupAttribSetInt(ih, "_IUPDLG_Y", y);
@@ -36,7 +36,10 @@ static int gtkFontDlgPopup(Ihandle* ih, int x, int y)
if (parent)
gtk_window_set_transient_for((GtkWindow*)dialog, (GtkWindow*)parent);
- gtk_font_selection_dialog_set_font_name(dialog, iupAttribGet(ih, "VALUE"));
+ standardfont = iupAttribGet(ih, "VALUE");
+ if (!standardfont)
+ standardfont = IupGetGlobal("DEFAULTFONT");
+ gtk_font_selection_dialog_set_font_name(dialog, standardfont);
preview_text = iupAttribGet(ih, "PREVIEWTEXT");
if (preview_text)
diff --git a/iup/src/gtk/iupgtk_frame.c b/iup/src/gtk/iupgtk_frame.c
index 022c6c7..25595be 100755
--- a/iup/src/gtk/iupgtk_frame.c
+++ b/iup/src/gtk/iupgtk_frame.c
@@ -41,8 +41,11 @@ static char* gtkFrameGetTitleAttrib(Ihandle* ih)
static int gtkFrameSetTitleAttrib(Ihandle* ih, const char* value)
{
- GtkFrame* frame = (GtkFrame*)ih->handle;
- gtk_frame_set_label(frame, iupgtkStrConvertToUTF8(value));
+ if (iupAttribGetStr(ih, "_IUPFRAME_HAS_TITLE"))
+ {
+ GtkFrame* frame = (GtkFrame*)ih->handle;
+ gtk_frame_set_label(frame, iupgtkStrConvertToUTF8(value));
+ }
return 0;
}
@@ -57,7 +60,11 @@ static int gtkFrameSetBgColorAttrib(Ihandle* ih, const char* value)
if (label)
iupgtkBaseSetBgColor(label, r, g, b);
- iupgtkBaseSetBgColor(ih->handle, r, g, b);
+ if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
+ {
+ GtkWidget* fixed = gtk_bin_get_child((GtkBin*)ih->handle);
+ iupgtkBaseSetBgColor(fixed, r, g, b);
+ }
return 1;
}
@@ -120,10 +127,19 @@ static int gtkFrameMapMethod(Ihandle* ih)
gtk_frame_set_shadow_type((GtkFrame*)ih->handle, GTK_SHADOW_IN);
else
gtk_frame_set_shadow_type((GtkFrame*)ih->handle, GTK_SHADOW_ETCHED_IN);
+
+ if (iupAttribGet(ih, "BGCOLOR"))
+ iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1");
}
/* the container that will receive the child element. */
fixed = gtk_fixed_new();
+ if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
+#if GTK_CHECK_VERSION(2, 18, 0)
+ gtk_widget_set_has_window(fixed, TRUE);
+#else
+ gtk_fixed_set_has_window((GtkFixed*)fixed, TRUE);
+#endif
gtk_container_add((GtkContainer*)ih->handle, fixed);
gtk_widget_show(fixed);
diff --git a/iup/src/gtk/iupgtk_key.c b/iup/src/gtk/iupgtk_key.c
index 5aec919..ed485a7 100755
--- a/iup/src/gtk/iupgtk_key.c
+++ b/iup/src/gtk/iupgtk_key.c
@@ -316,9 +316,9 @@ gboolean iupgtkKeyPressEvent(GtkWidget *widget, GdkEventKey *evt, Ihandle *ih)
if (code == 0)
return FALSE;
- /* Avoid duplicate calls if a child of the dialog contains the focus.
- GTK will call the callback for the child and for the dialog */
- if (ih->iclass->nativetype == IUP_TYPEDIALOG && ih != IupGetFocus())
+ /* Avoid duplicate calls if a child of a native container contains the focus.
+ GTK will call the callback for the child and for the container. */
+ if (ih->iclass->childtype != IUP_CHILDNONE && ih != IupGetFocus())
return FALSE;
result = iupKeyCallKeyCb(ih, code);
@@ -390,33 +390,33 @@ gboolean iupgtkKeyReleaseEvent(GtkWidget *widget, GdkEventKey *evt, Ihandle *ih)
void iupgtkButtonKeySetStatus(guint state, unsigned int but, char* status, int doubleclick)
{
if (state & GDK_SHIFT_MASK)
- iupKEYSETSHIFT(status);
+ iupKEY_SETSHIFT(status);
if (state & GDK_CONTROL_MASK)
- iupKEYSETCONTROL(status);
+ iupKEY_SETCONTROL(status);
if ((state & GDK_BUTTON1_MASK) || but==1)
- iupKEYSETBUTTON1(status);
+ iupKEY_SETBUTTON1(status);
if ((state & GDK_BUTTON2_MASK) || but==2)
- iupKEYSETBUTTON2(status);
+ iupKEY_SETBUTTON2(status);
if ((state & GDK_BUTTON3_MASK) || but==3)
- iupKEYSETBUTTON3(status);
+ iupKEY_SETBUTTON3(status);
if ((state & GDK_BUTTON4_MASK) || but==4)
- iupKEYSETBUTTON4(status);
+ iupKEY_SETBUTTON4(status);
if ((state & GDK_BUTTON5_MASK) || but==5)
- iupKEYSETBUTTON5(status);
+ iupKEY_SETBUTTON5(status);
if (state & GDK_MOD1_MASK || state & GDK_MOD5_MASK) /* Alt */
- iupKEYSETALT(status);
+ iupKEY_SETALT(status);
if (state & GDK_MOD4_MASK) /* Apple/Win */
- iupKEYSETSYS(status);
+ iupKEY_SETSYS(status);
if (doubleclick)
- iupKEYSETDOUBLE(status);
+ iupKEY_SETDOUBLE(status);
}
diff --git a/iup/src/gtk/iupgtk_label.c b/iup/src/gtk/iupgtk_label.c
index 49d5c6d..f95f576 100755
--- a/iup/src/gtk/iupgtk_label.c
+++ b/iup/src/gtk/iupgtk_label.c
@@ -133,8 +133,10 @@ static int gtkLabelSetPaddingAttrib(Ihandle* ih, const char* value)
{
GtkMisc* misc = (GtkMisc*)ih->handle;
gtk_misc_set_padding(misc, ih->data->horiz_padding, ih->data->vert_padding);
+ return 0;
}
- return 0;
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static char* gtkLabelGetPangoLayoutAttrib(Ihandle* ih)
diff --git a/iup/src/gtk/iupgtk_list.c b/iup/src/gtk/iupgtk_list.c
index 80f6cce..48fa88e 100755
--- a/iup/src/gtk/iupgtk_list.c
+++ b/iup/src/gtk/iupgtk_list.c
@@ -113,6 +113,8 @@ void iupdrvListInsertItem(Ihandle* ih, int pos, const char* value)
GtkTreeIter iter;
gtk_list_store_insert(GTK_LIST_STORE(model), &iter, pos);
gtk_list_store_set(GTK_LIST_STORE(model), &iter, 0, iupgtkStrConvertToUTF8(value), -1);
+
+ iupListUpdateOldValue(ih, pos, 0);
}
void iupdrvListRemoveItem(Ihandle* ih, int pos)
@@ -127,14 +129,24 @@ void iupdrvListRemoveItem(Ihandle* ih, int pos)
int curpos = gtk_combo_box_get_active((GtkComboBox*)ih->handle);
if (pos == curpos)
{
- if (curpos > 0) curpos--;
- else curpos++;
+ if (curpos > 0)
+ curpos--;
+ else
+ {
+ curpos=1;
+ if (iupdrvListGetCount(ih)==1)
+ curpos = -1; /* remove the selection */
+ }
+ g_signal_handlers_block_by_func(G_OBJECT(ih->handle), G_CALLBACK(gtkListComboBoxChanged), ih);
gtk_combo_box_set_active((GtkComboBox*)ih->handle, curpos);
+ g_signal_handlers_unblock_by_func(G_OBJECT(ih->handle), G_CALLBACK(gtkListComboBoxChanged), ih);
}
}
gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
+
+ iupListUpdateOldValue(ih, pos, 1);
}
}
@@ -177,7 +189,7 @@ static int gtkListSetStandardFontAttrib(Ihandle* ih, const char* value)
static char* gtkListGetIdValueAttrib(Ihandle* ih, const char* name_id)
{
int pos = iupListGetPos(ih, name_id);
- if (pos != -1)
+ if (pos >= 0)
{
GtkTreeIter iter;
GtkTreeModel* model = gtkListGetModel(ih);
@@ -349,7 +361,7 @@ static int gtkListSetValueAttrib(Ihandle* ih, const char* value)
GtkTreeModel *model = gtkListGetModel(ih);
g_signal_handlers_block_by_func(G_OBJECT(ih->handle), G_CALLBACK(gtkListComboBoxChanged), ih);
if (iupStrToInt(value, &pos)==1 &&
- (pos>0 && pos<gtk_tree_model_iter_n_children(model, NULL)))
+ (pos>0 && pos<=gtk_tree_model_iter_n_children(model, NULL)))
{
gtk_combo_box_set_active((GtkComboBox*)ih->handle, pos-1); /* IUP starts at 1 */
iupAttribSetInt(ih, "_IUPLIST_OLDVALUE", pos);
@@ -788,9 +800,10 @@ static int gtkListSetNCAttrib(Ihandle* ih, const char* value)
{
GtkEntry* entry = (GtkEntry*)iupAttribGet(ih, "_IUPGTK_ENTRY");
gtk_entry_set_max_length(entry, ih->data->nc);
+ return 0;
}
-
- return 0;
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int gtkListSetClipboardAttrib(Ihandle *ih, const char *value)
@@ -1364,9 +1377,9 @@ static int gtkListMapMethod(Ihandle* ih)
if (!ih->data->has_editbox && ih->data->is_multiple)
{
gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
-#if GTK_CHECK_VERSION(2, 10, 0)
+ #if GTK_CHECK_VERSION(2, 10, 0)
gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(ih->handle), TRUE);
-#endif
+ #endif
}
else
gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE);
diff --git a/iup/src/gtk/iupgtk_loop.c b/iup/src/gtk/iupgtk_loop.c
index e349a45..704923e 100755
--- a/iup/src/gtk/iupgtk_loop.c
+++ b/iup/src/gtk/iupgtk_loop.c
@@ -69,6 +69,13 @@ int IupMainLoop(void)
return IUP_NOERROR;
}
+int IupLoopStepWait(void)
+{
+ if (gtk_main_iteration_do(TRUE))
+ return IUP_CLOSE;
+ return IUP_DEFAULT;
+}
+
int IupLoopStep(void)
{
if (gtk_main_iteration_do(FALSE))
diff --git a/iup/src/gtk/iupgtk_menu.c b/iup/src/gtk/iupgtk_menu.c
index c12fbea..772f4cf 100755
--- a/iup/src/gtk/iupgtk_menu.c
+++ b/iup/src/gtk/iupgtk_menu.c
@@ -245,11 +245,19 @@ static int gtkMenuMapMethod(Ihandle* ih)
return IUP_NOERROR;
}
+static void gtkMenuUnMapMethod(Ihandle* ih)
+{
+ if (iupMenuIsMenuBar(ih))
+ ih->parent = NULL;
+
+ iupdrvBaseUnMapMethod(ih);
+}
+
void iupdrvMenuInitClass(Iclass* ic)
{
/* Driver Dependent Class functions */
ic->Map = gtkMenuMapMethod;
- ic->UnMap = iupdrvBaseUnMapMethod;
+ ic->UnMap = gtkMenuUnMapMethod;
/* Used by iupdrvMenuGetMenuBarSize */
iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, NULL, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_DEFAULT); /* use inheritance to retrieve standard fonts */
@@ -337,15 +345,10 @@ static int gtkItemSetValueAttrib(Ihandle* ih, const char* value)
static char* gtkItemGetValueAttrib(Ihandle* ih)
{
- if (GTK_IS_CHECK_MENU_ITEM(ih->handle))
- {
- if (gtk_check_menu_item_get_active((GtkCheckMenuItem*)ih->handle))
- return "ON";
- else
- return "OFF";
- }
+ if (GTK_IS_CHECK_MENU_ITEM(ih->handle) && gtk_check_menu_item_get_active((GtkCheckMenuItem*)ih->handle))
+ return "ON";
else
- return NULL;
+ return "OFF";
}
static int gtkItemMapMethod(Ihandle* ih)
diff --git a/iup/src/gtk/iupgtk_open.c b/iup/src/gtk/iupgtk_open.c
index 66e46e8..962f760 100755
--- a/iup/src/gtk/iupgtk_open.c
+++ b/iup/src/gtk/iupgtk_open.c
@@ -20,7 +20,52 @@
#include "iupgtk_drv.h"
+#ifdef GTK_MAC
+#include <gdk/gdk.h>
+char* iupgtkGetNativeWindowHandle(Ihandle* ih)
+{
+ GdkWindow* window = ih->handle->window;
+ if (window)
+ return (char*)window;
+ else
+ return NULL;
+}
+
+void* iupgtkGetNativeGraphicsContext(GtkWidget* widget)
+{
+ return (void*)gdk_gc_new((GdkDrawable*)widget->window);
+}
+
+void iupgtkReleaseNativeGraphicsContext(GtkWidget* widget, void* gc)
+{
+ g_object_unref(gc);
+ (void)widget;
+}
+
+void* iupdrvGetDisplay(void)
+{
+ GdkDisplay* display = gdk_display_get_default();
+ return display;
+}
+
+void iupgtkPushVisualAndColormap(void* visual, void* colormap)
+{
+ GdkColormap* gdk_colormap;
+ GdkVisual *gdk_visual = gdk_visual_get_best();
+
+ gdk_colormap = gdk_colormap_new(gdk_visual, FALSE);
+
+ gtk_widget_push_colormap(gdk_colormap);
+
+ /* gtk_widget_push_visual is now deprecated */
+}
+
+static void gtkSetDrvGlobalAttrib(void)
+{
+}
+
+#else
#ifdef WIN32 /******************************** WIN32 ************************************/
#include <gdk/gdkwin32.h>
@@ -115,6 +160,8 @@ static void gtkSetDrvGlobalAttrib(void)
#endif
+#endif
+
static void gtkSetGlobalColorAttrib(const char* name, GdkColor *color)
{
iupGlobalSetDefaultColorAttrib(name, (int)iupCOLOR16TO8(color->red),
diff --git a/iup/src/gtk/iupgtk_tabs.c b/iup/src/gtk/iupgtk_tabs.c
index 8029826..6b5aa66 100755
--- a/iup/src/gtk/iupgtk_tabs.c
+++ b/iup/src/gtk/iupgtk_tabs.c
@@ -76,13 +76,13 @@ static void gtkTabsUpdatePageBgColor(Ihandle* ih, unsigned char r, unsigned char
for (child = ih->firstchild; child; child = child->brother)
{
- GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");
- if (tab_page)
+ GtkWidget* tab_container = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");
+ if (tab_container)
{
GtkWidget* tab_label = (GtkWidget*)iupAttribGet(child, "_IUPGTK_TABLABEL");
if (tab_label)
iupgtkBaseSetBgColor(tab_label, r, g, b);
- iupgtkBaseSetBgColor(tab_page, r, g, b);
+ iupgtkBaseSetBgColor(tab_container, r, g, b);
}
}
}
@@ -121,15 +121,18 @@ static int gtkTabsSetPaddingAttrib(Ihandle* ih, const char* value)
iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');
if (ih->handle)
+ {
gtkTabsUpdatePagePadding(ih);
- return 0;
+ return 0;
+ }
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static void gtkTabsUpdateTabType(Ihandle* ih)
{
- GtkNotebook* tab_page = (GtkNotebook*)ih->handle;
int iup2gtk[4] = {GTK_POS_TOP, GTK_POS_BOTTOM, GTK_POS_LEFT, GTK_POS_RIGHT};
- gtk_notebook_set_tab_pos(tab_page, iup2gtk[ih->data->type]);
+ gtk_notebook_set_tab_pos((GtkNotebook*)ih->handle, iup2gtk[ih->data->type]);
}
static int gtkTabsSetTabTypeAttrib(Ihandle* ih, const char* value)
@@ -144,7 +147,7 @@ static int gtkTabsSetTabTypeAttrib(Ihandle* ih, const char* value)
ih->data->type = ITABS_TOP;
if (ih->handle)
- gtkTabsUpdateTabType(ih);
+ gtkTabsUpdateTabType(ih); /* for this to work must be updated in map */
return 0;
}
@@ -171,7 +174,7 @@ static int gtkTabsSetTabTitleAttrib(Ihandle* ih, const char* name_id, const char
GtkWidget* tab_label = (GtkWidget*)iupAttribGet(child, "_IUPGTK_TABLABEL");
if (tab_label)
{
- GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");
+ GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_PAGE");
gtk_label_set_text((GtkLabel*)tab_label, iupgtkStrConvertToUTF8(value));
gtk_notebook_set_menu_label_text((GtkNotebook*)ih->handle, tab_page, gtk_label_get_text((GtkLabel*)tab_label));
}
@@ -238,8 +241,10 @@ void gtkTabSwitchPage(GtkNotebook* notebook, GtkNotebookPage *page, int pos, Iha
IFnnn cb;
Ihandle* child = IupGetChild(ih, pos);
Ihandle* prev_child = IupGetChild(ih, iupdrvTabsGetCurrentTab(ih));
- IupSetAttribute(child, "VISIBLE", "YES");
- IupSetAttribute(prev_child, "VISIBLE", "NO");
+ GtkWidget* tab_container = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");
+ GtkWidget* prev_tab_container = (GtkWidget*)iupAttribGet(prev_child, "_IUPTAB_CONTAINER");
+ if (tab_container) gtk_widget_show(tab_container);
+ if (prev_tab_container) gtk_widget_hide(prev_tab_container);
if (iupAttribGet(ih, "_IUPGTK_IGNORE_CHANGE"))
return;
@@ -263,7 +268,7 @@ static void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
if (ih->handle)
{
- GtkWidget* tab_page;
+ GtkWidget *tab_page, *tab_container;
GtkWidget *tab_label = NULL, *tab_image = NULL;
char *tabtitle, *tabimage;
int pos;
@@ -271,9 +276,13 @@ static void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
pos = IupGetChildPos(ih, child);
- tab_page = gtk_fixed_new();
+ tab_page = gtk_vbox_new(FALSE, 0);
gtk_widget_show(tab_page);
+ tab_container = gtk_fixed_new();
+ gtk_widget_show(tab_container);
+ gtk_container_add((GtkContainer*)tab_page, tab_container);
+
tabtitle = iupAttribGet(child, "TABTITLE");
if (!tabtitle) tabtitle = iupTabsAttribGetStrId(ih, "TABTITLE", pos);
tabimage = iupAttribGet(child, "TABIMAGE");
@@ -327,9 +336,10 @@ static void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
iupAttribSetStr(child, "_IUPGTK_TABIMAGE", (char*)tab_image); /* store it even if its NULL */
iupAttribSetStr(child, "_IUPGTK_TABLABEL", (char*)tab_label);
- iupAttribSetStr(child, "_IUPTAB_CONTAINER", (char*)tab_page);
+ iupAttribSetStr(child, "_IUPTAB_CONTAINER", (char*)tab_container);
+ iupAttribSetStr(child, "_IUPTAB_PAGE", (char*)tab_page);
iupStrToRGB(IupGetAttribute(ih, "BGCOLOR"), &r, &g, &b);
- iupgtkBaseSetBgColor(tab_page, r, g, b);
+ iupgtkBaseSetBgColor(tab_container, r, g, b);
if (tabtitle)
{
@@ -354,10 +364,8 @@ static void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
iupAttribSetStr(ih, "_IUPGTK_IGNORE_CHANGE", NULL);
- if (pos == iupdrvTabsGetCurrentTab(ih))
- IupSetAttribute(child, "VISIBLE", "YES");
- else
- IupSetAttribute(child, "VISIBLE", "NO");
+ if (pos != iupdrvTabsGetCurrentTab(ih))
+ gtk_widget_hide(tab_container);
}
}
@@ -365,10 +373,11 @@ static void gtkTabsChildRemovedMethod(Ihandle* ih, Ihandle* child)
{
if (ih->handle)
{
- GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");
+ GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_PAGE");
if (tab_page)
{
int pos = gtk_notebook_page_num((GtkNotebook*)ih->handle, tab_page);
+ iupTabsTestRemoveTab(ih, pos);
iupAttribSetStr(ih, "_IUPGTK_IGNORE_CHANGE", "1");
gtk_notebook_remove_page((GtkNotebook*)ih->handle, pos);
@@ -377,6 +386,7 @@ static void gtkTabsChildRemovedMethod(Ihandle* ih, Ihandle* child)
iupAttribSetStr(child, "_IUPGTK_TABIMAGE", NULL);
iupAttribSetStr(child, "_IUPGTK_TABLABEL", NULL);
iupAttribSetStr(child, "_IUPTAB_CONTAINER", NULL);
+ iupAttribSetStr(child, "_IUPTAB_PAGE", NULL);
}
}
}
@@ -440,5 +450,5 @@ void iupdrvTabsInitClass(Iclass* ic)
iupClassRegisterAttribute(ic, "TABORIENTATION", iupTabsGetTabOrientationAttrib, gtkTabsSetTabOrientationAttrib, IUPAF_SAMEASSYSTEM, "HORIZONTAL", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "TABTITLE", NULL, gtkTabsSetTabTitleAttrib, IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, gtkTabsSetTabImageAttrib, IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, gtkTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);
+ iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, gtkTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
}
diff --git a/iup/src/gtk/iupgtk_text.c b/iup/src/gtk/iupgtk_text.c
index 4c2906a..d0909d7 100755
--- a/iup/src/gtk/iupgtk_text.c
+++ b/iup/src/gtk/iupgtk_text.c
@@ -101,7 +101,7 @@ static void gtkTextParseParagraphFormat(Ihandle* formattag, GtkTextTag* tag)
align = PANGO_TAB_LEFT;
free(str);
- pango_tab_array_set_tab(tabs, i, align, IUPGTK_PIXELS2PANGOUNITS(pos));
+ pango_tab_array_set_tab(tabs, i, align, iupGTK_PIXELS2PANGOUNITS(pos));
i++;
if (i == 32) break;
}
@@ -171,7 +171,7 @@ static void gtkTextParseCharacterFormat(Ihandle* formattag, GtkTextTag* tag)
else
iupStrToInt(format, &val);
- val = IUPGTK_PIXELS2PANGOUNITS(val);
+ val = iupGTK_PIXELS2PANGOUNITS(val);
g_object_set(G_OBJECT(tag), "rise", val, NULL);
}
@@ -214,7 +214,7 @@ static void gtkTextParseCharacterFormat(Ihandle* formattag, GtkTextTag* tag)
{
if (val < 0) /* in pixels */
{
- val = IUPGTK_PIXELS2PANGOUNITS(-val);
+ val = iupGTK_PIXELS2PANGOUNITS(-val);
g_object_set(G_OBJECT(tag), "size", val, NULL);
}
else /* in points */
@@ -387,8 +387,8 @@ static int gtkTextConvertXYToPos(Ihandle* ih, int x, int y)
/* transform to Layout coordinates */
gtk_entry_get_layout_offsets(GTK_ENTRY(ih->handle), &off_x, &off_y);
- x = IUPGTK_PIXELS2PANGOUNITS(x - off_x);
- y = IUPGTK_PIXELS2PANGOUNITS(y - off_y);
+ x = iupGTK_PIXELS2PANGOUNITS(x - off_x);
+ y = iupGTK_PIXELS2PANGOUNITS(y - off_y);
pango_layout_xy_to_index(gtk_entry_get_layout(GTK_ENTRY(ih->handle)), x, y, &pos, &trailing);
return pos;
@@ -851,7 +851,7 @@ static char* gtkTextGetValueAttrib(Ihandle* ih)
static int gtkTextSetInsertAttrib(Ihandle* ih, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
if (!value)
return 0;
@@ -875,7 +875,8 @@ static int gtkTextSetInsertAttrib(Ihandle* ih, const char* value)
static int gtkTextSetAppendAttrib(Ihandle* ih, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ gint pos;
+ if (!ih->handle) /* do not do the action before map */
return 0;
/* disable callbacks */
iupAttribSetStr(ih, "_IUPGTK_DISABLE_TEXT_CB", "1");
@@ -884,13 +885,18 @@ static int gtkTextSetAppendAttrib(Ihandle* ih, const char* value)
GtkTextIter iter;
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ih->handle));
gtk_text_buffer_get_end_iter(buffer, &iter);
- if (ih->data->append_newline)
+ pos = gtk_text_buffer_get_char_count(buffer);
+ if (ih->data->append_newline && pos!=0)
gtk_text_buffer_insert(buffer, &iter, "\n", 1);
gtk_text_buffer_insert(buffer, &iter, iupgtkStrConvertToUTF8(value), -1);
}
else
{
- gint pos = strlen(gtk_entry_get_text(GTK_ENTRY(ih->handle)))+1;
+#if GTK_CHECK_VERSION(2, 14, 0)
+ pos = gtk_entry_get_text_length(GTK_ENTRY(ih->handle))+1;
+#else
+ pos = strlen(gtk_entry_get_text(GTK_ENTRY(ih->handle)))+1;
+#endif
gtk_editable_insert_text(GTK_EDITABLE(ih->handle), iupgtkStrConvertToUTF8(value), -1, &pos);
}
iupAttribSetStr(ih, "_IUPGTK_DISABLE_TEXT_CB", NULL);
@@ -946,8 +952,10 @@ static int gtkTextSetPaddingAttrib(Ihandle* ih, const char* value)
gtk_entry_set_inner_border(GTK_ENTRY(ih->handle), &border);
#endif
}
+ return 0;
}
- return 0;
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int gtkTextSetNCAttrib(Ihandle* ih, const char* value)
@@ -955,10 +963,14 @@ static int gtkTextSetNCAttrib(Ihandle* ih, const char* value)
if (!iupStrToInt(value, &ih->data->nc))
ih->data->nc = INT_MAX;
- if (!ih->data->is_multiline && ih->handle)
- gtk_entry_set_max_length(GTK_ENTRY(ih->handle), ih->data->nc);
-
- return 0;
+ if (ih->handle)
+ {
+ if (!ih->data->is_multiline)
+ gtk_entry_set_max_length(GTK_ENTRY(ih->handle), ih->data->nc);
+ return 0;
+ }
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int gtkTextSetClipboardAttrib(Ihandle *ih, const char *value)
diff --git a/iup/src/gtk/iupgtk_toggle.c b/iup/src/gtk/iupgtk_toggle.c
index 8ff7df5..040beda 100755
--- a/iup/src/gtk/iupgtk_toggle.c
+++ b/iup/src/gtk/iupgtk_toggle.c
@@ -213,8 +213,10 @@ static int gtkToggleSetPaddingAttrib(Ihandle* ih, const char* value)
GtkButton* button = (GtkButton*)ih->handle;
GtkMisc* misc = (GtkMisc*)gtk_button_get_image(button);
gtk_misc_set_padding(misc, ih->data->horiz_padding, ih->data->vert_padding);
+ return 0;
}
- return 0;
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int gtkToggleSetFgColorAttrib(Ihandle* ih, const char* value)
diff --git a/iup/src/gtk/iupgtk_tree.c b/iup/src/gtk/iupgtk_tree.c
index d408f27..9595ada 100755
--- a/iup/src/gtk/iupgtk_tree.c
+++ b/iup/src/gtk/iupgtk_tree.c
@@ -31,33 +31,50 @@
#include "iup_drvinfo.h"
#include "iupgtk_drv.h"
+
+/* IMPORTANT:
+
+ GtkTreeStore uses the "user_data" field of the GtkTreeIter
+ to store the node pointer that is position independent.
+ So we use it as a reference to the node in the cache, just like in Motif and Windows.
+
+ BUT if GTK change its implementation this must be changed also. See "gtk_tree_store.c".
+
+ ABOUT SELECTIONS:
+
+ From the GTK documentation on GtkTreeSelection
+
+ "Additionally, you cannot change the selection of a row on the model
+ that is not currently displayed by the view without expanding its parents first."
+*/
+
enum
{
- IUPGTK_TREE_IMAGE,
+ IUPGTK_TREE_IMAGE, /* "pixbuf", "pixbuf-expander-closed" */
IUPGTK_TREE_HAS_IMAGE,
- IUPGTK_TREE_IMAGE_EXPANDED,
+ IUPGTK_TREE_IMAGE_EXPANDED, /* "pixbuf-expander-open" */
IUPGTK_TREE_HAS_IMAGE_EXPANDED,
- IUPGTK_TREE_TITLE,
- IUPGTK_TREE_KIND,
- IUPGTK_TREE_COLOR,
- IUPGTK_TREE_FONT,
- IUPGTK_TREE_USERDATA
+ IUPGTK_TREE_TITLE, /* "text" */
+ IUPGTK_TREE_KIND, /* "is-expander" */
+ IUPGTK_TREE_COLOR, /* "foreground-gdk" */
+ IUPGTK_TREE_FONT, /* "font-desc" */
+ IUPGTK_TREE_SELECT,
+ IUPGTK_TREE_LAST_DATA /* used as a count */
};
-static GtkTreeIter gtkTreeInvalidIter = {0,0,0,0};
+static void gtkTreeRebuildNodeCache(Ihandle* ih, int id, GtkTreeIter iterItem);
/*****************************************************************************/
/* COPYING ITEMS (Branches and its children) */
/*****************************************************************************/
/* Insert the copied item in a new location. Returns the new item. */
-static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeIter* iterParent, int position, GtkTreeIter *iterNewItem, int full_copy)
+static void gtkTreeCopyItem(Ihandle* ih, GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeIter* iterParent, int position, GtkTreeIter *iterNewItem)
{
GtkTreeStore* store = GTK_TREE_STORE(model);
int kind;
char* title;
gboolean has_image, has_image_expanded;
PangoFontDescription* font;
- void* userdata;
GdkColor *color;
GdkPixbuf* image, *image_expanded;
@@ -69,9 +86,10 @@ static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeI
IUPGTK_TREE_KIND, &kind,
IUPGTK_TREE_COLOR, &color,
IUPGTK_TREE_FONT, &font,
- IUPGTK_TREE_USERDATA, &userdata,
-1);
+ /* Add the new node */
+ ih->data->node_count++;
if (position == 2)
gtk_tree_store_append(store, iterNewItem, iterParent);
else if (position == 1) /* copy as first child of expanded branch */
@@ -79,9 +97,6 @@ static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeI
else /* copy as next brother of item or collapsed branch */
gtk_tree_store_insert_after(store, iterNewItem, NULL, iterParent); /* iterParent is sibling of the new item */
- if (full_copy) /* during a full copy the userdata reference is not copied */
- userdata = NULL;
-
gtk_tree_store_set(store, iterNewItem, IUPGTK_TREE_IMAGE, image,
IUPGTK_TREE_HAS_IMAGE, has_image,
IUPGTK_TREE_IMAGE_EXPANDED, image_expanded,
@@ -90,21 +105,21 @@ static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeI
IUPGTK_TREE_KIND, kind,
IUPGTK_TREE_COLOR, color,
IUPGTK_TREE_FONT, font,
- IUPGTK_TREE_USERDATA, userdata,
+ IUPGTK_TREE_SELECT, 0,
-1);
}
-static void gtkTreeCopyChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst, int full_copy)
+static void gtkTreeCopyChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst)
{
GtkTreeIter iterChildSrc;
int hasItem = gtk_tree_model_iter_children(model, &iterChildSrc, iterItemSrc); /* get the firstchild */
while(hasItem)
{
GtkTreeIter iterNewItem;
- gtkTreeCopyItem(model, &iterChildSrc, iterItemDst, 2, &iterNewItem, full_copy); /* append always */
+ gtkTreeCopyItem(ih, model, &iterChildSrc, iterItemDst, 2, &iterNewItem); /* append always */
/* Recursively transfer all the items */
- gtkTreeCopyChildren(ih, model, &iterChildSrc, &iterNewItem, full_copy);
+ gtkTreeCopyChildren(ih, model, &iterChildSrc, &iterNewItem);
/* Go to next sibling item */
hasItem = gtk_tree_model_iter_next(model, &iterChildSrc);
@@ -112,9 +127,17 @@ static void gtkTreeCopyChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *i
}
/* Copies all items in a branch to a new location. Returns the new branch node. */
-static void gtkTreeCopyNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst, GtkTreeIter* iterNewItem, int full_copy)
+static void gtkTreeCopyMoveNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst, GtkTreeIter* iterNewItem, int is_copy)
{
int kind, position = 0; /* insert after iterItemDst */
+ int id_new, count, id_src, id_dst;
+
+ int old_count = ih->data->node_count;
+
+ id_src = iupTreeFindNodeId(ih, iterItemSrc);
+ id_dst = iupTreeFindNodeId(ih, iterItemDst);
+ id_new = id_dst+1; /* contains the position for a copy operation */
+
gtk_tree_model_get(model, iterItemDst, IUPGTK_TREE_KIND, &kind, -1);
if (kind == ITREE_BRANCH)
@@ -122,346 +145,311 @@ static void gtkTreeCopyNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterI
GtkTreePath* path = gtk_tree_model_get_path(model, iterItemDst);
if (gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))
position = 1; /* insert as first child of iterItemDst */
+ else
+ {
+ int child_count = iupdrvTreeTotalChildCount(ih, iterItemDst);
+ id_new += child_count;
+ }
gtk_tree_path_free(path);
}
- gtkTreeCopyItem(model, iterItemSrc, iterItemDst, position, iterNewItem, full_copy);
+ /* move to the same place does nothing */
+ if (!is_copy && id_new == id_src)
+ {
+ iterNewItem->stamp = 0;
+ return;
+ }
- gtkTreeCopyChildren(ih, model, iterItemSrc, iterNewItem, full_copy);
-}
+ gtkTreeCopyItem(ih, model, iterItemSrc, iterItemDst, position, iterNewItem);
-/*****************************************************************************/
-/* FINDING ITEMS */
-/*****************************************************************************/
+ gtkTreeCopyChildren(ih, model, iterItemSrc, iterNewItem);
-static void gtkTreeInvertAllNodeMarking(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter* iterItem)
-{
- GtkTreeIter iterChild;
- int hasItem = TRUE;
+ count = ih->data->node_count - old_count;
+ iupTreeCopyMoveCache(ih, id_src, id_new, count, is_copy);
- while(hasItem)
+ if (!is_copy)
{
- if(gtk_tree_selection_iter_is_selected(selection, iterItem))
- gtk_tree_selection_unselect_iter(selection, iterItem);
- else
- gtk_tree_selection_select_iter(selection, iterItem);
+ /* Deleting the node of its old position */
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ gtk_tree_store_remove(GTK_TREE_STORE(model), iterItemSrc);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
- /* Check whether we have child items */
- if(gtk_tree_model_iter_has_child(model, iterItem))
- {
- gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */
- gtkTreeInvertAllNodeMarking(ih, model, selection, &iterChild);
- }
+ /* restore count, because we remove src */
+ ih->data->node_count = old_count;
- /* Go to next sibling item */
- hasItem = gtk_tree_model_iter_next(model, iterItem);
+ /* compensate position for a move */
+ if (id_new > id_src)
+ id_new -= count;
}
+
+ gtkTreeRebuildNodeCache(ih, id_new, *iterNewItem);
}
-static GtkTreeIter gtkTreeFindVisibleNodeId(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, GtkTreeIter iterNode)
+/*****************************************************************************/
+/* FINDING ITEMS */
+/*****************************************************************************/
+
+static void gtkTreeIterInit(Ihandle* ih, GtkTreeIter* iterItem, InodeHandle* node_handle)
{
- GtkTreeIter iterChild;
- GtkTreePath* path;
- int hasItem = TRUE;
+ iterItem->stamp = ih->data->stamp;
+ iterItem->user_data = node_handle;
+ iterItem->user_data2 = NULL;
+ iterItem->user_data3 = NULL;
+}
- while(hasItem)
- {
- /* ID control to traverse items */
- ih->data->id_control++; /* not the real id since it counts only the visible ones */
+static int gtkTreeIsNodeSelected(GtkTreeModel* model, GtkTreeIter *iterItem)
+{
+ gboolean selected = 0;
+ gtk_tree_model_get(model, iterItem, IUPGTK_TREE_SELECT, &selected, -1);
+ return selected;
+}
- /* StateID founded! */
- if(iterItem.user_data == iterNode.user_data)
- return iterItem;
+static void gtkTreeSelectNodeRaw(GtkTreeModel* model, GtkTreeIter *iterItem, int select)
+{
+ /* Cannot change the selection of a row on the model that is not currently displayed.
+ So we store the selection state here. And update the actual state when the node becames visible. */
+ gtk_tree_store_set(GTK_TREE_STORE(model), iterItem, IUPGTK_TREE_SELECT, select, -1);
+}
- path = gtk_tree_model_get_path(model, &iterItem);
+static void gtkTreeSelectNode(GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter *iterItem, int select)
+{
+ if (select == -1)
+ select = !gtkTreeIsNodeSelected(model, iterItem); /* toggle */
- /* Check whether we have child items and it is expanded (visible) */
- if (gtk_tree_model_iter_has_child(model, &iterItem) && gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))
- {
- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */
- iterChild = gtkTreeFindVisibleNodeId(ih, model, iterChild, iterNode);
+ gtkTreeSelectNodeRaw(model, iterItem, select);
- /* StateID founded! */
- if(iterChild.user_data)
- {
- gtk_tree_path_free(path);
- return iterChild;
- }
- }
+ if (select)
+ gtk_tree_selection_select_iter(selection, iterItem);
+ else
+ gtk_tree_selection_unselect_iter(selection, iterItem);
+}
- gtk_tree_path_free(path);
- /* Go to next sibling item */
- hasItem = gtk_tree_model_iter_next(model, &iterItem);
+static void gtkTreeSelectAll(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, int selected)
+{
+ int i;
+ GtkTreeIter iterItem;
+
+ for (i = 0; i < ih->data->node_count; i++)
+ {
+ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
+ gtkTreeSelectNodeRaw(model, &iterItem, selected);
}
- return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */
+ if (selected)
+ gtk_tree_selection_select_all(selection);
+ else
+ gtk_tree_selection_unselect_all(selection);
}
-static GtkTreeIter gtkTreeFindVisibleNodeFromId(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem)
+static void gtkTreeInvertAllNodeMarking(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection)
{
- GtkTreeIter iterChild;
- GtkTreePath* path;
- int hasItem = TRUE;
+ int i;
+ GtkTreeIter iterItem;
- while(hasItem)
+ for (i = 0; i < ih->data->node_count; i++)
{
- /* ID control to traverse items */
- ih->data->id_control--; /* not the real id since it counts only the visible ones */
+ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
+ gtkTreeSelectNode(model, selection, &iterItem, -1);
+ }
+}
- /* StateID founded! */
- if(ih->data->id_control < 0)
- return iterItem;
+static void gtkTreeSelectRange(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter *iterItem1, GtkTreeIter *iterItem2, int clear)
+{
+ int i;
+ int id1 = iupTreeFindNodeId(ih, iterItem1->user_data);
+ int id2 = iupTreeFindNodeId(ih, iterItem2->user_data);
+ GtkTreeIter iterItem;
- path = gtk_tree_model_get_path(model, &iterItem);
+ if (id1 > id2)
+ {
+ int tmp = id1;
+ id1 = id2;
+ id2 = tmp;
+ }
- /* Check whether we have child items and it is expanded (visible) */
- if(gtk_tree_model_iter_has_child(model, &iterItem) && gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))
+ for (i = 0; i < ih->data->node_count; i++)
+ {
+ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
+ if (i < id1 || i > id2)
{
- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */
- iterChild = gtkTreeFindVisibleNodeFromId(ih, model, iterChild);
-
- /* StateID founded! */
- if(ih->data->id_control < 0)
- {
- gtk_tree_path_free(path);
- return iterChild;
- }
+ if (clear)
+ gtkTreeSelectNode(model, selection, &iterItem, 0);
}
-
- gtk_tree_path_free(path);
- /* Go to next sibling item */
- hasItem = gtk_tree_model_iter_next(model, &iterItem);
+ else
+ gtkTreeSelectNode(model, selection, &iterItem, 1);
}
-
- return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */
}
-static GtkTreeIter gtkTreeGetLastVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem)
+static int gtkTreeIsNodeVisible(Ihandle* ih, GtkTreeModel* model, InodeHandle* node_handle, InodeHandle* *nodeLastParent)
{
- GtkTreeIter iterChild, iterPrev = gtkTreeInvalidIter;
- GtkTreePath* path = gtk_tree_model_get_path(model, &iterItem);
-
- /* Check whether we have child items and it is expanded (visible) */
- if(gtk_tree_model_iter_has_child(model, &iterItem) && gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))
- {
- int hasItem = TRUE;
- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */
+ GtkTreeIter iterItem, iterParent;
+ GtkTreePath* path;
+ int is_visible;
- while(hasItem)
- {
- iterPrev = iterChild;
+ gtkTreeIterInit(ih, &iterItem, node_handle);
- /* Go to next sibling item */
- hasItem = gtk_tree_model_iter_next(model, &iterChild);
- }
+ if (!gtk_tree_model_iter_parent(model, &iterParent, &iterItem) ||
+ iterParent.user_data == *nodeLastParent)
+ return 1;
- iterItem = gtkTreeGetLastVisibleNode(ih, model, iterPrev);
- }
+ path = gtk_tree_model_get_path(model, &iterParent);
+ is_visible = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path);
gtk_tree_path_free(path);
- return iterItem;
+ if (!is_visible)
+ return 0;
+
+ /* save last parent */
+ *nodeLastParent = iterParent.user_data;
+ return 1;
}
-static GtkTreeIter gtkTreeFindNodeID(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, GtkTreeIter iterNode)
+static void gtkTreeGetLastVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem)
{
- GtkTreeIter iterChild;
- int hasItem = TRUE;
+ int i;
+ InodeHandle* nodeLastParent = NULL;
- while(hasItem)
+ for (i = ih->data->node_count-1; i >= 0; i--)
{
- /* ID control to traverse items */
- ih->data->id_control++;
-
- /* StateID founded! */
- if (iterItem.user_data == iterNode.user_data)
- return iterItem;
-
- /* Check whether we have child items */
- if (gtk_tree_model_iter_has_child(model, &iterItem))
+ if (gtkTreeIsNodeVisible(ih, model, ih->data->node_cache[i].node_handle, &nodeLastParent))
{
- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */
- iterChild = gtkTreeFindNodeID(ih, model, iterChild, iterNode);
-
- /* StateID founded! */
- if(iterChild.user_data)
- return iterChild;
+ gtkTreeIterInit(ih, iterItem, ih->data->node_cache[i].node_handle);
+ return;
}
-
- /* Go to next sibling item */
- hasItem = gtk_tree_model_iter_next(model, &iterItem);
}
- return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */
+ gtkTreeIterInit(ih, iterItem, ih->data->node_cache[0].node_handle); /* root is always visible */
}
-static int gtkTreeGetNodeId(Ihandle* ih, GtkTreeIter iterItem)
+static void gtkTreeGetNextVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, int count)
{
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- GtkTreeIter iterRoot;
- gtk_tree_model_get_iter_first(model, &iterRoot);
-
- ih->data->id_control = -1;
- iterItem = gtkTreeFindNodeID(ih, model, iterRoot, iterItem);
- if (iterItem.user_data)
- return ih->data->id_control;
- else
- return -1;
-}
+ int i, id;
+ InodeHandle* nodeLastParent = NULL;
-static GtkTreeIter gtkTreeFindUserData(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, void* userdata)
-{
- GtkTreeIter iterChild;
- int hasItem = TRUE;
- void* node_userdata;
+ id = iupTreeFindNodeId(ih, iterItem->user_data);
+ id += count;
- while(hasItem)
+ for (i = id; i < ih->data->node_count; i++)
{
- /* ID control to traverse items */
- ih->data->id_control++;
+ if (gtkTreeIsNodeVisible(ih, model, ih->data->node_cache[i].node_handle, &nodeLastParent))
+ {
+ gtkTreeIterInit(ih, iterItem, ih->data->node_cache[i].node_handle);
+ return;
+ }
+ }
- gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_USERDATA, &node_userdata, -1);
+ gtkTreeIterInit(ih, iterItem, ih->data->node_cache[0].node_handle); /* root is always visible */
+}
- /* userdata founded! */
- if (node_userdata == userdata)
- return iterItem;
+static void gtkTreeGetPreviousVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, int count)
+{
+ int i, id;
+ InodeHandle* nodeLastParent = NULL;
- /* Check whether we have child items */
- if (gtk_tree_model_iter_has_child(model, &iterItem))
- {
- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */
- iterChild = gtkTreeFindUserData(ih, model, iterChild, userdata);
+ id = iupTreeFindNodeId(ih, iterItem->user_data);
+ id -= count;
- /* userdata founded! */
- if (iterChild.user_data)
- return iterChild;
+ for (i = id; i >= 0; i--)
+ {
+ if (gtkTreeIsNodeVisible(ih, model, ih->data->node_cache[i].node_handle, &nodeLastParent))
+ {
+ gtkTreeIterInit(ih, iterItem, ih->data->node_cache[i].node_handle);
+ return;
}
-
- /* Go to next sibling item */
- hasItem = gtk_tree_model_iter_next(model, &iterItem);
}
- return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */
+ gtkTreeGetLastVisibleNode(ih, model, iterItem);
}
-static int gtkTreeGetUserDataId(Ihandle* ih, GtkTreeModel* model, void* userdata)
+static int gtkTreeFindNodeId(Ihandle* ih, GtkTreeIter* iterItem)
{
- GtkTreeIter iterRoot, iterItem;
- gtk_tree_model_get_iter_first(model, &iterRoot);
-
- ih->data->id_control = -1;
- iterItem = gtkTreeFindUserData(ih, model, iterRoot, userdata);
- if (iterItem.user_data)
- return ih->data->id_control;
- else
- return -1;
+ return iupTreeFindNodeId(ih, iterItem->user_data);
}
-static void gtkTreeCallNodeRemovedRec(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, IFnis cb)
+static void gtkTreeCallNodeRemovedRec(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, IFns cb, int *id)
{
GtkTreeIter iterChild;
- int hasItem = TRUE;
- void* node_userdata;
+ int hasItem;
+ int old_id = *id;
+ /* Check whether we have child items */
+ /* remove from children first */
+ hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */
while(hasItem)
{
- /* ID control to traverse items */
- ih->data->id_control++;
-
- gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_USERDATA, &node_userdata, -1);
-
- cb(ih, ih->data->id_control, (char*)node_userdata);
-
- /* Check whether we have child items */
- if (gtk_tree_model_iter_has_child(model, &iterItem))
- {
- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */
- gtkTreeCallNodeRemovedRec(ih, model, iterChild, cb);
- }
+ /* go recursive to children */
+ gtkTreeCallNodeRemovedRec(ih, model, &iterChild, cb, id);
/* Go to next sibling item */
- hasItem = gtk_tree_model_iter_next(model, &iterItem);
+ hasItem = gtk_tree_model_iter_next(model, &iterChild);
}
+
+ /* actually do it for the node */
+ ih->data->node_count--;
+ (*id)++;
+
+ cb(ih, (char*)ih->data->node_cache[old_id].userdata);
}
static void gtkTreeCallNodeRemoved(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem)
{
- IFnis cb = (IFnis)IupGetCallback(ih, "NODEREMOVED_CB");
+ int old_count = ih->data->node_count;
+ int id = iupTreeFindNodeId(ih, iterItem->user_data);
+ int old_id = id;
+
+ IFns cb = (IFns)IupGetCallback(ih, "NODEREMOVED_CB");
if (cb)
+ gtkTreeCallNodeRemovedRec(ih, model, iterItem, cb, &id);
+ else
{
- ih->data->id_control = gtkTreeGetNodeId(ih, *iterItem)-1;
- gtkTreeCallNodeRemovedRec(ih, model, *iterItem, cb);
+ int removed_count = iupdrvTreeTotalChildCount(ih, iterItem->user_data)+1;
+ ih->data->node_count -= removed_count;
}
+
+ iupTreeDelFromCache(ih, old_id, old_count-ih->data->node_count);
}
-static gboolean gtkTreeFindNodeFromID(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, int *id)
+static void gtkTreeCallNodeRemovedAll(Ihandle* ih)
{
- GtkTreeIter iterChild;
- int hasItem = TRUE;
+ IFns cb = (IFns)IupGetCallback(ih, "NODEREMOVED_CB");
+ int i, old_count = ih->data->node_count;
- while(hasItem)
+ if (cb)
{
- /* ID control to traverse items */
- (*id)--;
-
- /* StateID founded! */
- if (*id < 0)
- return TRUE;
-
- /* Check whether we have child items */
- if (gtk_tree_model_iter_has_child(model, iterItem))
+ for (i = 0; i < ih->data->node_count; i++)
{
- gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */
-
- if (gtkTreeFindNodeFromID(ih, model, &iterChild, id))
- {
- *iterItem = iterChild;
- return TRUE;
- }
+ cb(ih, (char*)ih->data->node_cache[i].userdata);
}
-
- /* Go to next sibling item */
- hasItem = gtk_tree_model_iter_next(model, iterItem);
}
- return FALSE;
+ ih->data->node_count = 0;
+
+ iupTreeDelFromCache(ih, 0, old_count);
}
-static gboolean gtkTreeFindNodeFromString(Ihandle* ih, GtkTreeModel* model, const char* name_id, GtkTreeIter *iterItem)
+static gboolean gtkTreeFindNodeFromString(Ihandle* ih, const char* name_id, GtkTreeIter *iterItem)
{
- if (name_id[0])
- {
- int id;
- if (iupStrToInt(name_id, &id))
- {
- gtk_tree_model_get_iter_first(model, iterItem);
- return gtkTreeFindNodeFromID(ih, model, iterItem, &id);
- }
- }
- else
- {
- GtkTreePath* path = NULL;
- gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, NULL);
- if (path)
- {
- gtk_tree_model_get_iter(model, iterItem, path);
- gtk_tree_path_free(path);
- return TRUE;
- }
- }
- return FALSE;
+ InodeHandle* node_handle = iupTreeGetNodeFromString(ih, name_id);
+ if (!node_handle)
+ return FALSE;
+
+ gtkTreeIterInit(ih, iterItem, node_handle);
+ return TRUE;
}
/*****************************************************************************/
/* MANIPULATING IMAGES */
/*****************************************************************************/
-static void gtkTreeUpdateImages(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, int mode)
+static void gtkTreeUpdateImages(Ihandle* ih, int mode)
{
- GtkTreeIter iterChild;
- int hasItem = TRUE;
- int kind;
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeIter iterItem;
+ int i, kind;
- while(hasItem)
+ for (i=0; i<ih->data->node_count; i++)
{
+ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
+
gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1);
if (kind == ITREE_BRANCH)
@@ -480,14 +468,6 @@ static void gtkTreeUpdateImages(Ihandle* ih, GtkTreeModel* model, GtkTreeIter it
if (!has_image)
gtk_tree_store_set(GTK_TREE_STORE(model), &iterItem, IUPGTK_TREE_IMAGE, ih->data->def_image_collapsed, -1);
}
-
- if (gtk_tree_model_iter_has_child(model, &iterItem))
- {
-
- /* Recursively traverse child items */
- gtk_tree_model_iter_children(model, &iterChild, &iterItem);
- gtkTreeUpdateImages(ih, model, iterChild, mode);
- }
}
else
{
@@ -499,9 +479,6 @@ static void gtkTreeUpdateImages(Ihandle* ih, GtkTreeModel* model, GtkTreeIter it
gtk_tree_store_set(GTK_TREE_STORE(model), &iterItem, IUPGTK_TREE_IMAGE, ih->data->def_image_leaf, -1);
}
}
-
- /* Go to next sibling item */
- hasItem = gtk_tree_model_iter_next(model, &iterItem);
}
}
@@ -536,26 +513,49 @@ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t
GtkTreeIter iterPrev, iterNewItem, iterParent;
GtkTreePath* path;
GdkColor color = {0L,0,0,0};
- int kindPrev;
-
- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterPrev))
- return;
+ int kindPrev = -1;
- gtk_tree_model_get(GTK_TREE_MODEL(store), &iterPrev, IUPGTK_TREE_KIND, &kindPrev, -1);
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterPrev))
+ {
+ /* check if the root was really specified */
+ int id = 0;
+ if (!iupStrToInt(name_id, &id) || id != -1)
+ return;
+ }
+ else
+ gtk_tree_model_get(GTK_TREE_MODEL(store), &iterPrev, IUPGTK_TREE_KIND, &kindPrev, -1);
- if (kindPrev == ITREE_BRANCH && add)
- gtk_tree_store_insert(store, &iterNewItem, &iterPrev, 0); /* iterPrev is parent of the new item (firstchild of it) */
+ if (kindPrev != -1)
+ {
+ /* Add the new node */
+ if (kindPrev == ITREE_BRANCH && add)
+ gtk_tree_store_insert(store, &iterNewItem, &iterPrev, 0); /* iterPrev is parent of the new item (firstchild of it) */
+ else
+ gtk_tree_store_insert_after(store, &iterNewItem, NULL, &iterPrev); /* iterPrev is sibling of the new item */
+ iupTreeAddToCache(ih, add, kindPrev, iterPrev.user_data, iterNewItem.user_data);
+ }
else
- gtk_tree_store_insert_after(store, &iterNewItem, NULL, &iterPrev); /* iterPrev is sibling of the new item */
+ {
+ gtk_tree_store_append(store, &iterNewItem, NULL); /* root node */
+ iupTreeAddToCache(ih, 0, 0, NULL, iterNewItem.user_data);
+
+ /* store the stamp for the tree */
+ ih->data->stamp = iterNewItem.stamp;
+ }
iupgtkGetColor(iupAttribGetStr(ih, "FGCOLOR"), &color);
+ if (!title)
+ title = "";
+
/* set the attributes of the new node */
gtk_tree_store_set(store, &iterNewItem, IUPGTK_TREE_HAS_IMAGE, FALSE,
IUPGTK_TREE_HAS_IMAGE_EXPANDED, FALSE,
IUPGTK_TREE_TITLE, iupgtkStrConvertToUTF8(title),
IUPGTK_TREE_KIND, kind,
- IUPGTK_TREE_COLOR, &color, -1);
+ IUPGTK_TREE_COLOR, &color,
+ IUPGTK_TREE_SELECT, 0,
+ -1);
if (kind == ITREE_LEAF)
gtk_tree_store_set(store, &iterNewItem, IUPGTK_TREE_IMAGE, ih->data->def_image_leaf, -1);
@@ -563,56 +563,113 @@ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t
gtk_tree_store_set(store, &iterNewItem, IUPGTK_TREE_IMAGE, ih->data->def_image_collapsed,
IUPGTK_TREE_IMAGE_EXPANDED, ih->data->def_image_expanded, -1);
- if (kindPrev == ITREE_BRANCH && add)
- iterParent = iterPrev;
- else
- gtk_tree_model_iter_parent(GTK_TREE_MODEL(store), &iterParent, &iterNewItem);
+ if (kindPrev != -1)
+ {
+ if (kindPrev == ITREE_BRANCH && add)
+ iterParent = iterPrev;
+ else if (!gtk_tree_model_iter_parent(GTK_TREE_MODEL(store), &iterParent, &iterNewItem))
+ return;
- /* If this is the first child of the parent, then handle the ADDEXPANDED attribute */
- if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), &iterParent) == 1)
+ /* If this is the first child of the parent, then handle the ADDEXPANDED attribute */
+ if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), &iterParent) == 1)
+ {
+ path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterParent);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", "1");
+ if (ih->data->add_expanded)
+ gtk_tree_view_expand_row(GTK_TREE_VIEW(ih->handle), path, FALSE);
+ else
+ gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", NULL);
+ gtk_tree_path_free(path);
+ }
+ }
+ else
{
- int depth;
- path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterParent);
- depth = gtk_tree_path_get_depth(path)-1;
- if (ih->data->add_expanded || depth==0) /* if this is the first child of the root, expand always */
+ if (ih->data->node_count == 1)
{
- iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCHOPEN_CB", "1");
- gtk_tree_view_expand_row(GTK_TREE_VIEW(ih->handle), path, FALSE);
+ /* MarkStart node */
+ iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)iterNewItem.user_data);
+
+ /* Set the default VALUE */
+ path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterNewItem);
+ gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE);
+ gtk_tree_path_free(path);
}
- else
- gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path);
- gtk_tree_path_free(path);
}
}
-static void gtkTreeAddRootNode(Ihandle* ih)
+
+/*****************************************************************************/
+/* AUXILIAR FUNCTIONS */
+/*****************************************************************************/
+
+
+static void gtkTreeChildRebuildCacheRec(Ihandle* ih, GtkTreeModel *model, GtkTreeIter *iterItem, int *id)
{
- GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
- GtkTreePath* path;
- GtkTreeIter iterRoot;
- GdkColor color = {0L,0,0,0};
+ GtkTreeIter iterChild;
+ int hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */
+ while(hasItem)
+ {
+ (*id)++;
+ ih->data->node_cache[*id].node_handle = iterChild.user_data;
- iupgtkGetColor(iupAttribGetStr(ih, "FGCOLOR"), &color);
+ /* go recursive to children */
+ gtkTreeChildRebuildCacheRec(ih, model, &iterChild, id);
+
+ /* Go to next sibling item */
+ hasItem = gtk_tree_model_iter_next(model, &iterChild);
+ }
+}
- gtk_tree_store_append(store, &iterRoot, NULL); /* root node */
- gtk_tree_store_set(store, &iterRoot, IUPGTK_TREE_IMAGE, ih->data->def_image_collapsed,
- IUPGTK_TREE_HAS_IMAGE, FALSE,
- IUPGTK_TREE_IMAGE_EXPANDED, ih->data->def_image_expanded,
- IUPGTK_TREE_HAS_IMAGE_EXPANDED, FALSE,
- IUPGTK_TREE_KIND, ITREE_BRANCH,
- IUPGTK_TREE_COLOR, &color, -1);
+static void gtkTreeRebuildNodeCache(Ihandle* ih, int id, GtkTreeIter iterItem)
+{
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ ih->data->node_cache[id].node_handle = iterItem.user_data;
+ gtkTreeChildRebuildCacheRec(ih, model, &iterItem, &id);
+}
+
+static void gtkTreeChildCountRec(GtkTreeModel *model, GtkTreeIter *iterItem, int *count)
+{
+ GtkTreeIter iterChild;
+ int hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */
+ while(hasItem)
+ {
+ (*count)++;
- path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterRoot);
- /* MarkStart node */
- iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)path);
+ /* go recursive to children */
+ gtkTreeChildCountRec(model, &iterChild, count);
- /* Set the default VALUE */
- gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE);
+ /* Go to next sibling item */
+ hasItem = gtk_tree_model_iter_next(model, &iterChild);
+ }
+}
+
+int iupdrvTreeTotalChildCount(Ihandle* ih, InodeHandle* node_handle)
+{
+ int count = 0;
+ GtkTreeIter iterItem;
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ gtkTreeIterInit(ih, &iterItem, node_handle);
+ gtkTreeChildCountRec(model, &iterItem, &count);
+ return count;
+}
+
+InodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih)
+{
+ GtkTreePath* path = NULL;
+ gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, NULL);
+ if (path)
+ {
+ GtkTreeIter iterItem;
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ gtk_tree_model_get_iter(model, &iterItem, path);
+ gtk_tree_path_free(path);
+ return iterItem.user_data;
+ }
+
+ return NULL;
}
-/*****************************************************************************/
-/* AUXILIAR FUNCTIONS */
-/*****************************************************************************/
static void gtkTreeOpenCloseEvent(Ihandle* ih)
{
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
@@ -620,7 +677,7 @@ static void gtkTreeOpenCloseEvent(Ihandle* ih)
GtkTreePath* path;
int kind;
- if (!gtkTreeFindNodeFromString(ih, model, "", &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, "", &iterItem))
return;
path = gtk_tree_model_get_path(model, &iterItem);
@@ -637,27 +694,22 @@ static void gtkTreeOpenCloseEvent(Ihandle* ih)
}
}
-static gboolean gtkTreeSelected_Foreach_Func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GList **rowref_list)
+typedef struct _gtkTreeSelectMinMax
{
- GtkTreeRowReference *rowref;
-
- rowref = gtk_tree_row_reference_new(model, path);
- *rowref_list = g_list_append(*rowref_list, rowref);
+ Ihandle* ih;
+ int id1, id2;
+} gtkTreeSelectMinMax;
- (void)iter;
- return FALSE; /* do not stop walking the store, call us with next row */
-}
-
-static gboolean gtkTreeSelected_Iter_Func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GList **rowref_list)
+static gboolean gtkTreeSelected_Foreach_Func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iterItem, gtkTreeSelectMinMax *minmax)
{
- GtkTreeRowReference *rowref;
- GtkTreeIter iterParent;
- if (!gtk_tree_model_iter_parent(model, &iterParent, iter)) /* the root node can't be deleted */
- return FALSE; /* do not stop walking the store, call us with next row */
-
- rowref = gtk_tree_row_reference_new(model, path);
- *rowref_list = g_list_append(*rowref_list, rowref);
+ int id = iupTreeFindNodeId(minmax->ih, iterItem->user_data);
+ if (id < minmax->id1)
+ minmax->id1 = id;
+ if (id > minmax->id2)
+ minmax->id2 = id;
+ (void)model;
+ (void)path;
return FALSE; /* do not stop walking the store, call us with next row */
}
@@ -672,45 +724,48 @@ static void gtkTreeCallMultiSelectionCb(Ihandle* ih)
{
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
- GtkTreeIter iterRoot;
- GList *rr_list = NULL;
- GList *node;
- int* id_rowItem;
- int count_selected_rows, i = 0;
+ GtkTreeIter iterItem;
+ int i = 0, countItems;
+ gtkTreeSelectMinMax minmax;
- gtk_tree_model_get_iter_first(model, &iterRoot);
+ minmax.ih = ih;
+ minmax.id1 = ih->data->node_count;
+ minmax.id2 = -1;
- gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)gtkTreeSelected_Foreach_Func, &rr_list);
- count_selected_rows = g_list_length(rr_list);
- id_rowItem = malloc(sizeof(int) * count_selected_rows);
+ gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)gtkTreeSelected_Foreach_Func, &minmax);
+ if (minmax.id2 == -1)
+ return;
- for(node = rr_list; node != NULL; node = node->next)
+ /* interactive selection of several nodes will NOT select hidden nodes,
+ so make sure that they are selected. */
+ for(i = minmax.id1; i <= minmax.id2; i++)
{
- GtkTreePath* path = gtk_tree_row_reference_get_path(node->data);
- if (path)
- {
- GtkTreeIter iterItem;
- gtk_tree_model_get_iter(model, &iterItem, path);
-
- id_rowItem[i] = gtkTreeGetNodeId(ih, iterItem);
- i++;
-
- gtk_tree_path_free(path);
- }
+ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
+ if (!gtkTreeIsNodeSelected(model, &iterItem))
+ gtkTreeSelectNodeRaw(model, &iterItem, 1);
}
- g_list_foreach(rr_list, (GFunc) gtk_tree_row_reference_free, NULL);
- g_list_free(rr_list);
+ /* if last selected item is a branch, then select its children */
+ iupTreeSelectLastCollapsedBranch(ih, &(minmax.id2));
+
+ countItems = minmax.id2-minmax.id1+1;
if (cbMulti)
- cbMulti(ih, id_rowItem, count_selected_rows);
- else
{
- for (i=0; i<count_selected_rows; i++)
- cbSelec(ih, id_rowItem[i], 1);
- }
+ int* id_rowItem = malloc(sizeof(int) * countItems);
+
+ for(i = 0; i < countItems; i++)
+ id_rowItem[i] = minmax.id1+i;
- free(id_rowItem);
+ cbMulti(ih, id_rowItem, countItems);
+
+ free(id_rowItem);
+ }
+ else if (cbSelec)
+ {
+ for (i=0; i<countItems; i++)
+ cbSelec(ih, minmax.id1+i, 1);
+ }
}
}
@@ -747,14 +802,22 @@ static int gtkTreeSetTopItemAttrib(Ihandle* ih, const char* value)
GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
GtkTreeIter iterItem;
GtkTreePath* path;
+ int kind;
- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), value, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, value, &iterItem))
return 0;
path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterItem);
- if (!gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))
+ gtk_tree_model_get(GTK_TREE_MODEL(store), &iterItem, IUPGTK_TREE_KIND, &kind, -1);
+ if (kind == ITREE_LEAF)
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path);
+ else
+ {
+ int expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path);
gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path);
+ if (!expanded) gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path);
+ }
gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE, 0, 0); /* scroll to visible */
@@ -788,34 +851,23 @@ static int gtkTreeSetExpandAllAttrib(Ihandle* ih, const char* value)
if (iupStrBoolean(value))
gtk_tree_view_expand_all(GTK_TREE_VIEW(ih->handle));
else
- {
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- GtkTreeIter iterRoot;
- GtkTreePath* pathRoot;
-
gtk_tree_view_collapse_all(GTK_TREE_VIEW(ih->handle));
- /* The root node is always expanded */
- gtk_tree_model_get_iter_first(model, &iterRoot);
- pathRoot = gtk_tree_model_get_path(model, &iterRoot);
- gtk_tree_view_expand_row(GTK_TREE_VIEW(ih->handle), pathRoot, FALSE);
- gtk_tree_path_free(pathRoot);
- }
-
return 0;
}
static char* gtkTreeGetDepthAttrib(Ihandle* ih, const char* name_id)
{
- char* depth;
+ char* str;
GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
+
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return NULL;
- depth = iupStrGetMemory(10);
- sprintf(depth, "%d", gtk_tree_store_iter_depth(store, &iterItem));
- return depth;
+ str = iupStrGetMemory(10);
+ sprintf(str, "%d", gtk_tree_store_iter_depth(store, &iterItem));
+ return str;
}
static int gtkTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char* value)
@@ -824,14 +876,14 @@ static int gtkTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char
GtkTreeIter iterItemSrc, iterItemDst, iterNewItem;
GtkTreeIter iterParent, iterNextParent;
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItemSrc))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItemSrc))
return 0;
- if (!gtkTreeFindNodeFromString(ih, model, value, &iterItemDst))
+ if (!gtkTreeFindNodeFromString(ih, value, &iterItemDst))
return 0;
/* If Drag item is an ancestor of Drop item then return */
@@ -843,12 +895,8 @@ static int gtkTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char
iterParent = iterNextParent;
}
- /* Copying the node and its children to the new position */
- gtkTreeCopyNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 0); /* not a full copy, preserve user data */
-
- /* Deleting the node of its old position */
- /* do not delete the user data, we copy the references in CopyNode */
- gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItemSrc);
+ /* Move the node and its children to the new position */
+ gtkTreeCopyMoveNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 0);
return 0;
}
@@ -859,14 +907,14 @@ static int gtkTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char
GtkTreeIter iterItemSrc, iterItemDst, iterNewItem;
GtkTreeIter iterParent, iterNextParent;
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItemSrc))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItemSrc))
return 0;
- if (!gtkTreeFindNodeFromString(ih, model, value, &iterItemDst))
+ if (!gtkTreeFindNodeFromString(ih, value, &iterItemDst))
return 0;
/* If Drag item is an ancestor of Drop item then return */
@@ -878,8 +926,8 @@ static int gtkTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char
iterParent = iterNextParent;
}
- /* Copying the node and its children to the new position */
- gtkTreeCopyNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 1);
+ /* Copy the node and its children to the new position */
+ gtkTreeCopyMoveNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 1);
return 0;
}
@@ -891,7 +939,7 @@ static char* gtkTreeGetColorAttrib(Ihandle* ih, const char* name_id)
GtkTreeIter iterItem;
GdkColor *color;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return NULL;
gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_COLOR, &color, -1);
@@ -912,7 +960,7 @@ static int gtkTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v
GdkColor color;
unsigned char r, g, b;
- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return 0;
if (!iupStrToRGB(value, &r, &g, &b))
@@ -931,14 +979,14 @@ static char* gtkTreeGetParentAttrib(Ihandle* ih, const char* name_id)
GtkTreeIter iterParent;
char* str;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return NULL;
if (!gtk_tree_model_iter_parent(model, &iterParent, &iterItem))
return NULL;
str = iupStrGetMemory(10);
- sprintf(str, "%d", gtkTreeGetNodeId(ih, iterParent));
+ sprintf(str, "%d", gtkTreeFindNodeId(ih, &iterParent));
return str;
}
@@ -948,7 +996,7 @@ static char* gtkTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)
GtkTreeIter iterItem;
char* str;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return NULL;
str = iupStrGetMemory(10);
@@ -956,40 +1004,13 @@ static char* gtkTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)
return str;
}
-static int gtkTreeCount(GtkTreeModel* model, GtkTreeIter iterBranch)
-{
- GtkTreeIter iterChild;
- int count = 0;
- int hasItem = gtk_tree_model_iter_children(model, &iterChild, &iterBranch); /* get the firstchild */
- count++;
- while(hasItem)
- {
- count += gtkTreeCount(model, iterChild);
-
- /* Go to next sibling item */
- hasItem = gtk_tree_model_iter_next(model, &iterChild);
- }
-
- return count;
-}
-
-static char* gtkTreeGetCountAttrib(Ihandle* ih)
-{
- GtkTreeIter iterRoot;
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- char* str = iupStrGetMemory(10);
- gtk_tree_model_get_iter_first(model, &iterRoot);
- sprintf(str, "%d", gtkTreeCount(model, iterRoot));
- return str;
-}
-
static char* gtkTreeGetKindAttrib(Ihandle* ih, const char* name_id)
{
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
GtkTreeIter iterItem;
int kind;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return NULL;
gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1);
@@ -1005,7 +1026,7 @@ static char* gtkTreeGetStateAttrib(Ihandle* ih, const char* name_id)
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return NULL;
if (gtk_tree_model_iter_has_child(model, &iterItem))
@@ -1028,13 +1049,20 @@ static int gtkTreeSetStateAttrib(Ihandle* ih, const char* name_id, const char* v
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
GtkTreeIter iterItem;
GtkTreePath* path;
+ int kind;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return 0;
- path = gtk_tree_model_get_path(model, &iterItem);
- gtkTreeExpandItem(ih, path, iupStrEqualNoCase(value, "EXPANDED"));
- gtk_tree_path_free(path);
+ gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1);
+ if (kind == ITREE_BRANCH)
+ {
+ path = gtk_tree_model_get_path(model, &iterItem);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", "1");
+ gtkTreeExpandItem(ih, path, iupStrEqualNoCase(value, "EXPANDED"));
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", NULL);
+ gtk_tree_path_free(path);
+ }
return 0;
}
@@ -1050,7 +1078,7 @@ static char* gtkTreeGetTitleAttrib(Ihandle* ih, const char* name_id)
{
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return NULL;
return gtkTreeGetTitle(model, iterItem);
}
@@ -1059,8 +1087,10 @@ static int gtkTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* v
{
GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return 0;
+ if (!value)
+ value = "";
gtk_tree_store_set(store, &iterItem, IUPGTK_TREE_TITLE, iupgtkStrConvertToUTF8(value), -1);
return 0;
}
@@ -1070,7 +1100,7 @@ static int gtkTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha
PangoFontDescription* fontdesc = NULL;
GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return 0;
if (value)
fontdesc = iupgtkGetPangoFontDesc(value);
@@ -1083,49 +1113,12 @@ static char* gtkTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id)
PangoFontDescription* fontdesc;
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return NULL;
gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_FONT, &fontdesc, -1);
return pango_font_description_to_string(fontdesc);
}
-static char* gtkTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id)
-{
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- int id;
- char* str = (char*)(name_id+1); /* skip ':' */
- void* userdata = NULL;
- if (sscanf(str, "%p", &userdata)!=1)
- return NULL;
- id = gtkTreeGetUserDataId(ih, model, userdata);
- if (id == -1)
- return NULL;
- str = iupStrGetMemory(16);
- sprintf(str, "%d", id);
- return str;
-}
-
-static char* gtkTreeGetUserDataAttrib(Ihandle* ih, const char* name_id)
-{
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- GtkTreeIter iterItem;
- char* userdata;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
- return NULL;
- gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_USERDATA, &userdata, -1);
- return userdata;
-}
-
-static int gtkTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value)
-{
- GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
- GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
- return 0;
- gtk_tree_store_set(store, &iterItem, IUPGTK_TREE_USERDATA, value, -1);
- return 0;
-}
-
static char* gtkTreeGetValueAttrib(Ihandle* ih)
{
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
@@ -1140,67 +1133,117 @@ static char* gtkTreeGetValueAttrib(Ihandle* ih)
gtk_tree_path_free(path);
str = iupStrGetMemory(16);
- sprintf(str, "%d", gtkTreeGetNodeId(ih, iterItem));
+ sprintf(str, "%d", gtkTreeFindNodeId(ih, &iterItem));
return str;
}
- return "0"; /* default VALUE is root */
+ if (ih->data->node_count)
+ return "0"; /* default VALUE is root */
+ else
+ return "-1";
+}
+
+static char* gtkTreeGetMarkedNodesAttrib(Ihandle* ih)
+{
+ char* str = iupStrGetMemory(ih->data->node_count+1);
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeIter iterItem;
+ int i;
+
+ for (i=0; i<ih->data->node_count; i++)
+ {
+ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
+ if (gtkTreeIsNodeSelected(model, &iterItem))
+ str[i] = '+';
+ else
+ str[i] = '-';
+ }
+
+ str[ih->data->node_count] = 0;
+ return str;
+}
+
+static int gtkTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value)
+{
+ int count, i;
+ GtkTreeModel* model;
+ GtkTreeIter iterItem;
+ GtkTreeSelection* selection;
+
+ if (ih->data->mark_mode==ITREE_MARK_SINGLE || !value)
+ return 0;
+
+ count = strlen(value);
+ if (count > ih->data->node_count)
+ count = ih->data->node_count;
+
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
+ model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+
+ for (i=0; i<count; i++)
+ {
+ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
+ if (value[i] == '+')
+ gtkTreeSelectNode(model, selection, &iterItem, 1);
+ else
+ gtkTreeSelectNode(model, selection, &iterItem, 0);
+ }
+
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+
+ return 0;
}
static int gtkTreeSetMarkAttrib(Ihandle* ih, const char* value)
{
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
- GtkTreeIter iterRoot;
if (ih->data->mark_mode==ITREE_MARK_SINGLE)
return 0;
- gtk_tree_model_get_iter_first(model, &iterRoot);
-
if(iupStrEqualNoCase(value, "BLOCK"))
{
+ GtkTreeIter iterItem1, iterItem2;
GtkTreePath* pathFocus;
gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
- gtk_tree_selection_select_range(selection, (GtkTreePath*)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"), pathFocus);
+ gtk_tree_model_get_iter(model, &iterItem1, pathFocus);
gtk_tree_path_free(pathFocus);
+
+ gtkTreeIterInit(ih, &iterItem2, iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"));
+
+ gtkTreeSelectRange(ih, model, selection, &iterItem1, &iterItem2, 0);
}
else if(iupStrEqualNoCase(value, "CLEARALL"))
- gtk_tree_selection_unselect_all(selection);
+ gtkTreeSelectAll(ih, model, selection, 0);
else if(iupStrEqualNoCase(value, "MARKALL"))
- gtk_tree_selection_select_all(selection);
+ gtkTreeSelectAll(ih, model, selection, 1);
else if(iupStrEqualNoCase(value, "INVERTALL")) /* INVERTALL *MUST* appear before INVERT, or else INVERTALL will never be called. */
- gtkTreeInvertAllNodeMarking(ih, model, selection, &iterRoot);
+ gtkTreeInvertAllNodeMarking(ih, model, selection);
else if(iupStrEqualPartial(value, "INVERT"))
{
/* iupStrEqualPartial allows the use of "INVERTid" form */
GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, model, &value[strlen("INVERT")], &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, &value[strlen("INVERT")], &iterItem))
return 0;
- if(gtk_tree_selection_iter_is_selected(selection, &iterItem))
- gtk_tree_selection_unselect_iter(selection, &iterItem);
- else
- gtk_tree_selection_select_iter(selection, &iterItem);
+ gtkTreeSelectNode(model, selection, &iterItem, -1); /* toggle */
}
else
{
- GtkTreePath *path1, *path2;
GtkTreeIter iterItem1, iterItem2;
char str1[50], str2[50];
if (iupStrToStrStr(value, str1, str2, '-')!=2)
return 0;
- if (!gtkTreeFindNodeFromString(ih, model, str1, &iterItem1))
+ if (!gtkTreeFindNodeFromString(ih, str1, &iterItem1))
return 0;
- if (!gtkTreeFindNodeFromString(ih, model, str2, &iterItem2))
+ if (!gtkTreeFindNodeFromString(ih, str2, &iterItem2))
return 0;
- path1 = gtk_tree_model_get_path(model, &iterItem1);
- path2 = gtk_tree_model_get_path(model, &iterItem2);
- gtk_tree_selection_select_range(selection, path1, path2);
- gtk_tree_path_free(path1);
- gtk_tree_path_free(path2);
+ gtkTreeSelectRange(ih, model, selection, &iterItem1, &iterItem2, 0);
}
return 1;
@@ -1210,148 +1253,112 @@ static int gtkTreeSetValueAttrib(Ihandle* ih, const char* value)
{
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
- GtkTreeIter iterRoot, iterItem;
+ GtkTreeIter iterItem;
GtkTreePath* path;
+ int kind;
if (gtkTreeSetMarkAttrib(ih, value))
return 0;
- gtk_tree_model_get_iter_first(model, &iterRoot);
-
- if (iupStrEqualNoCase(value, "ROOT"))
- iterItem = iterRoot;
+ if (iupStrEqualNoCase(value, "ROOT") || iupStrEqualNoCase(value, "FIRST"))
+ gtk_tree_model_get_iter_first(model, &iterItem);
else if(iupStrEqualNoCase(value, "LAST"))
- iterItem = gtkTreeGetLastVisibleNode(ih, model, iterRoot);
+ gtkTreeGetLastVisibleNode(ih, model, &iterItem);
else if(iupStrEqualNoCase(value, "PGUP"))
{
- GtkTreeIter iterPrev;
-
GtkTreePath* pathFocus;
gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
- gtk_tree_model_get_iter(model, &iterPrev, pathFocus);
+ gtk_tree_model_get_iter(model, &iterItem, pathFocus);
gtk_tree_path_free(pathFocus);
- ih->data->id_control = -1;
- gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterPrev);
- ih->data->id_control -= 10; /* less 10 visible nodes */
-
- if(ih->data->id_control < 0)
- ih->data->id_control = 0; /* Begin of tree = Root id */
-
- iterItem = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot);
+ gtkTreeGetPreviousVisibleNode(ih, model, &iterItem, 10);
}
else if(iupStrEqualNoCase(value, "PGDN"))
{
- GtkTreeIter iterNext;
-
GtkTreePath* pathFocus;
gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
- gtk_tree_model_get_iter(model, &iterNext, pathFocus);
+ gtk_tree_model_get_iter(model, &iterItem, pathFocus);
gtk_tree_path_free(pathFocus);
- ih->data->id_control = -1;
- gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterNext);
- ih->data->id_control += 10; /* more 10 visible nodes */
-
- iterNext = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot);
-
- if (ih->data->id_control >= 0)
- iterNext = gtkTreeGetLastVisibleNode(ih, model, iterRoot);
-
- iterItem = iterNext;
+ gtkTreeGetNextVisibleNode(ih, model, &iterItem, 10);
}
else if(iupStrEqualNoCase(value, "NEXT"))
{
- GtkTreeIter iterNext;
-
GtkTreePath* pathFocus;
gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
- gtk_tree_model_get_iter(model, &iterNext, pathFocus);
+ gtk_tree_model_get_iter(model, &iterItem, pathFocus);
gtk_tree_path_free(pathFocus);
- ih->data->id_control = -1;
- gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterNext);
- ih->data->id_control++; /* more 1 visible node */
-
- iterNext = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot);
-
- if (ih->data->id_control >= 0)
- iterNext = gtkTreeGetLastVisibleNode(ih, model, iterRoot);
-
- iterItem = iterNext;
+ gtkTreeGetNextVisibleNode(ih, model, &iterItem, 1);
}
else if(iupStrEqualNoCase(value, "PREVIOUS"))
{
- GtkTreeIter iterPrev;
-
GtkTreePath* pathFocus;
gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
- gtk_tree_model_get_iter(model, &iterPrev, pathFocus);
+ gtk_tree_model_get_iter(model, &iterItem, pathFocus);
gtk_tree_path_free(pathFocus);
- ih->data->id_control = -1;
- gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterPrev);
- ih->data->id_control--; /* less 1 visible node */
-
- if (ih->data->id_control < 0)
- ih->data->id_control = 0;
-
- iterItem = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot);
- if (!iterItem.user_data)
- return 0;
+ gtkTreeGetPreviousVisibleNode(ih, model, &iterItem, 1);
}
else
{
- if (!gtkTreeFindNodeFromString(ih, model, value, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, value, &iterItem))
return 0;
}
/* select */
if (ih->data->mark_mode==ITREE_MARK_SINGLE)
{
- iupAttribSetStr(ih, "_IUP_IGNORE_SELECTION", "1");
- gtk_tree_selection_select_iter(selection, &iterItem);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ gtkTreeSelectNode(model, selection, &iterItem, 1);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
}
path = gtk_tree_model_get_path(model, &iterItem);
+
+ /* make it visible */
+ gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1);
+ if (kind == ITREE_LEAF)
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path);
+ else
+ {
+ int expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path);
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path);
+ if (!expanded) gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path);
+ }
+
gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE, 0, 0); /* scroll to visible */
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE); /* set focus */
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+
gtk_tree_path_free(path);
- iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", gtkTreeGetNodeId(ih, iterItem));
+ iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", gtkTreeFindNodeId(ih, &iterItem));
return 0;
}
static int gtkTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)
{
- GtkTreePath *pathMarkStart, *pathMarkStartPrev;
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return 0;
- pathMarkStart = gtk_tree_model_get_path(model, &iterItem);
-
- pathMarkStartPrev = (GtkTreePath*)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE");
- if (pathMarkStartPrev)
- gtk_tree_path_free(pathMarkStartPrev);
-
- iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)pathMarkStart);
+ iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)iterItem.user_data);
return 1;
}
static char* gtkTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)
{
- GtkTreeSelection* selection;
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeModel* model;
GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return 0;
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
- if (gtk_tree_selection_iter_is_selected(selection, &iterItem))
+ model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ if (gtkTreeIsNodeSelected(model, &iterItem))
return "YES";
else
return "NO";
@@ -1359,87 +1366,99 @@ static char* gtkTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)
static int gtkTreeSetMarkedAttrib(Ihandle* ih, const char* name_id, const char* value)
{
+ GtkTreeModel* model;
GtkTreeSelection* selection;
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return 0;
- iupAttribSetStr(ih, "_IUP_IGNORE_SELECTION", "1");
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
+ model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
if (iupStrBoolean(value))
- gtk_tree_selection_select_iter(selection, &iterItem);
+ gtkTreeSelectNode(model, selection, &iterItem, 1);
else
- gtk_tree_selection_unselect_iter(selection, &iterItem);
+ gtkTreeSelectNode(model, selection, &iterItem, 0);
+
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
return 0;
}
static int gtkTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
- if (iupStrEqualNoCase(value, "SELECTED")) /* selected here means the specified one */
+ if (iupStrEqualNoCase(value, "ALL"))
{
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- GtkTreeIter iterItem;
- GtkTreeIter iterParent;
+ gtkTreeCallNodeRemovedAll(ih);
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
- return 0;
+ /* deleting the reference node (and it's children) */
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ gtk_tree_store_clear(GTK_TREE_STORE(model));
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ return 0;
+ }
+ if (iupStrEqualNoCase(value, "SELECTED")) /* selected here means the reference node */
+ {
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeIter iterItem;
- if (!gtk_tree_model_iter_parent(model, &iterParent, &iterItem)) /* the root node can't be deleted */
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return 0;
gtkTreeCallNodeRemoved(ih, model, &iterItem);
- /* deleting the specified node (and it's children) */
+ /* deleting the reference node (and it's children) */
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItem);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
}
- else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the specified one */
+ else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the reference node */
{
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
GtkTreeIter iterItem, iterChild;
int hasChildren;
- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return 0;
hasChildren = gtk_tree_model_iter_children(model, &iterChild, &iterItem);
- /* deleting the selected node's children */
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+
+ /* deleting the reference node children */
while(hasChildren)
{
gtkTreeCallNodeRemoved(ih, model, &iterChild);
hasChildren = gtk_tree_store_remove(GTK_TREE_STORE(model), &iterChild);
}
+
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
}
else if(iupStrEqualNoCase(value, "MARKED")) /* Delete the array of marked nodes */
{
+ int i;
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
- GList *rr_list = NULL;
- GList *node;
+ GtkTreeIter iterItem;
- gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)gtkTreeSelected_Iter_Func, &rr_list);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
- for(node = rr_list; node != NULL; node = node->next)
+ for(i = 1; i < ih->data->node_count; /* increment only if not removed */)
{
- GtkTreePath* path = gtk_tree_row_reference_get_path(node->data);
- if (path)
+ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
+ if (gtkTreeIsNodeSelected(model, &iterItem))
{
- GtkTreeIter iterItem;
- if (gtk_tree_model_get_iter(model, &iterItem, path))
- {
- gtkTreeCallNodeRemoved(ih, model, &iterItem);
- gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItem);
- }
- gtk_tree_path_free(path);
+ gtkTreeCallNodeRemoved(ih, model, &iterItem);
+ gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItem);
}
- gtk_tree_row_reference_free(node->data);
+ else
+ i++;
}
- g_list_free(rr_list);
+
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
}
return 0;
@@ -1450,36 +1469,11 @@ static int gtkTreeSetRenameAttrib(Ihandle* ih, const char* value)
if (ih->data->show_rename)
{
GtkTreePath* path;
- IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");
GtkTreeViewColumn *focus_column;
-
gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, &focus_column);
-
- if (cbShowRename)
- {
- GtkTreeIter iterItem;
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- gtk_tree_model_get_iter(model, &iterItem, path);
- cbShowRename(ih, gtkTreeGetNodeId(ih, iterItem));
- }
-
gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, focus_column, TRUE);
gtk_tree_path_free(path);
}
- else
- {
- IFnis cbRenameNode = (IFnis)IupGetCallback(ih, "RENAMENODE_CB");
- if (cbRenameNode)
- {
- GtkTreePath* path;
- GtkTreeIter iterItem;
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, NULL);
- gtk_tree_model_get_iter(model, &iterItem, path);
- gtk_tree_path_free(path);
- cbRenameNode(ih, gtkTreeGetNodeId(ih, iterItem), gtkTreeGetTitle(model, iterItem));
- }
- }
(void)value;
return 0;
@@ -1491,7 +1485,7 @@ static int gtkTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const
GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
GdkPixbuf* pixExpand = iupImageGetImage(value, ih, 0);
GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return 0;
gtk_tree_model_get(GTK_TREE_MODEL(store), &iterItem, IUPGTK_TREE_KIND, &kind, -1);
@@ -1514,7 +1508,7 @@ static int gtkTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v
GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
GdkPixbuf* pixImage = iupImageGetImage(value, ih, 0);
GtkTreeIter iterItem;
- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
+ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
return 0;
if (pixImage)
@@ -1539,42 +1533,30 @@ static int gtkTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v
static int gtkTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value)
{
- GtkTreeIter iterRoot;
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
ih->data->def_image_expanded = iupImageGetImage(value, ih, 0);
- gtk_tree_model_get_iter_first(model, &iterRoot);
-
- /* Update all images, starting at root node */
- gtkTreeUpdateImages(ih, model, iterRoot, ITREE_UPDATEIMAGE_EXPANDED);
+ /* Update all images */
+ gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED);
return 1;
}
static int gtkTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value)
{
- GtkTreeIter iterRoot;
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
ih->data->def_image_collapsed = iupImageGetImage(value, ih, 0);
- gtk_tree_model_get_iter_first(model, &iterRoot);
-
- /* Update all images, starting at root node */
- gtkTreeUpdateImages(ih, model, iterRoot, ITREE_UPDATEIMAGE_COLLAPSED);
+ /* Update all images */
+ gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED);
return 1;
}
static int gtkTreeSetImageLeafAttrib(Ihandle* ih, const char* value)
{
- GtkTreeIter iterRoot;
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
ih->data->def_image_leaf = iupImageGetImage(value, ih, 0);
- gtk_tree_model_get_iter_first(model, &iterRoot);
-
- /* Update all images, starting at root node */
- gtkTreeUpdateImages(ih, model, iterRoot, ITREE_UPDATEIMAGE_LEAF);
+ /* Update all images */
+ gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF);
return 1;
}
@@ -1655,6 +1637,7 @@ void iupdrvTreeUpdateMarkMode(Ihandle *ih)
if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && !ih->data->show_dragdrop)
{
#if GTK_CHECK_VERSION(2, 10, 0)
+ if (iupAttribGetInt(ih, "RUBBERBAND"))
gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(ih->handle), TRUE);
#endif
}
@@ -1704,6 +1687,19 @@ static void gtkTreeCellTextEditingStarted(GtkCellRenderer *cell, GtkCellEditable
PangoFontDescription* fontdesc = NULL;
GdkColor *color = NULL;
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ IFni cbShowRename;
+
+ gtk_tree_model_get_iter_from_string(model, &iterItem, path_string);
+
+ cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");
+ if (cbShowRename && cbShowRename(ih, gtkTreeFindNodeId(ih, &iterItem))==IUP_IGNORE)
+ {
+ /* TODO: non of these worked:
+ gtk_cell_renderer_stop_editing(cell, TRUE);
+ gtk_cell_editable_editing_done(editable); */
+ gtk_editable_set_editable(GTK_EDITABLE(editable), FALSE);
+ return;
+ }
value = iupAttribGetStr(ih, "RENAMECARET");
if (value)
@@ -1713,7 +1709,6 @@ static void gtkTreeCellTextEditingStarted(GtkCellRenderer *cell, GtkCellEditable
if (value)
gtkTreeSetRenameSelectionPos(editable, value);
- gtk_tree_model_get_iter_from_string(model, &iterItem, path_string);
gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_FONT, &fontdesc, -1);
if (fontdesc)
gtk_widget_modify_font(GTK_WIDGET(editable), fontdesc);
@@ -1732,7 +1727,7 @@ static void gtkTreeCellTextEdited(GtkCellRendererText *cell, gchar *path_string,
IFnis cbRename;
if (!new_text)
- return;
+ new_text = "";
model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
if (!gtk_tree_model_get_iter_from_string(model, &iterItem, path_string))
@@ -1741,7 +1736,7 @@ static void gtkTreeCellTextEdited(GtkCellRendererText *cell, gchar *path_string,
cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB");
if (cbRename)
{
- if (cbRename(ih, gtkTreeGetNodeId(ih, iterItem), iupgtkStrConvertFromUTF8(new_text)) == IUP_IGNORE)
+ if (cbRename(ih, gtkTreeFindNodeId(ih, &iterItem), iupgtkStrConvertFromUTF8(new_text)) == IUP_IGNORE)
return;
}
@@ -1766,8 +1761,8 @@ static int gtkTreeCallDragDropCb(Ihandle* ih, GtkTreeIter *iterDrag, GtkTreeIter
if (cbDragDrop)
{
- int drag_id = gtkTreeGetNodeId(ih, *iterDrag);
- int drop_id = gtkTreeGetNodeId(ih, *iterDrop);
+ int drag_id = gtkTreeFindNodeId(ih, iterDrag);
+ int drop_id = gtkTreeFindNodeId(ih, iterDrop);
return cbDragDrop(ih, drag_id, drop_id, is_shift, *is_ctrl);
}
@@ -1804,22 +1799,17 @@ static void gtkTreeDragDataReceived(GtkWidget *widget, GdkDragContext *context,
{
GtkTreeIter iterNewItem;
- /* Copy the dragged item to the new position. */
- gtkTreeCopyNode(ih, model, &iterDrag, &iterDrop, &iterNewItem, is_ctrl);
-
- if (!is_ctrl)
- {
- /* do not delete the user data, we copy the references in CopyNode */
- gtk_tree_store_remove(GTK_TREE_STORE(model), &iterDrag);
- }
+ /* Copy or move the dragged item to the new position. */
+ gtkTreeCopyMoveNode(ih, model, &iterDrag, &iterDrop, &iterNewItem, is_ctrl);
/* set focus and selection */
+ if (iterNewItem.stamp)
{
GtkTreePath *pathNew;
GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
pathNew = gtk_tree_model_get_path(model, &iterNewItem);
- gtk_tree_selection_select_path(selection, pathNew);
+ gtkTreeSelectNode(model, selection, &iterNewItem, 1);
gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ih->handle), pathNew, NULL, FALSE, 0, 0);
gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), pathNew, NULL, FALSE);
@@ -1927,10 +1917,24 @@ static void gtkTreeDragBegin(GtkWidget *widget, GdkDragContext *context, Ihandle
(void)widget;
}
+static gboolean gtkTreeSelectionFunc(GtkTreeSelection *selection, GtkTreeModel *model, GtkTreePath *path, gboolean selected, Ihandle* ih)
+{
+ GtkTreeIter iterItem;
+ gtk_tree_model_get_iter(model, &iterItem, path);
+ gtkTreeSelectNodeRaw(model, &iterItem, !selected);
+ (void)ih;
+ (void)selection;
+ return TRUE;
+}
+
static void gtkTreeSelectionChanged(GtkTreeSelection* selection, Ihandle* ih)
{
IFnii cbSelec;
int is_ctrl = 0;
+ (void)selection;
+
+ if (iupAttribGet(ih, "_IUPTREE_IGNORE_SELECTION_CB"))
+ return;
if (ih->data->mark_mode == ITREE_MARK_MULTIPLE)
{
@@ -1953,25 +1957,17 @@ static void gtkTreeSelectionChanged(GtkTreeSelection* selection, Ihandle* ih)
if (cbSelec)
{
int curpos = -1, is_selected = 0;
+ GtkTreeIter iterFocus;
+ GtkTreePath* pathFocus;
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- if (iupAttribGet(ih, "_IUP_IGNORE_SELECTION"))
- {
- iupAttribSetStr(ih, "_IUP_IGNORE_SELECTION", NULL);
- return;
- }
-
+ gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
+ if (pathFocus)
{
- GtkTreeIter iterFocus;
- GtkTreePath* pathFocus;
- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
- gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
- if (pathFocus)
- {
- gtk_tree_model_get_iter(model, &iterFocus, pathFocus);
- gtk_tree_path_free(pathFocus);
- curpos = gtkTreeGetNodeId(ih, iterFocus);
- is_selected = gtk_tree_selection_iter_is_selected(selection, &iterFocus);
- }
+ gtk_tree_model_get_iter(model, &iterFocus, pathFocus);
+ gtk_tree_path_free(pathFocus);
+ curpos = gtkTreeFindNodeId(ih, &iterFocus);
+ is_selected = gtkTreeIsNodeSelected(model, &iterFocus);
}
if (curpos == -1)
@@ -1993,18 +1989,52 @@ static void gtkTreeSelectionChanged(GtkTreeSelection* selection, Ihandle* ih)
}
}
+static void gtkTreeUpdateSelectionChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter *iterItem)
+{
+ int expanded;
+ GtkTreeIter iterChild;
+ int hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */
+ while(hasItem)
+ {
+ if (gtkTreeIsNodeSelected(model, &iterChild))
+ gtk_tree_selection_select_iter(selection, &iterChild);
+
+ expanded = 0;
+ if (gtk_tree_model_iter_has_child(model, &iterChild))
+ {
+ GtkTreePath* path = gtk_tree_model_get_path(model, &iterChild);
+ expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path);
+ gtk_tree_path_free(path);
+ }
+
+ /* Recursive only if expanded */
+ if (expanded)
+ gtkTreeUpdateSelectionChildren(ih, model, selection, &iterChild);
+
+ /* Go to next sibling item */
+ hasItem = gtk_tree_model_iter_next(model, &iterChild);
+ }
+}
+
+static void gtkTreeRowExpanded(GtkTreeView* tree_view, GtkTreeIter *iterItem, GtkTreePath *path, Ihandle* ih)
+{
+ GtkTreeSelection* selection = gtk_tree_view_get_selection(tree_view);
+ GtkTreeModel* model = gtk_tree_view_get_model(tree_view);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ gtkTreeUpdateSelectionChildren(ih, model, selection, iterItem);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ (void)path;
+}
+
static gboolean gtkTreeTestExpandRow(GtkTreeView* tree_view, GtkTreeIter *iterItem, GtkTreePath *path, Ihandle* ih)
{
IFni cbBranchOpen = (IFni)IupGetCallback(ih, "BRANCHOPEN_CB");
if (cbBranchOpen)
{
- if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCHOPEN_CB"))
- {
- iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCHOPEN_CB", NULL);
+ if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCH_CB"))
return FALSE;
- }
- if (cbBranchOpen(ih, gtkTreeGetNodeId(ih, *iterItem)) == IUP_IGNORE)
+ if (cbBranchOpen(ih, gtkTreeFindNodeId(ih, iterItem)) == IUP_IGNORE)
return TRUE; /* prevent the change */
}
@@ -2018,7 +2048,10 @@ static gboolean gtkTreeTestCollapseRow(GtkTreeView* tree_view, GtkTreeIter *iter
IFni cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB");
if (cbBranchClose)
{
- if (cbBranchClose(ih, gtkTreeGetNodeId(ih, *iterItem)) == IUP_IGNORE)
+ if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCH_CB"))
+ return FALSE;
+
+ if (cbBranchClose(ih, gtkTreeFindNodeId(ih, iterItem)) == IUP_IGNORE)
return TRUE;
}
@@ -2042,7 +2075,7 @@ static void gtkTreeRowActived(GtkTreeView* tree_view, GtkTreePath *path, GtkTree
/* just to leaf nodes */
if(gtk_tree_model_iter_has_child(model, &iterItem) == 0 && kind == ITREE_LEAF)
- cbExecuteLeaf(ih, gtkTreeGetNodeId(ih, iterItem));
+ cbExecuteLeaf(ih, gtkTreeFindNodeId(ih, &iterItem));
(void)column;
(void)tree_view;
@@ -2057,11 +2090,57 @@ static int gtkTreeConvertXYToPos(Ihandle* ih, int x, int y)
GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
gtk_tree_model_get_iter(model, &iterItem, path);
gtk_tree_path_free (path);
- return gtkTreeGetNodeId(ih, iterItem);
+ return gtkTreeFindNodeId(ih, &iterItem);
}
return -1;
}
+static Iarray* gtkTreeGetSelectedArrayId(Ihandle* ih)
+{
+ Iarray* selarray = iupArrayCreate(1, sizeof(int));
+ int i;
+ GtkTreeIter iterItem;
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+
+ for (i = 0; i < ih->data->node_count; i++)
+ {
+ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
+ if (gtkTreeIsNodeSelected(model, &iterItem))
+ {
+ int* id_hitem = (int*)iupArrayInc(selarray);
+ int j = iupArrayCount(selarray);
+ id_hitem[j-1] = i;
+ }
+ }
+
+ return selarray;
+}
+
+static void gtkTreeCallMultiUnSelectionCb(Ihandle* ih)
+{
+ IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTIUNSELECTION_CB");
+ IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");
+ if (cbSelec || cbMulti)
+ {
+ Iarray* markedArray = gtkTreeGetSelectedArrayId(ih);
+ int* id_hitem = (int*)iupArrayGetData(markedArray);
+ int i, count = iupArrayCount(markedArray);
+
+ if (count > 1)
+ {
+ if (cbMulti)
+ cbMulti(ih, id_hitem, iupArrayCount(markedArray));
+ else
+ {
+ for (i=0; i<count; i++)
+ cbSelec(ih, id_hitem[i], 0);
+ }
+ }
+
+ iupArrayDestroy(markedArray);
+ }
+}
+
static gboolean gtkTreeButtonEvent(GtkWidget *treeview, GdkEventButton *evt, Ihandle* ih)
{
if (iupgtkButtonEvent(treeview, evt, ih) == TRUE)
@@ -2097,6 +2176,18 @@ static gboolean gtkTreeButtonEvent(GtkWidget *treeview, GdkEventButton *evt, Iha
gtk_tree_path_free(path);
}
}
+ else if (evt->type == GDK_BUTTON_PRESS && evt->button == 1) /* left single press */
+ {
+ iupAttribSetInt(ih, "_IUPTREE_DRAG_X", (int)evt->x);
+ iupAttribSetInt(ih, "_IUPTREE_DRAG_Y", (int)evt->y);
+
+ if (ih->data->mark_mode==ITREE_MARK_MULTIPLE &&
+ !(evt->state & GDK_SHIFT_MASK) && !(evt->state & GDK_CONTROL_MASK))
+ {
+ gtkTreeCallMultiUnSelectionCb(ih);
+ iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "1");
+ }
+ }
else if (evt->type == GDK_BUTTON_RELEASE && evt->button == 1) /* left single release */
{
if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && (evt->state & GDK_SHIFT_MASK))
@@ -2109,16 +2200,7 @@ static gboolean gtkTreeButtonEvent(GtkWidget *treeview, GdkEventButton *evt, Iha
iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "2");
}
}
- else if (evt->type == GDK_BUTTON_PRESS && evt->button == 1) /* left single press */
- {
- iupAttribSetInt(ih, "_IUPTREE_DRAG_X", (int)evt->x);
- iupAttribSetInt(ih, "_IUPTREE_DRAG_Y", (int)evt->y);
- if (ih->data->mark_mode==ITREE_MARK_MULTIPLE &&
- !(evt->state & GDK_SHIFT_MASK) && !(evt->state & GDK_CONTROL_MASK))
- iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "1");
- }
-
return FALSE;
}
@@ -2159,29 +2241,14 @@ static void gtkTreeEnableDragDrop(Ihandle* ih)
{ "GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_WIDGET, 0 }
};
- if (iupAttribGetBoolean(ih, "AUTODRAGDROP"))
- {
- gtk_tree_view_enable_model_drag_source (GTK_TREE_VIEW(ih->handle),
- GDK_BUTTON1_MASK,
- row_targets,
- G_N_ELEMENTS(row_targets),
- GDK_ACTION_MOVE|GDK_ACTION_COPY);
- gtk_tree_view_enable_model_drag_dest (GTK_TREE_VIEW(ih->handle),
- row_targets,
- G_N_ELEMENTS(row_targets),
- GDK_ACTION_MOVE|GDK_ACTION_COPY);
- }
- else
- {
- gtk_drag_source_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY);
- gtk_drag_dest_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY);
+ gtk_drag_source_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY);
+ gtk_drag_dest_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY);
- g_signal_connect(G_OBJECT(ih->handle), "drag-begin", G_CALLBACK(gtkTreeDragBegin), ih);
- g_signal_connect(G_OBJECT(ih->handle), "drag-motion", G_CALLBACK(gtkTreeDragMotion), ih);
- g_signal_connect(G_OBJECT(ih->handle), "drag-leave", G_CALLBACK(gtkTreeDragLeave), NULL);
- g_signal_connect(G_OBJECT(ih->handle), "drag-drop", G_CALLBACK(gtkTreeDragDrop), ih);
- g_signal_connect(G_OBJECT(ih->handle), "drag-data-received", G_CALLBACK(gtkTreeDragDataReceived), ih);
- }
+ g_signal_connect(G_OBJECT(ih->handle), "drag-begin", G_CALLBACK(gtkTreeDragBegin), ih);
+ g_signal_connect(G_OBJECT(ih->handle), "drag-motion", G_CALLBACK(gtkTreeDragMotion), ih);
+ g_signal_connect(G_OBJECT(ih->handle), "drag-leave", G_CALLBACK(gtkTreeDragLeave), NULL);
+ g_signal_connect(G_OBJECT(ih->handle), "drag-drop", G_CALLBACK(gtkTreeDragDrop), ih);
+ g_signal_connect(G_OBJECT(ih->handle), "drag-data-received", G_CALLBACK(gtkTreeDragDataReceived), ih);
}
/*****************************************************************************/
@@ -2194,8 +2261,16 @@ static int gtkTreeMapMethod(Ihandle* ih)
GtkTreeSelection* selection;
GtkTreeViewColumn *column;
- store = gtk_tree_store_new(9, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN,
- G_TYPE_STRING, G_TYPE_INT, GDK_TYPE_COLOR, PANGO_TYPE_FONT_DESCRIPTION, G_TYPE_POINTER);
+ store = gtk_tree_store_new(IUPGTK_TREE_LAST_DATA,
+ GDK_TYPE_PIXBUF, /* IUPGTK_TREE_IMAGE */
+ G_TYPE_BOOLEAN, /* IUPGTK_TREE_HAS_IMAGE */
+ GDK_TYPE_PIXBUF, /* IUPGTK_TREE_IMAGE_EXPANDED */
+ G_TYPE_BOOLEAN, /* IUPGTK_TREE_HAS_IMAGE_EXPANDED */
+ G_TYPE_STRING, /* IUPGTK_TREE_TITLE */
+ G_TYPE_INT, /* IUPGTK_TREE_KIND */
+ GDK_TYPE_COLOR, /* IUPGTK_TREE_COLOR */
+ PANGO_TYPE_FONT_DESCRIPTION, /* IUPGTK_TREE_FONT */
+ G_TYPE_BOOLEAN); /* IUPGTK_TREE_SELECT */
ih->handle = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
@@ -2262,8 +2337,9 @@ static int gtkTreeMapMethod(Ihandle* ih)
gtk_scrolled_window_set_policy(scrolled_window, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
-
gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
+ gtk_tree_selection_set_select_function(selection, (GtkTreeSelectionFunc)gtkTreeSelectionFunc, ih, NULL);
+
gtk_tree_view_set_reorderable(GTK_TREE_VIEW(ih->handle), FALSE);
/* callbacks */
@@ -2279,6 +2355,7 @@ static int gtkTreeMapMethod(Ihandle* ih)
g_signal_connect(G_OBJECT(ih->handle), "show-help", G_CALLBACK(iupgtkShowHelp), ih);
g_signal_connect(G_OBJECT(ih->handle), "motion-notify-event",G_CALLBACK(iupgtkMotionNotifyEvent), ih);
+ g_signal_connect(G_OBJECT(ih->handle), "row-expanded", G_CALLBACK(gtkTreeRowExpanded), ih);
g_signal_connect(G_OBJECT(ih->handle), "test-expand-row", G_CALLBACK(gtkTreeTestExpandRow), ih);
g_signal_connect(G_OBJECT(ih->handle), "test-collapse-row", G_CALLBACK(gtkTreeTestCollapseRow), ih);
g_signal_connect(G_OBJECT(ih->handle), "row-activated", G_CALLBACK(gtkTreeRowActived), ih);
@@ -2301,7 +2378,8 @@ static int gtkTreeMapMethod(Ihandle* ih)
ih->data->def_image_collapsed = iupImageGetImage("IMGCOLLAPSED", ih, 0);
ih->data->def_image_expanded = iupImageGetImage("IMGEXPANDED", ih, 0);
- gtkTreeAddRootNode(ih);
+ if (iupAttribGetInt(ih, "ADDROOT"))
+ iupdrvTreeAddNode(ih, "-1", ITREE_BRANCH, "", 0);
/* configure for DRAG&DROP of files */
if (IupGetCallback(ih, "DROPFILES_CB"))
@@ -2309,13 +2387,23 @@ static int gtkTreeMapMethod(Ihandle* ih)
IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)gtkTreeConvertXYToPos);
+ iupdrvTreeUpdateMarkMode(ih);
+
return IUP_NOERROR;
}
+static void gtkTreeUnMapMethod(Ihandle* ih)
+{
+ ih->data->node_count = 0;
+
+ iupdrvBaseUnMapMethod(ih);
+}
+
void iupdrvTreeInitClass(Iclass* ic)
{
/* Driver Dependent Class functions */
ic->Map = gtkTreeMapMethod;
+ ic->UnMap = gtkTreeUnMapMethod;
/* Visual */
iupClassRegisterAttribute(ic, "BGCOLOR", NULL, gtkTreeSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_DEFAULT);
@@ -2324,7 +2412,6 @@ void iupdrvTreeInitClass(Iclass* ic)
/* IupTree Attributes - GENERAL */
iupClassRegisterAttribute(ic, "EXPANDALL", NULL, gtkTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "INDENTATION", gtkTreeGetIndentationAttrib, gtkTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT);
- iupClassRegisterAttribute(ic, "COUNT", gtkTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "DRAGDROP", NULL, iupgtkSetDragDropAttrib, NULL, NULL, IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, gtkTreeSetSpacingAttrib, NULL, NULL, IUPAF_NOT_MAPPED);
iupClassRegisterAttribute(ic, "TOPITEM", NULL, gtkTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
@@ -2345,7 +2432,6 @@ void iupdrvTreeInitClass(Iclass* ic)
iupClassRegisterAttributeId(ic, "COLOR", gtkTreeGetColorAttrib, gtkTreeSetColorAttrib, IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "NAME", gtkTreeGetTitleAttrib, gtkTreeSetTitleAttrib, IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "TITLE", gtkTreeGetTitleAttrib, gtkTreeSetTitleAttrib, IUPAF_NO_INHERIT);
- iupClassRegisterAttributeId(ic, "USERDATA", gtkTreeGetUserDataAttrib, gtkTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "CHILDCOUNT", gtkTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "TITLEFONT", gtkTreeGetTitleFontAttrib, gtkTreeSetTitleFontAttrib, IUPAF_NO_INHERIT);
@@ -2355,6 +2441,7 @@ void iupdrvTreeInitClass(Iclass* ic)
iupClassRegisterAttribute (ic, "MARK", NULL, gtkTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttribute (ic, "STARTING", NULL, gtkTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
iupClassRegisterAttribute (ic, "MARKSTART", NULL, gtkTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute (ic, "MARKEDNODES", gtkTreeGetMarkedNodesAttrib, gtkTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
iupClassRegisterAttribute (ic, "VALUE", gtkTreeGetValueAttrib, gtkTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
@@ -2363,7 +2450,7 @@ void iupdrvTreeInitClass(Iclass* ic)
iupClassRegisterAttribute(ic, "RENAME", NULL, gtkTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "MOVENODE", NULL, gtkTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "COPYNODE", NULL, gtkTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
- iupClassRegisterAttributeId(ic, "FINDUSERDATA", gtkTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute (ic, "AUTODRAGDROP", NULL, NULL, NULL, NULL, IUPAF_DEFAULT);
+ /* IupTree Attributes - GTK Only */
+ iupClassRegisterAttribute (ic, "RUBBERBAND", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);
}
diff --git a/iup/src/gtk/iupmac_help.c b/iup/src/gtk/iupmac_help.c
new file mode 100644
index 0000000..fa8d0af
--- /dev/null
+++ b/iup/src/gtk/iupmac_help.c
@@ -0,0 +1,46 @@
+/** \file
+ * \brief MAC Driver IupHelp
+ *
+ * See Copyright Notice in "iup.h"
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "iup.h"
+
+#include "iup_str.h"
+
+int IupHelp(const char *url)
+{
+ char *cmd;
+ int ret;
+ char *browser = getenv("IUP_HELPAPP");
+ if (!browser)
+ browser = IupGetGlobal("HELPAPP");
+
+ if (!browser)
+ {
+ char* system = IupGetGlobal("SYSTEM");
+ if (iupStrEqualNoCase(system, "Snow Leopard") ||
+ iupStrEqualNoCase(system, "Leopard") ||
+ iupStrEqualNoCase(system, "Tiger") ||
+ iupStrEqualNoCase(system, "Panther"))
+ browser = "safari";
+ else if (iupStrEqualNoCase(system, "Jaguar") ||
+ iupStrEqualNoCase(system, "Puma") ||
+ iupStrEqualNoCase(system, "Cheetah"))
+ browser = "iexplore";
+ else /* MacOS */
+ browser = "netscape";
+ }
+
+ cmd = (char*)malloc(sizeof(char)*(strlen(url)+strlen(browser)+3));
+ sprintf(cmd, "open -a %s %s &", browser, url);
+ ret = system(cmd);
+ free(cmd);
+ if (ret == -1)
+ return -1;
+ return 1;
+}
diff --git a/iup/src/gtk/iupmac_info.c b/iup/src/gtk/iupmac_info.c
new file mode 100644
index 0000000..a040bad
--- /dev/null
+++ b/iup/src/gtk/iupmac_info.c
@@ -0,0 +1,358 @@
+/** \file
+ * \brief MAC OS System Information
+ *
+ * See Copyright Notice in "iup.h"
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* This module should depend only on IUP core headers and
+ Mac OS Carbon system headers. */
+
+#include <Carbon/Carbon.h>
+
+#include <sys/utsname.h>
+#include <unistd.h>
+#include <limits.h>
+#include <errno.h>
+#include <sys/stat.h>
+
+#include <gtk/gtk.h>
+
+#include "iup.h"
+
+#include "iup_str.h"
+#include "iup_drv.h"
+#include "iup_drvinfo.h"
+
+#define IUP_MAC_ERROR -1
+
+/******************************************
+ ** These are NOT working as expected. So we kept the posix versions. ***
+
+static void iupMacStrToUniChar(const char* buffer, UniChar* outBuf, long length, long* outLen)
+{
+ CFStringRef stringRef = CFStringCreateWithCString(NULL, buffer, kCFStringEncodingUTF8);
+
+ CFStringGetCharacters (stringRef, CFRangeMake(0, CFStringGetLength(stringRef)), outBuf);
+ *outLen = (long) CFStringGetLength (stringRef);
+
+ CFRelease(stringRef);
+}
+
+int iupdrvMakeDirectory(const char* name)
+{
+ FSRef refParent, refNew;
+ UniChar nameDir;
+ long lenDir;
+
+ if(FSFindFolder(kUserDomain, kCurrentUserFolderType, kDontCreateFolder, &refParent) != noErr)
+ return 0;
+
+ iupMacStrToUniChar(name, &nameDir, strlen(name), &lenDir);
+
+ if(FSMakeFSRefUnicode(&refParent, lenDir, &nameDir, kTextEncodingUnknown, &refNew) != fnfErr) // fnfErr => Directory does not exists
+ return 0;
+
+ if(FSCreateDirectoryUnicode(&refParent, lenDir, &nameDir, kFSCatInfoNone, NULL, &refNew, NULL, NULL) != noErr)
+ return 0;
+
+ return 1;
+}
+
+char* iupdrvGetCurrentDirectory(void)
+{
+ FSRef refDir;
+ FSVolumeRefNum vRefNum;
+ long dirID;
+ size_t size = 256;
+ char *buffer = (char *)malloc(size);
+
+ if(HGetVol(NULL, &vRefNum, &dirID) != noErr) // Deprecated in Mac OS X v10.4
+ return 0;
+
+ if(FSMakeFSRef(vRefNum, dirID, NULL, &refDir) != noErr) // Deprecated in Mac OS X v10.5
+ return 0;
+
+ FSRefMakePath (&refDir, (UInt8*)buffer, size);
+
+ return buffer;
+}
+
+int iupdrvSetCurrentDirectory(const char* dir)
+{
+ FSRef refDir;
+ FSCatalogInfo catalogInfo;
+ int isDirectory;
+
+ if(FSPathMakeRef((const UInt8*)dir, &refDir, &isDirectory) != noErr)
+ return 0;
+
+ if (!isDirectory)
+ return 0;
+
+ if(FSGetCatalogInfo(refDir, kFSCatInfoVolume + kFSCatInfoNodeID, &catalogInfo, NULL, NULL, NULL) != noErr)
+ return 0;
+
+ if(HSetVol(NULL, catalogInfo.volume, catalogInfo.nodeID) != noErr) // Deprecated in Mac OS X v10.4
+ return 0;
+
+ return 1;
+}
+
+char* iupdrvGetCurrentDirectory(void)
+{
+ char* path = iupStrGetMemory(256);
+ CFBundleRef mainBundle = CFBundleGetMainBundle();
+ CFURLRef curDir = CFBundleCopyBundleURL(mainBundle);
+ CFStringRef cfStringRef = CFURLCopyFileSystemPath(curDir, kCFURLPOSIXPathStyle);
+
+ CFStringGetCString(cfStringRef, path, 256, kCFStringEncodingUTF8);
+
+ return path;
+}
+*********************************************/
+
+int iupdrvMakeDirectory(const char* name)
+{
+ mode_t oldmask = umask((mode_t)0);
+ int fail = mkdir(name, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP |
+ S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH);
+ umask (oldmask);
+ if (fail)
+ return 0;
+ return 1;
+}
+
+static int iMacIsFolder(const char* name)
+{
+ FSRef refName;
+ Boolean isFolder;
+
+ if(FSPathMakeRef((const UInt8*)name, &refName, &isFolder) != noErr)
+ return IUP_MAC_ERROR;
+
+ return isFolder;
+}
+
+int iupdrvIsFile(const char* name)
+{
+ int isDir = iMacIsFolder(name);
+
+ if((isDir != IUP_MAC_ERROR) && !isDir)
+ return 1;
+
+ return 0;
+}
+
+int iupdrvIsDirectory(const char* name)
+{
+ int isDir = iMacIsFolder(name);
+
+ if((isDir != IUP_MAC_ERROR) && isDir)
+ return 1;
+
+ return 0;
+}
+
+char* iupdrvGetCurrentDirectory(void)
+{
+ size_t size = 256;
+ char *buffer = (char *)malloc(size);
+
+ for (;;)
+ {
+ if (getcwd(buffer, size) != NULL)
+ return buffer;
+
+ if (errno != ERANGE)
+ {
+ free(buffer);
+ return NULL;
+ }
+
+ size += size;
+ buffer = (char *)realloc(buffer, size);
+ }
+
+ return NULL;
+}
+
+int iupdrvSetCurrentDirectory(const char* dir)
+{
+ return chdir(dir) == 0? 1: 0;
+}
+
+int iupdrvGetWindowDecor(void* wnd, int *border, int *caption)
+{
+ Rect rect;
+ CGRect cg;
+ int minX, minY;
+
+ CGDirectDisplayID mainDisplayID = CGMainDisplayID();
+ GDHandle hGDev;
+ DMGetGDeviceByDisplayID((DisplayIDType)mainDisplayID, &hGDev, false);
+
+ GetAvailableWindowPositioningBounds(hGDev, &rect);
+
+ cg = CGRectMake(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top);
+
+ minX = (int)CGRectGetMinX(cg);
+ minY = (int)CGRectGetMinY(cg);
+
+ if (minX >= 0 && minY >= 0 && (minY >= minX))
+ {
+ *border = minX;
+ *caption = minY - *border;
+
+ return 1;
+ }
+
+ *border = 0;
+ *caption = 0;
+
+ return 0;
+}
+
+void iupdrvGetScreenSize(int *width, int *height)
+{
+ int w_size = CGDisplayPixelsWide(kCGDirectMainDisplay);
+ int h_size = CGDisplayPixelsHigh(kCGDirectMainDisplay);
+
+ *width = w_size;
+ *height = h_size;
+}
+
+void iupdrvGetFullSize(int *width, int *height)
+{
+ CGRect rect;
+
+ rect = CGDisplayBounds(kCGDirectMainDisplay);
+
+ *width = (int)CGRectGetWidth(rect);
+ *height = (int)CGRectGetHeight(rect);
+}
+
+int iupdrvGetScreenDepth(void)
+{
+ return CGDisplayBitsPerPixel(kCGDirectMainDisplay); /* Deprecated in Mac OS X v10.6 */
+}
+
+void iupdrvGetCursorPos(int *x, int *y)
+{
+ Point pnt;
+ CGPoint point;
+
+ GetMouse(&pnt);
+ point = CGPointMake(pnt.h, pnt.v);
+
+ *x = (int)point.x;
+ *y = (int)point.y;
+}
+
+void iupdrvGetKeyState(char* key)
+{
+ if (GetCurrentEventKeyModifiers() & shiftKey)
+ key[0] = 'S';
+ else
+ key[0] = ' ';
+
+ if (GetCurrentEventKeyModifiers() & controlKey)
+ key[1] = 'C';
+ else
+ key[1] = ' ';
+
+ if (GetCurrentEventKeyModifiers() & optionKey)
+ key[2] = 'A';
+ else
+ key[2] = ' ';
+
+ if (GetCurrentEventKeyModifiers() & cmdKey)
+ key[3] = 'Y';
+ else
+ key[3] = ' ';
+
+ key[4] = 0;
+}
+
+char *iupdrvGetSystemName(void)
+{
+ long systemVersion;
+
+ if (Gestalt(gestaltSystemVersion, &systemVersion) == noErr)
+ {
+ if (systemVersion >= 0x1060)
+ return "Snow Leopard";
+ else if (systemVersion >= 0x1050)
+ return "Leopard";
+ else if (systemVersion >= 0x1040)
+ return "Tiger";
+ else if (systemVersion >= 0x1030)
+ return "Panther";
+ else if (systemVersion >= 0x1020)
+ return "Jaguar";
+ else if (systemVersion >= 0x1010)
+ return "Puma";
+ else if (systemVersion >= 0x1010)
+ return "Cheetah";
+ }
+
+ return "MacOS";
+}
+
+char *iupdrvGetSystemVersion(void)
+{
+ char* str = iupStrGetMemory(70);
+ long systemVersion, versionMajor, versionMinor, versionBugFix, systemArchitecture;
+
+ if (Gestalt(gestaltSystemVersion, &systemVersion) != noErr)
+ {
+ printf("Unable to obtain system version\n");
+ return NULL;
+ }
+
+ if (systemVersion < 0x1040)
+ {
+ /* Major, Minor, Bug fix */
+ sprintf(str, "%ld.%ld.%ld", ((systemVersion & 0xF000) >> 12) * 10 + ((systemVersion & 0x0F00) >> 8),
+ ((systemVersion & 0x00F0) >> 4), (systemVersion & 0x000F));
+ }
+ else /* MAC_OS_X_VERSION_10_4 or later */
+ {
+ Gestalt(gestaltSystemVersionMajor, &versionMajor);
+ Gestalt(gestaltSystemVersionMinor, &versionMinor);
+ Gestalt(gestaltSystemVersionBugFix, &versionBugFix);
+
+ sprintf(str, "%ld.%ld.%ld", versionMajor, versionMinor, versionBugFix);
+ }
+
+ if(Gestalt(gestaltSysArchitecture, &systemArchitecture) == noErr)
+ {
+ if (systemArchitecture == gestalt68k)
+ sprintf(str, "%s %s", str, "(Motorola 68k)");
+ else if (systemArchitecture == gestaltPowerPC)
+ sprintf(str, "%s %s", str, "(Power PC)");
+ else /* gestaltIntel */
+ sprintf(str, "%s %s", str, "(Intel)");
+ }
+
+ return str;
+}
+
+char *iupdrvGetComputerName(void)
+{
+ char* str = iupStrGetMemory(50);
+ CFStringRef computerName = CSCopyMachineName();
+ CFStringGetCString(computerName, str, 50, kCFStringEncodingUTF8);
+ return str;
+}
+
+char *iupdrvGetUserName(void)
+{
+ char* str = iupStrGetMemory(50);
+ CFStringRef userName = CSCopyUserName(TRUE); /* TRUE = login name FALSE = user name */
+ CFStringGetCString(userName, str, 50, kCFStringEncodingUTF8);
+ return str;
+}
diff --git a/iup/src/iup.c b/iup/src/iup.c
index df4bf34..d103af5 100755
--- a/iup/src/iup.c
+++ b/iup/src/iup.c
@@ -36,8 +36,10 @@
* \subsection com File Comments (at start)
* - Check an existant file for example.
*
- * \subsection inc Include Defines
- * - __IUPXXX_H (same file name, upper case, "__" preffix and replace "." by "_")
+ * \subsection def Defines
+ * - __IUPXXX_H (for include file, same file name, upper case, "__" preffix and replace "." by "_")
+ * - IUP_XXX (for enumerations)
+ * - iupXXX (for macros, complement with Function Names rules)
*
* \subsection doc Documentation
* - In the header, using Doxygen commands.
@@ -58,7 +60,7 @@
#include "iup.h"
/* This appears only here to avoid changing the iup.h header fo bug fixes */
-#define IUP_VERSION_FIX " RC3"
+#define IUP_VERSION_FIX ""
#define IUP_VERSION_FIX_NUMBER 0
const char iup_ident[] =
diff --git a/iup/src/iup.def b/iup/src/iup.def
index d0dcfbd..56e7225 100755
--- a/iup/src/iup.def
+++ b/iup/src/iup.def
@@ -27,6 +27,8 @@ IupGetFunction
IupGetGlobal
IupGetHandle
IupGetInt
+IupGetInt2
+IupGetIntInt
IupGetLanguage
IupGetName
IupHbox
@@ -40,6 +42,7 @@ IupListDialog
IupLoad
IupLoadBuffer
IupLoopStep
+IupLoopStepWait
IupMainLoop
IupMap
IupMapFont
@@ -68,6 +71,7 @@ IupShowXY
IupStoreAttribute
IupStoreGlobal
IupSubmenu
+IupSplit
IupText
IupToggle
IupUnMapFont
@@ -135,6 +139,7 @@ IupTextConvertLinColToPos
IupTextConvertPosToLinCol
IupUpdateChildren
IupTreeSetAttribute
+IupTreeSetAttributeHandle
IupTreeStoreAttribute
IupTreeGetAttribute
IupTreeGetInt
@@ -175,8 +180,8 @@ iupdrvFontGetStringWidth
iupdrvFontGetMultiLineStringSize
iupdrvFontGetCharSize
iupdrvDrawFocusRect
-iupdrvDisplayUpdate
-iupdrvDisplayRedraw
+iupdrvPostRedraw
+iupdrvRedrawNow
iupdrvBaseUnMapMethod
iupdrvBaseSetZorderAttrib
iupdrvBaseSetTipVisibleAttrib
@@ -351,3 +356,17 @@ iupArrayCreate
iupArrayCount
iupArrayAdd
iupSaveImageAsText
+iupDrawCreateCanvas
+iupDrawKillCanvas
+iupDrawFlush
+iupDrawGetSize
+iupDrawParentBackground
+iupDrawRectangle
+iupDrawLine
+iupDrawArc
+iupDrawPolygon
+iupDrawResetClip
+iupDrawSetClipRect
+iupDrawText
+iupDrawUpdateSize
+iupDrawImage
diff --git a/iup/src/iup_attrib.c b/iup/src/iup_attrib.c
index 2bbb80a..bf9576e 100755
--- a/iup/src/iup_attrib.c
+++ b/iup/src/iup_attrib.c
@@ -63,7 +63,7 @@ char* IupGetAttributes(Ihandle *ih)
name = iupTableFirst(ih->attrib);
while (name)
{
- if (!iupAttribIsInternal(name))
+ if (!iupATTRIB_ISINTERNAL(name))
{
if (buffer[0] != 0)
strcat(buffer,",");
@@ -115,6 +115,14 @@ void iupAttribUpdateFromParent(Ihandle* ih)
}
}
+static int iAttribIsInherit(Ihandle* ih, const char* name)
+{
+ int inherit;
+ char *def_value;
+ iupClassObjectGetAttributeInfo(ih, name, &def_value, &inherit);
+ return inherit;
+}
+
static void iAttribNotifyChildren(Ihandle *ih, const char* name, const char *value)
{
int inherit;
@@ -123,17 +131,36 @@ static void iAttribNotifyChildren(Ihandle *ih, const char* name, const char *val
{
if (!iupTableGet(child->attrib, name))
{
- /* set on the class */
- iupClassObjectSetAttribute(child, name, value, &inherit);
+ /* set only if an inheritable attribute at the child */
+ if (iAttribIsInherit(child, name))
+ {
+ /* set on the class */
+ iupClassObjectSetAttribute(child, name, value, &inherit);
- if (inherit) /* inherit can be different for the child */
iAttribNotifyChildren(child, name, value);
+ }
}
child = child->brother;
}
}
+void iupAttribUpdateChildren(Ihandle* ih)
+{
+ char *name = iupTableFirst(ih->attrib);
+ while (name)
+ {
+ if (!iupATTRIB_ISINTERNAL(name) && iAttribIsInherit(ih, name))
+ {
+ /* retrieve from the table */
+ char* value = iupTableGet(ih->attrib, name);
+ iAttribNotifyChildren(ih, name, value);
+ }
+
+ name = iupTableNext(ih->attrib);
+ }
+}
+
void iupAttribUpdate(Ihandle* ih)
{
char** name_array;
@@ -159,7 +186,7 @@ void iupAttribUpdate(Ihandle* ih)
for (i = 0; i < count; i++)
{
name = name_array[i];
- if (!iupAttribIsInternal(name))
+ if (!iupATTRIB_ISINTERNAL(name))
{
/* retrieve from the table */
value = iupTableGet(ih->attrib, name);
@@ -196,7 +223,7 @@ void IupSetAttribute(Ihandle *ih, const char* name, const char *value)
if (!iupObjectCheck(ih))
return;
- if (iupAttribIsInternal(name))
+ if (iupATTRIB_ISINTERNAL(name))
iupAttribSetStr(ih, name, value);
else
{
@@ -225,7 +252,7 @@ void IupStoreAttribute(Ihandle *ih, const char* name, const char *value)
if (!iupObjectCheck(ih))
return;
- if (iupAttribIsInternal(name))
+ if (iupATTRIB_ISINTERNAL(name))
iupAttribStoreStr(ih, name, value);
else
{
@@ -257,7 +284,7 @@ char* IupGetAttribute(Ihandle *ih, const char* name)
if (!value)
value = iupAttribGet(ih, name);
- if (!value && !iupAttribIsInternal(name))
+ if (!value && !iupATTRIB_ISINTERNAL(name))
{
if (inherit)
{
@@ -346,6 +373,16 @@ void iupAttribSetHandleName(Ihandle *ih)
IupSetHandle(str_name, ih);
}
+char* iupAttribGetHandleName(Ihandle *ih)
+{
+ char str_name[100];
+ sprintf(str_name, "_IUP_NAME(%p)", ih);
+ if (IupGetHandle(str_name)==ih)
+ return iupStrGetMemoryCopy(str_name);
+ else
+ return NULL;
+}
+
void IupSetAttributeHandle(Ihandle *ih, const char* name, Ihandle *ih_named)
{
int inherit;
@@ -426,7 +463,7 @@ void iupAttribSetInt(Ihandle *ih, const char* name, int num)
void iupAttribSetFloat(Ihandle *ih, const char* name, float num)
{
- iupAttribSetStrf(ih, name, "%f", (double)num);
+ iupAttribSetStrf(ih, name, "%g", (double)num);
}
int iupAttribGetBoolean(Ihandle* ih, const char* name)
@@ -479,7 +516,7 @@ char* iupAttribGetStr(Ihandle* ih, const char* name)
value = iupTableGet(ih->attrib, name);
- if (!value && !iupAttribIsInternal(name))
+ if (!value && !iupATTRIB_ISINTERNAL(name))
{
int inherit;
char *def_value;
@@ -555,6 +592,15 @@ static void iAttribCapture(char* env_buffer, char* dlm)
env_buffer[i-1]='\0'; /* discard delimiter */
}
+static void iAttribSkipComment(void)
+{
+ int c;
+ do
+ {
+ c = *env_str; ++env_str;
+ } while ((c > 0) && (c != '\n'));
+}
+
static int iAttribToken(char* env_buffer)
{
for (;;)
@@ -565,6 +611,11 @@ static int iAttribToken(char* env_buffer)
case 0:
return IUPLEX_TK_END;
+ case '#': /* Skip comment */
+ case '%': /* Skip comment */
+ iAttribSkipComment();
+ continue;
+
case ' ': /* ignore whitespace */
case '\t':
case '\n':
@@ -609,7 +660,7 @@ static void iAttribParse(Ihandle *ih, const char* str)
{
switch (iAttribToken(env_buffer))
{
- case IUPLEX_TK_END: /* procedimento igual ao IUPLEX_TK_COMMA */
+ case IUPLEX_TK_END: /* same as IUPLEX_TK_COMMA */
end = 1;
case IUPLEX_TK_COMMA:
if (name)
diff --git a/iup/src/iup_attrib.h b/iup/src/iup_attrib.h
index 993dd3c..8593d6e 100755
--- a/iup/src/iup_attrib.h
+++ b/iup/src/iup_attrib.h
@@ -28,7 +28,7 @@ extern "C" {
/** Returns true if the attribute name if in the internal format "_IUP...".
* \ingroup attrib */
-#define iupAttribIsInternal(_name) ((_name[0] == '_' && _name[1] == 'I' && _name[2] == 'U' && _name[3] == 'P')? 1: 0)
+#define iupATTRIB_ISINTERNAL(_name) ((_name[0] == '_' && _name[1] == 'I' && _name[2] == 'U' && _name[3] == 'P')? 1: 0)
/** Returns true if the attribute name is a known pointer.
* \ingroup attrib */
@@ -102,16 +102,23 @@ float iupAttribGetFloat(Ihandle* ih, const char* name);
* \ingroup attrib */
void iupAttribSetHandleName(Ihandle *ih);
+/** Returns the internal name if set.
+ * \ingroup attrib */
+char* iupAttribGetHandleName(Ihandle *ih);
+
/* For all attributes in the evironment, call the class SetAttribute only.
- * Called only after the element is mapped. */
+ * Called only after the element is mapped, but before the children are mapped. */
void iupAttribUpdate(Ihandle* ih);
/* For all registered inherited attributes, checks the parent tree and
* call the class SetAttribute if the attribute is defined.
- * Called only after the element is mapped. */
+ * Called only after the element is mapped, but before the children are mapped. */
void iupAttribUpdateFromParent(Ihandle* ih);
+/* For all attributes in the evironment, call the class SetAttribute only for the children.
+ * Called only after the element is mapped, and after the children are mapped. */
+void iupAttribUpdateChildren(Ihandle* ih);
/* Other functions declared in <iup.h> and implemented here.
diff --git a/iup/src/iup_box.c b/iup/src/iup_box.c
index 54e56d9..111cab4 100755
--- a/iup/src/iup_box.c
+++ b/iup/src/iup_box.c
@@ -172,9 +172,9 @@ static int iBoxSetCMarginAttrib(Ihandle* ih, const char* value)
iupdrvFontGetCharSize(ih, &charwidth, &charheight);
iupStrToIntInt(value, &cmargin_x, &cmargin_y, 'x');
if (cmargin_x!=-1)
- ih->data->margin_x = iupHEIGHT2RASTER(cmargin_x, charheight);
+ ih->data->margin_x = iupWIDTH2RASTER(cmargin_x, charwidth);
if (cmargin_y!=-1)
- ih->data->margin_x = iupWIDTH2RASTER(cmargin_y, charwidth);
+ ih->data->margin_y = iupHEIGHT2RASTER(cmargin_y, charheight);
return 0;
}
@@ -227,8 +227,12 @@ Iclass* iupBoxClassBase(void)
/* boxes only */
iupClassRegisterAttribute(ic, "GAP", iBoxGetGapAttrib, iBoxSetGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED);
iupClassRegisterAttribute(ic, "CGAP", iBoxGetCGapAttrib, iBoxSetCGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED);
+ iupClassRegisterAttribute(ic, "NGAP", iBoxGetGapAttrib, iBoxSetGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "NCGAP", iBoxGetCGapAttrib, iBoxSetCGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "MARGIN", iBoxGetMarginAttrib, iBoxSetMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);
iupClassRegisterAttribute(ic, "CMARGIN", iBoxGetCMarginAttrib, iBoxSetCMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);
+ iupClassRegisterAttribute(ic, "NMARGIN", iBoxGetMarginAttrib, iBoxSetMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "NCMARGIN", iBoxGetCMarginAttrib, iBoxSetCMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "EXPANDCHILDREN", iBoxGetExpandChildrenAttrib, iBoxSetExpandChildrenAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "HOMOGENEOUS", iBoxGetHomogeneousAttrib, iBoxSetHomogeneousAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
diff --git a/iup/src/iup_button.c b/iup/src/iup_button.c
index 7719663..56befe2 100755
--- a/iup/src/iup_button.c
+++ b/iup/src/iup_button.c
@@ -100,8 +100,9 @@ static void iButtonComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *ex
char* value = iupAttribGet(ih, "IMAGE");
if (value)
{
+ char* title = iupAttribGet(ih, "TITLE");
type = IUP_BUTTON_IMAGE;
- if (iupAttribGet(ih, "TITLE"))
+ if (title && *title!=0)
type |= IUP_BUTTON_TEXT;
}
else
diff --git a/iup/src/iup_canvas.c b/iup/src/iup_canvas.c
index 5eda988..46fefd9 100755
--- a/iup/src/iup_canvas.c
+++ b/iup/src/iup_canvas.c
@@ -55,14 +55,14 @@ void iupCanvasCalcScrollRealPos(double min, double max, double *pos,
char* iupCanvasGetPosXAttrib(Ihandle* ih)
{
char* str = iupStrGetMemory(20);
- sprintf(str, "%f", ih->data->posx);
+ sprintf(str, "%g", ih->data->posx);
return str;
}
char* iupCanvasGetPosYAttrib(Ihandle* ih)
{
char* str = iupStrGetMemory(20);
- sprintf(str, "%f", ih->data->posy);
+ sprintf(str, "%g", ih->data->posy);
return str;
}
diff --git a/iup/src/iup_classattrib.c b/iup/src/iup_classattrib.c
index df8f873..3ac780c 100755
--- a/iup/src/iup_classattrib.c
+++ b/iup/src/iup_classattrib.c
@@ -55,7 +55,7 @@ static const char* iClassFindId(const char* name)
{
if (*name >= '0' && *name <= '9')
return name;
- if (*name == '*' || *name == ':')
+ if (*name == '*' || *name == ':' || *name == '-')
return name;
name++;
@@ -94,7 +94,6 @@ int iupClassObjectSetAttribute(Ihandle* ih, const char* name, const char * value
const char* name_id = iClassFindId(name);
if (name_id)
{
- IattribFunc* afunc;
const char* partial_name = iClassCutNameId(name, name_id);
if (!partial_name)
partial_name = "IDVALUE"; /* pure numbers are used as attributes in IupList and IupMatrix,
@@ -474,8 +473,12 @@ void iupClassObjectEnsureDefaultAttributes(Ihandle* ih)
(afunc->call_global_default && iupGlobalDefaultColorChanged(afunc->default_value)))
{
if ((!ih->handle && (afunc->flags & IUPAF_NOT_MAPPED)) ||
- (ih->handle && !(afunc->flags & IUPAF_NOT_MAPPED) && !iupAttribGet(ih, name)))
- afunc->set(ih, iClassGetDefaultValue(afunc));
+ (ih->handle && !(afunc->flags & IUPAF_NOT_MAPPED)))
+ {
+ char* value = iupAttribGet(ih, name);
+ if (!value) /* if set will be updated later */
+ afunc->set(ih, iClassGetDefaultValue(afunc));
+ }
}
}
diff --git a/iup/src/iup_classbase.c b/iup/src/iup_classbase.c
index 9cb9e63..03a98d1 100755
--- a/iup/src/iup_classbase.c
+++ b/iup/src/iup_classbase.c
@@ -164,8 +164,7 @@ static char* iBaseGetPositionAttrib(Ihandle* ih)
static int iBaseSetPositionAttrib(Ihandle* ih, const char* value)
{
- if (ih->is_floating)
- iupStrToIntInt(value, &ih->x, &ih->y, ',');
+ iupStrToIntInt(value, &ih->x, &ih->y, ',');
return 0;
}
@@ -211,7 +210,7 @@ char* iupBaseGetVisibleAttrib(Ihandle* ih)
int iupBaseSetVisibleAttrib(Ihandle* ih, const char* value)
{
iupdrvSetVisible(ih, iupStrBoolean(value));
- return 0;
+ return 1; /* must be 1 to mark when set at the element */
}
char* iupBaseNativeParentGetBgColorAttrib(Ihandle* ih)
@@ -410,15 +409,19 @@ void iupBaseRegisterCommonAttrib(Iclass* ic)
iupClassRegisterAttribute(ic, "FLOATING", iBaseGetFloatingAttrib, iBaseSetFloatingAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "EXPAND", iBaseGetExpandAttrib, iBaseSetExpandAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "NORMALIZERGROUP", NULL, iBaseSetNormalizerGroupAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "EXPANDWEIGTH", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
/* make sure everyone has the correct default value */
- iupClassRegisterAttribute(ic, "VISIBLE", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT);
iupClassRegisterAttribute(ic, "ACTIVE", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT);
if (ic->is_interactive)
iupClassRegisterAttribute(ic, "CANFOCUS", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);
else
iupClassRegisterAttribute(ic, "CANFOCUS", NULL, NULL, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NO_INHERIT);
+ /* if not native container, must set at children,
+ native container will automatically hide its children. */
+ iupClassRegisterAttribute(ic, "VISIBLE", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT); /* let the attribute to be propagated to children */
+
iupClassRegisterAttribute(ic, "SIZE", iupBaseGetSizeAttrib, iupBaseSetSizeAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "RASTERSIZE", iupBaseGetRasterSizeAttrib, iupBaseSetRasterSizeAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "CHARSIZE", iupBaseGetCharSizeAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
@@ -439,7 +442,7 @@ void iupBaseRegisterCommonAttrib(Iclass* ic)
void iupBaseRegisterVisualAttrib(Iclass* ic)
{
- iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iupBaseSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT); /* VISIBLE inheritance comes from the native system */
+ iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iupBaseSetVisibleAttrib, "YES", "NO", IUPAF_DEFAULT);
iupClassRegisterAttribute(ic, "ACTIVE", iupBaseGetActiveAttrib, iupBaseSetActiveAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT);
iupClassRegisterAttribute(ic, "ZORDER", NULL, iupdrvBaseSetZorderAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
diff --git a/iup/src/iup_dialog.c b/iup/src/iup_dialog.c
index d70e12c..1aaf095 100755
--- a/iup/src/iup_dialog.c
+++ b/iup/src/iup_dialog.c
@@ -220,11 +220,19 @@ static void iDialogDestroyMethod(Ihandle* ih)
iupDlgListRemove(ih);
}
+static int iDialogSetMenuAttrib(Ihandle* ih, const char* value);
+
static void iDialogComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *expand)
{
int decorwidth, decorheight;
Ihandle* child = ih->firstchild;
+ /* if does not have a menu, but the attribute is defined,
+ try to update the menu before retrieving the decoration. */
+ char* value = iupAttribGet(ih, "MENU");
+ if (!ih->data->menu && value)
+ iDialogSetMenuAttrib(ih, value);
+
iupDialogGetDecorSize(ih, &decorwidth, &decorheight);
*w = decorwidth;
*h = decorheight;
@@ -278,20 +286,22 @@ static void iDialogAfterShow(Ihandle* ih)
{
Ihandle* old_focus;
IFni show_cb;
+ int show_state;
/* process all pending messages */
IupFlush();
old_focus = IupGetFocus();
+ show_state = ih->data->show_state;
show_cb = (IFni)IupGetCallback(ih, "SHOW_CB");
- if (show_cb && show_cb(ih, ih->data->show_state) == IUP_CLOSE)
+ if (show_cb && show_cb(ih, show_state) == IUP_CLOSE)
{
IupExitLoop();
return;
}
- if (ih->data->show_state == IUP_SHOW)
+ if (show_state == IUP_SHOW)
{
if (show_cb)
IupFlush(); /* again to update focus */
@@ -718,7 +728,8 @@ Iclass* iupDialogGetClass(void)
iupBaseRegisterVisualAttrib(ic);
/* Overwrite Visual */
- iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iDialogSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NO_INHERIT); /* the only case where VISIBLE default is NO */
+ /* the only case where VISIBLE default is NO, and must not be propagated to the dialog children */
+ iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iDialogSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NO_INHERIT);
/* IupDialog only */
iupClassRegisterAttribute(ic, "MENU", NULL, iDialogSetMenuAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
diff --git a/iup/src/iup_draw.h b/iup/src/iup_draw.h
new file mode 100644
index 0000000..b4d08e3
--- /dev/null
+++ b/iup/src/iup_draw.h
@@ -0,0 +1,98 @@
+/** \file
+ * \brief Simple Draw API.
+ *
+ * See Copyright Notice in "iup.h"
+ */
+
+#ifndef __IUP_DRAW_H
+#define __IUP_DRAW_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/** \defgroup draw Simple Draw API
+ * \par
+ * See \ref iup_draw.h
+ * \ingroup util */
+
+
+
+struct _IdrawCanvas;
+typedef struct _IdrawCanvas IdrawCanvas;
+
+
+/** Creates a draw canvas based on an IupCanvas.
+ * This will create an image for offscreen drawing.
+ * \ingroup draw */
+IdrawCanvas* iupDrawCreateCanvas(Ihandle* ih);
+
+/** Destroys the IdrawCanvas.
+ * \ingroup draw */
+void iupDrawKillCanvas(IdrawCanvas* dc);
+
+/** Draws the ofscreen image on the screen.
+ * \ingroup draw */
+void iupDrawFlush(IdrawCanvas* dc);
+
+/** Rebuild the offscreen image if the canvas size has changed.
+ * Automatically done in iupDrawCreateCanvas.
+ * \ingroup draw */
+void iupDrawUpdateSize(IdrawCanvas* dc);
+
+/** Returns the canvas size available for drawing.
+ * \ingroup draw */
+void iupDrawGetSize(IdrawCanvas* dc, int *w, int *h);
+
+/** Draws the parent background.
+ * \ingroup draw */
+void iupDrawParentBackground(IdrawCanvas* dc);
+
+/** Draws a line.
+ * \ingroup draw */
+void iupDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b);
+
+/** Draws a filled/hollow rectangle.
+ * \ingroup draw */
+void iupDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int filled);
+
+/** Draws a filled/hollow arc.
+ * \ingroup draw */
+void iupDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int filled);
+
+/** Draws a filled/hollow polygon.
+ * points are arranged xyxyxy...
+ * \ingroup draw */
+void iupDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int filled);
+
+/** Draws a text.
+ * x,y is at left,top corner of the text.
+ * \ingroup draw */
+void iupDrawText(IdrawCanvas* dc, const char* text, int len, int x, int y, unsigned char r, unsigned char g, unsigned char b);
+
+/** Draws an image.
+ * x,y is at left,top corner of the image.
+ * \ingroup draw */
+void iupDrawImage(IdrawCanvas* dc, const char* name, int make_inactive, int x, int y);
+
+/** Sets a rectangle clipping area.
+ * \ingroup draw */
+void iupDrawSetClipRect(IdrawCanvas* dc, int x1, int y1, int x2, int y2);
+
+/** Removes clipping.
+ * \ingroup draw */
+void iupDrawResetClip(IdrawCanvas* dc);
+
+/*
+TO DO:
+- check position and size of primitives
+*/
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/iup/src/iup_drv.h b/iup/src/iup_drv.h
index 5cdb8e7..1071347 100755
--- a/iup/src/iup_drv.h
+++ b/iup/src/iup_drv.h
@@ -60,11 +60,11 @@ void iupdrvSetActive(Ihandle* ih, int enable);
/** Post a redraw of a control.
* \ingroup drv */
-void iupdrvDisplayUpdate(Ihandle *ih);
+void iupdrvPostRedraw(Ihandle *ih);
/** Force a redraw of a control.
* \ingroup drv */
-void iupdrvDisplayRedraw(Ihandle *ih);
+void iupdrvRedrawNow(Ihandle *ih);
/** Reparent the native control.
* \ingroup drv */
diff --git a/iup/src/iup_focus.c b/iup/src/iup_focus.c
index be54b75..fc0579c 100755
--- a/iup/src/iup_focus.c
+++ b/iup/src/iup_focus.c
@@ -220,15 +220,25 @@ void iupFocusPrevious(Ihandle *ih)
/* local variables */
static Ihandle* iup_current_focus = NULL;
+Ihandle* IupGetFocus(void)
+{
+ return iup_current_focus;
+}
+
+void iupSetCurrentFocus(Ihandle *ih)
+{
+ iup_current_focus = ih;
+}
+
Ihandle *IupSetFocus(Ihandle *ih)
{
- Ihandle* old_focus = iup_current_focus;
+ Ihandle* old_focus = IupGetFocus();
iupASSERT(iupObjectCheck(ih));
if (!iupObjectCheck(ih))
return old_focus;
- /* iup_current_focus is NOT set here,
+ /* Current focus is NOT set here,
only in the iupCallGetFocusCb */
if (iupFocusCanAccept(ih))
@@ -237,16 +247,11 @@ Ihandle *IupSetFocus(Ihandle *ih)
return old_focus;
}
-Ihandle *IupGetFocus(void)
-{
- return iup_current_focus;
-}
-
void iupCallGetFocusCb(Ihandle *ih)
{
Icallback cb;
- if (ih == iup_current_focus) /* avoid duplicate messages */
+ if (ih == IupGetFocus()) /* avoid duplicate messages */
return;
cb = (Icallback)IupGetCallback(ih, "GETFOCUS_CB");
@@ -258,14 +263,14 @@ void iupCallGetFocusCb(Ihandle *ih)
if (cb2) cb2(ih, 1);
}
- iup_current_focus = ih;
+ iupSetCurrentFocus(ih);
}
void iupCallKillFocusCb(Ihandle *ih)
{
Icallback cb;
- if (ih != iup_current_focus) /* avoid duplicate messages */
+ if (ih != IupGetFocus()) /* avoid duplicate messages */
return;
cb = IupGetCallback(ih, "KILLFOCUS_CB");
@@ -277,5 +282,5 @@ void iupCallKillFocusCb(Ihandle *ih)
if (cb2) cb2(ih, 0);
}
- iup_current_focus = NULL;
+ iupSetCurrentFocus(NULL);
}
diff --git a/iup/src/iup_focus.h b/iup/src/iup_focus.h
index 239e233..9fb4e58 100755
--- a/iup/src/iup_focus.h
+++ b/iup/src/iup_focus.h
@@ -39,6 +39,7 @@ Ihandle* iupFocusNextInteractive(Ihandle *ih);
void iupFocusNext(Ihandle *ih);
void iupFocusPrevious(Ihandle *ih);
+void iupSetCurrentFocus(Ihandle *ih);
/* Other functions declared in <iup.h> and implemented here.
IupPreviousField
diff --git a/iup/src/iup_getparam.c b/iup/src/iup_getparam.c
index 1418aa5..7fd6a94 100755
--- a/iup/src/iup_getparam.c
+++ b/iup/src/iup_getparam.c
@@ -45,6 +45,14 @@ static int iParamButtonCancel_CB(Ihandle* self)
return IUP_CLOSE;
}
+static int iParamButtonHelp_CB(Ihandle* self)
+{
+ Ihandle* dlg = IupGetDialog(self);
+ Iparamcb cb = (Iparamcb)IupGetCallback(dlg, "PARAM_CB");
+ if (cb) cb(dlg, -4, (void*)iupAttribGet(dlg, "USER_DATA"));
+ return IUP_DEFAULT;
+}
+
static int iParamToggleAction_CB(Ihandle *self, int v)
{
Ihandle* param = (Ihandle*)iupAttribGetInherit(self, "_IUPGP_PARAM");
@@ -288,7 +296,7 @@ static int iParamColorButton_CB(Ihandle *self, int button, int pressed)
IupPopup(dlg, IUP_CENTER, IUP_CENTER);
- if (IupGetInt(dlg, "STATUS") != -1)
+ if (IupGetInt(dlg, "STATUS")==1)
{
char* value = IupGetAttribute(dlg, "VALUE");
IupSetAttribute(textbox, "VALUE", value);
@@ -381,11 +389,13 @@ static int iParamSpinInt_CB(Ihandle *self, int pos)
static Ihandle* iParamCreateBox(Ihandle* param)
{
Ihandle *box, *ctrl = NULL, *label;
- char *type;
+ char *type = iupAttribGet(param, "TYPE");
+
+ if (iupStrEqual(type, "BUTTONNAMES"))
+ return NULL;
label = IupLabel(iupAttribGet(param, "TITLE"));
- type = iupAttribGet(param, "TYPE");
if (iupStrEqual(type, "SEPARATOR"))
{
box = IupHbox(label, NULL);
@@ -563,7 +573,7 @@ static Ihandle* iParamCreateBox(Ihandle* param)
float step = iupAttribGetFloat(param, "STEP");
float val = iupAttribGetFloat(param, "VALUE");
if (step == 0) step = (max-min)/20.0f;
- IupSetfAttribute(ctrl, "MASKFLOAT", "%f:%f", (double)min, (double)max);
+ IupSetfAttribute(ctrl, "MASKFLOAT", "%g:%g", (double)min, (double)max);
/* here spin is always [0-spinmax] converted to [min-max] */
@@ -584,7 +594,7 @@ static Ihandle* iParamCreateBox(Ihandle* param)
if (min == 0)
IupSetAttribute(ctrl, "MASK", IUP_MASK_UFLOAT);
else
- IupSetfAttribute(ctrl, "MASKFLOAT", "%f:%f", (double)min, (double)1.0e10);
+ IupSetfAttribute(ctrl, "MASKFLOAT", "%g:%g", (double)min, (double)1.0e10);
IupAppend(box, ctrl);
}
else
@@ -620,6 +630,7 @@ static Ihandle* iParamCreateBox(Ihandle* param)
}
IupSetfAttribute(ctrl, "SPINMAX", "%d", max);
IupSetfAttribute(ctrl, "SPINMIN", "%d", min);
+ IupSetfAttribute(ctrl, "MASKINT", "%d:%d", min, max);
}
else if (iupAttribGetInt(param, "PARTIAL"))
{
@@ -696,7 +707,7 @@ static Ihandle* iParamCreateBox(Ihandle* param)
static Ihandle* IupParamDlgP(Ihandle** params)
{
- Ihandle *dlg, *button_ok, *button_cancel,
+ Ihandle *dlg, *button_ok, *button_cancel, *button_help=NULL,
*dlg_box, *button_box, *param_box;
int i, lbl_width, p, expand;
@@ -713,7 +724,23 @@ static Ihandle* IupParamDlgP(Ihandle** params)
i = 0; expand = 0;
while (params[i] != NULL)
{
- IupAppend(param_box, iParamCreateBox(params[i]));
+ Ihandle* box = iParamCreateBox(params[i]);
+ if (box)
+ IupAppend(param_box, box);
+ else /* buttonnames */
+ {
+ char* value = iupAttribGet(params[i], "_IUPGP_OK");
+ if (value && *value) IupSetAttribute(button_ok, "TITLE", value);
+ value = iupAttribGet(params[i], "_IUPGP_CANCEL");
+ if (value && *value) IupSetAttribute(button_cancel, "TITLE", value);
+ value = iupAttribGet(params[i], "_IUPGP_HELP");
+ if (value && *value)
+ {
+ button_help = IupButton(value, NULL);
+ IupSetAttribute(button_help, "PADDING", "20x0");
+ IupSetCallback(button_help, "ACTION", (Icallback)iParamButtonHelp_CB);
+ }
+ }
if (IupGetInt(params[i], "EXPAND"))
expand = 1;
@@ -725,6 +752,7 @@ static Ihandle* IupParamDlgP(Ihandle** params)
IupFill(),
button_ok,
button_cancel,
+ button_help,
NULL);
IupSetAttribute(button_box,"MARGIN","0x0");
IupSetAttribute(button_box, "NORMALIZESIZE", "HORIZONTAL");
@@ -926,6 +954,23 @@ static void iParamSetFileOptions(char* extra, Ihandle* param)
iupAttribStoreStr(param, "_IUPGP_NOOVERWRITEPROMPT", nooverwriteprompt);
}
+static void iParamSetButtonNames(char* extra, Ihandle* param)
+{
+ char *ok, *cancel, *help;
+ int count;
+
+ if (!extra)
+ return;
+
+ ok = iParamGetNextStrItem(extra, ',', &count); extra += count;
+ cancel = iParamGetNextStrItem(extra, ',', &count); extra += count;
+ help = iParamGetNextStrItem(extra, ',', &count); extra += count;
+
+ iupAttribStoreStr(param, "_IUPGP_OK", ok);
+ iupAttribStoreStr(param, "_IUPGP_CANCEL", cancel);
+ iupAttribStoreStr(param, "_IUPGP_HELP", help);
+}
+
static void iParamSetListItems(char* extra, Ihandle* param)
{
int d = 1, count;
@@ -1082,6 +1127,12 @@ static Ihandle *IupParamf(const char* format, int *line_size)
iupAttribSetStr(param, "TYPE", "SEPARATOR");
iupAttribSetStr(param, "DATA_TYPE", "-1"); /* NONE */
break;
+ case 'u':
+ iupAttribSetStr(param, "TYPE", "BUTTONNAMES");
+ iupAttribSetStr(param, "DATA_TYPE", "-1"); /* NONE */
+ extra = iParamGetStrExtra(line_ptr, '[', ']', &count); line_ptr += count;
+ iParamSetButtonNames(extra, param);
+ break;
default:
return NULL;
}
@@ -1099,7 +1150,7 @@ static Ihandle *IupParamf(const char* format, int *line_size)
int iupGetParamCount(const char *format, int *param_extra)
{
- int param_count = 0, sep = 0;
+ int param_count = 0, extra = 0;
const char* s = format;
*param_extra = 0;
@@ -1107,14 +1158,20 @@ int iupGetParamCount(const char *format, int *param_extra)
{
if (*s == '%' && *(s+1) == 't') /* do not count separator lines */
{
- sep = 1;
+ extra = 1;
+ (*param_extra)++;
+ }
+
+ if (*s == '%' && *(s+1) == 'u') /* do not count button names lines */
+ {
+ extra = 1;
(*param_extra)++;
}
if (*s == '\n')
{
- if (sep)
- sep = 0;
+ if (extra)
+ extra = 0;
else
param_count++;
}
@@ -1154,21 +1211,21 @@ int IupGetParamv(const char* title, Iparamcb action, void* user_data, const char
return 0;
data_type = IupGetInt(params[i], "DATA_TYPE");
- if (data_type == 1)
- {
- int *data_int = (int*)(param_data[p]);
- if (!data_int) return 0;
- iupAttribSetStrf(params[i], "VALUE", "%d", *data_int);
- p++;
- }
- else if (data_type == 2)
+ if (data_type == 2) /* float */
{
float *data_float = (float*)(param_data[p]);
if (!data_float) return 0;
iupAttribSetStrf(params[i], "VALUE", "%g", *data_float);
p++;
}
- else if (data_type == 0)
+ else if (data_type == 1) /* integer */
+ {
+ int *data_int = (int*)(param_data[p]);
+ if (!data_int) return 0;
+ iupAttribSetStrf(params[i], "VALUE", "%d", *data_int);
+ p++;
+ }
+ else if (data_type == 0) /* string */
{
char *data_str = (char*)(param_data[p]);
if (!data_str) return 0;
diff --git a/iup/src/iup_globalattrib.c b/iup/src/iup_globalattrib.c
index 00586fb..d1a2584 100755
--- a/iup/src/iup_globalattrib.c
+++ b/iup/src/iup_globalattrib.c
@@ -129,12 +129,14 @@ int iupGlobalIsPointer(const char* name)
static struct {
const char *name;
} ptr_table[] = {
-#ifdef WIN32
+#ifndef GTK_MAC
+ #ifdef WIN32
{"HINSTANCE"},
-#else
+ #else
{"XDISPLAY"},
{"XSCREEN"},
{"APPSHELL"},
+ #endif
#endif
};
#define PTR_TABLE_SIZE ((sizeof ptr_table)/(sizeof ptr_table[0]))
diff --git a/iup/src/iup_hbox.c b/iup/src/iup_hbox.c
index e790636..a8a93a3 100755
--- a/iup/src/iup_hbox.c
+++ b/iup/src/iup_hbox.c
@@ -213,6 +213,13 @@ static void iHboxSetChildrenCurrentSizeMethod(Ihandle* ih, int shrink)
else
{
int empty = (child->expand & IUP_EXPAND_W1)? empty_w1: ((child->expand & IUP_EXPAND_W0)? empty_w0: 0);
+ char* weigth_str = iupAttribGet(child, "EXPANDWEIGTH");
+ if (weigth_str)
+ {
+ float weigth;
+ if (iupStrToFloat(weigth_str, &weigth))
+ empty = iupROUND(empty * weigth);
+ }
iupBaseSetCurrentSize(child, child->naturalwidth+empty, client_height, shrink);
}
diff --git a/iup/src/iup_key.h b/iup/src/iup_key.h
index 37d6c9d..9b30bc4 100755
--- a/iup/src/iup_key.h
+++ b/iup/src/iup_key.h
@@ -51,16 +51,16 @@ void iupKeyInit(void);
#define IUPKEY_STATUS_SIZE 11 /* 10 chars + null */
#define IUPKEY_STATUS_INIT " " /* 10 spaces */
-#define iupKEYSETSHIFT(_s) (_s[0]='S')
-#define iupKEYSETCONTROL(_s) (_s[1]='C')
-#define iupKEYSETBUTTON1(_s) (_s[2]='1')
-#define iupKEYSETBUTTON2(_s) (_s[3]='2')
-#define iupKEYSETBUTTON3(_s) (_s[4]='3')
-#define iupKEYSETDOUBLE(_s) (_s[5]='D')
-#define iupKEYSETALT(_s) (_s[6]='A')
-#define iupKEYSETSYS(_s) (_s[7]='Y')
-#define iupKEYSETBUTTON4(_s) (_s[8]='4')
-#define iupKEYSETBUTTON5(_s) (_s[9]='5')
+#define iupKEY_SETSHIFT(_s) (_s[0]='S')
+#define iupKEY_SETCONTROL(_s) (_s[1]='C')
+#define iupKEY_SETBUTTON1(_s) (_s[2]='1')
+#define iupKEY_SETBUTTON2(_s) (_s[3]='2')
+#define iupKEY_SETBUTTON3(_s) (_s[4]='3')
+#define iupKEY_SETDOUBLE(_s) (_s[5]='D')
+#define iupKEY_SETALT(_s) (_s[6]='A')
+#define iupKEY_SETSYS(_s) (_s[7]='Y')
+#define iupKEY_SETBUTTON4(_s) (_s[8]='4')
+#define iupKEY_SETBUTTON5(_s) (_s[9]='5')
#ifdef __cplusplus
diff --git a/iup/src/iup_layout.c b/iup/src/iup_layout.c
index b96293c..0ccd496 100755
--- a/iup/src/iup_layout.c
+++ b/iup/src/iup_layout.c
@@ -43,7 +43,7 @@ static void iLayoutDisplayUpdateChildren(Ihandle *ih)
iLayoutDisplayUpdateChildren(child);
if (child->handle && child->iclass->nativetype != IUP_TYPEVOID)
- iupdrvDisplayUpdate(child);
+ iupdrvPostRedraw(child);
}
}
@@ -54,7 +54,7 @@ void IupUpdate(Ihandle* ih)
return;
if (ih->handle && ih->iclass->nativetype != IUP_TYPEVOID)
- iupdrvDisplayUpdate(ih);
+ iupdrvPostRedraw(ih);
}
void IupUpdateChildren(Ihandle* ih)
@@ -74,7 +74,7 @@ static void iLayoutDisplayRedrawChildren(Ihandle *ih)
iLayoutDisplayRedrawChildren(child);
if (child->handle && child->iclass->nativetype != IUP_TYPEVOID)
- iupdrvDisplayRedraw(child);
+ iupdrvRedrawNow(child);
}
}
@@ -85,7 +85,7 @@ void IupRedraw(Ihandle* ih, int children)
return;
if (ih->handle && ih->iclass->nativetype != IUP_TYPEVOID)
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
if (children)
iLayoutDisplayRedrawChildren(ih);
@@ -136,7 +136,7 @@ void iupLayoutCompute(Ihandle* ih)
iupBaseSetPosition(ih, 0, 0);
}
-static void iLayoutSetMinMaxSize(Ihandle* ih, int *w, int *h)
+void iupLayoutSetMinMaxSize(Ihandle* ih, int *w, int *h)
{
if (ih->has_minsize)
{
@@ -163,7 +163,8 @@ void iupBaseComputeNaturalSize(Ihandle* ih)
ih->naturalwidth = ih->userwidth;
ih->naturalheight = ih->userheight;
- if (ih->iclass->childtype!=IUP_CHILDNONE || ih->iclass->nativetype == IUP_TYPEDIALOG)
+ if (ih->iclass->childtype!=IUP_CHILDNONE ||
+ ih->iclass->nativetype == IUP_TYPEDIALOG) /* pre-defined dialogs can restrict the number of children */
{
int w=0, h=0, children_expand;
@@ -190,7 +191,7 @@ void iupBaseComputeNaturalSize(Ihandle* ih)
ih->naturalheight = iupMAX(ih->naturalheight, h);
/* crop the natural size */
- iLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight));
+ iupLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight));
}
}
else
@@ -198,15 +199,15 @@ void iupBaseComputeNaturalSize(Ihandle* ih)
/* for non-container only compute if user size is not defined */
if (ih->naturalwidth <= 0 || ih->naturalheight <= 0)
{
- int w=0, h=0;
- iupClassObjectComputeNaturalSize(ih, &w, &h, NULL);
+ int w=0, h=0, children_expand;
+ iupClassObjectComputeNaturalSize(ih, &w, &h, &children_expand);
if (ih->naturalwidth <= 0) ih->naturalwidth = w;
if (ih->naturalheight <= 0) ih->naturalheight = h;
}
/* crop the natural size */
- iLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight));
+ iupLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight));
}
}
@@ -259,7 +260,7 @@ void iupBaseSetCurrentSize(Ihandle* ih, int w, int h, int shrink)
/* crop the current size if expanded */
if (ih->expand & IUP_EXPAND_WIDTH || ih->expand & IUP_EXPAND_HEIGHT)
- iLayoutSetMinMaxSize(ih, &(ih->currentwidth), &(ih->currentheight));
+ iupLayoutSetMinMaxSize(ih, &(ih->currentwidth), &(ih->currentheight));
}
}
diff --git a/iup/src/iup_layout.h b/iup/src/iup_layout.h
index a2a0c29..775e5a2 100755
--- a/iup/src/iup_layout.h
+++ b/iup/src/iup_layout.h
@@ -16,6 +16,8 @@ extern "C" {
void iupLayoutCompute(Ihandle* ih); /* can be called before map */
void iupLayoutUpdate(Ihandle* ih); /* called only after map */
+void iupLayoutSetMinMaxSize(Ihandle* ih, int *w, int *h);
+
/* Other functions declared in <iup.h> and implemented here.
IupRefresh
*/
diff --git a/iup/src/iup_ledlex.c b/iup/src/iup_ledlex.c
index 3283a43..5cf8640 100755
--- a/iup/src/iup_ledlex.c
+++ b/iup/src/iup_ledlex.c
@@ -35,7 +35,7 @@ static struct /* lexical variables */
static int iLexGetChar (void);
static int iLexToken(int *erro);
static int iLexCapture (char* dlm);
-static int iLexSkip (char* dlm);
+static void iLexSkipComment (void);
static int iLexCaptureAttr (void);
int iupLexStart(const char* filename, int is_file) /* initialize lexical analysis */
@@ -186,9 +186,9 @@ static int iLexToken(int *erro)
case ']':
return IUPLEX_TK_ENDATTR;
- case '#': /* iLexSkip comment */
- case '%': /* iLexSkip comment */
- iLexSkip ("\n\r");
+ case '#': /* Skip comment */
+ case '%': /* Skip comment */
+ iLexSkipComment();
continue;
case ' ': /* ignore whitespace */
@@ -276,14 +276,13 @@ static int iLexCaptureAttr (void)
return c; /* return delimiter */
}
-static int iLexSkip (char* dlm)
+static void iLexSkipComment (void)
{
int c;
do
{
- c = iLexGetChar ();
- } while ((c > 0) && !strchr (dlm,c));
- return c; /* return delimiter */
+ c = iLexGetChar();
+ } while ((c > 0) && (c != '\n'));
}
static int iLexGetChar (void)
diff --git a/iup/src/iup_list.c b/iup/src/iup_list.c
index 5965665..1077d98 100755
--- a/iup/src/iup_list.c
+++ b/iup/src/iup_list.c
@@ -53,6 +53,37 @@ static void iListCallActionCallback(Ihandle* ih, IFnsii cb, int pos, int state)
IupExitLoop();
}
+void iupListUpdateOldValue(Ihandle* ih, int pos, int removed)
+{
+ if (!ih->data->has_editbox)
+ {
+ char* old_value = iupAttribGet(ih, "_IUPLIST_OLDVALUE");
+ if (old_value)
+ {
+ int old_pos = atoi(old_value)-1; /* was in IUP reference, starting at 1 */
+ if (ih->data->is_dropdown || !ih->data->is_multiple)
+ {
+ if (old_pos >= pos)
+ {
+ if (removed && old_pos == pos)
+ {
+ /* when the current item is removed nothing remains selected */
+ iupAttribSetStr(ih, "_IUPLIST_OLDVALUE", NULL);
+ }
+ else
+ iupAttribSetInt(ih, "_IUPLIST_OLDVALUE", removed? old_pos-1: old_pos+1);
+ }
+ }
+ else
+ {
+ /* multiple selection on a non drop-down list. */
+ char* value = IupGetAttribute(ih, "VALUE");
+ iupAttribStoreStr(ih, "_IUPLIST_OLDVALUE", value);
+ }
+ }
+ }
+}
+
void iupListSingleCallActionCallback(Ihandle* ih, IFnsii cb, int pos)
{
char* old_str = iupAttribGet(ih, "_IUPLIST_OLDVALUE");
@@ -77,7 +108,7 @@ void iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in
char* old_str = iupAttribGet(ih, "_IUPLIST_OLDVALUE");
int old_count = old_str? strlen(old_str): 0;
- char* str = iupStrGetMemory(count+1);
+ char* str = malloc(count+1);
memset(str, '-', count);
str[count]=0;
for (i=0; i<sel_count; i++)
@@ -92,6 +123,7 @@ void iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in
if (multi_cb)
{
int unchanged = 1;
+
for (i=0; i<count && old_str; i++)
{
if (str[i] == old_str[i])
@@ -101,7 +133,10 @@ void iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in
}
if (old_str && unchanged)
+ {
+ free(str);
return;
+ }
if (multi_cb(ih, str) == IUP_CLOSE)
IupExitLoop();
@@ -133,6 +168,7 @@ void iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in
}
iupAttribStoreStr(ih, "_IUPLIST_OLDVALUE", str);
+ free(str);
}
int iupListGetPos(Ihandle* ih, const char* name_id)
@@ -145,7 +181,8 @@ int iupListGetPos(Ihandle* ih, const char* name_id)
pos--; /* IUP items start at 1 */
if (pos < 0) return -1;
- if (pos > count-1) return -1;
+ if (pos == count) return -2;
+ if (pos > count) return -1;
return pos;
}
@@ -217,7 +254,10 @@ int iupListSetIdValueAttrib(Ihandle* ih, const char* name_id, const char* value)
if (pos >= 0 && pos <= count-1)
{
if (pos == 0)
+ {
iupdrvListRemoveAllItems(ih);
+ iupAttribSetStr(ih, "_IUPLIST_OLDVALUE", NULL);
+ }
else
{
int i = pos;
@@ -245,7 +285,7 @@ int iupListSetIdValueAttrib(Ihandle* ih, const char* name_id, const char* value)
static int iListSetAppendItemAttrib(Ihandle* ih, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
if (value)
iupdrvListAppendItem(ih, value);
@@ -254,27 +294,32 @@ static int iListSetAppendItemAttrib(Ihandle* ih, const char* value)
static int iListSetInsertItemAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
if (value)
{
int pos = iupListGetPos(ih, name_id);
- if (pos!=-1)
+ if (pos >= 0)
iupdrvListInsertItem(ih, pos, value);
+ else if (pos == -2)
+ iupdrvListAppendItem(ih, value);
}
return 0;
}
static int iListSetRemoveItemAttrib(Ihandle* ih, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
if (!value)
+ {
iupdrvListRemoveAllItems(ih);
+ iupAttribSetStr(ih, "_IUPLIST_OLDVALUE", NULL);
+ }
else
{
int pos = iupListGetPos(ih, value);
- if (pos!=-1)
+ if (pos >= 0)
iupdrvListRemoveItem(ih, pos);
}
return 0;
diff --git a/iup/src/iup_list.h b/iup/src/iup_list.h
index 045116b..05fe9f8 100755
--- a/iup/src/iup_list.h
+++ b/iup/src/iup_list.h
@@ -30,6 +30,7 @@ char* iupListGetNCAttrib(Ihandle* ih);
char* iupListGetPaddingAttrib(Ihandle* ih);
char* iupListGetSpacingAttrib(Ihandle* ih);
void iupListSingleCallDblClickCallback(Ihandle* ih, IFnis cb, int pos);
+void iupListUpdateOldValue(Ihandle* ih, int pos, int removed);
struct _IcontrolData
{
diff --git a/iup/src/iup_names.c b/iup/src/iup_names.c
index 9ec01a6..18ca3ef 100755
--- a/iup/src/iup_names.c
+++ b/iup/src/iup_names.c
@@ -14,11 +14,41 @@
#include "iup_object.h"
#include "iup_class.h"
#include "iup_assert.h"
+#include "iup_attrib.h"
#include "iup_str.h"
static Itable *inames_strtable = NULL; /* table indexed by name containing Ihandle* address */
-static Itable *inames_ihtable = NULL; /* table indexed by Ihandle* address containing names */
+
+void iupNamesInit(void)
+{
+ inames_strtable = iupTableCreate(IUPTABLE_STRINGINDEXED);
+}
+
+void iupNamesFinish(void)
+{
+ iupTableDestroy(inames_strtable);
+ inames_strtable = NULL;
+}
+
+static Ihandle* iNameGetTopParent(Ihandle* ih)
+{
+ Ihandle* parent = ih;
+ while (parent->parent)
+ parent = parent->parent;
+ return parent;
+}
+
+static int iNameCheckArray(Ihandle** ih_array, int count, Ihandle* ih)
+{
+ int i;
+ for (i = 0; i < count; i++)
+ {
+ if (ih_array[i] == ih)
+ return 0;
+ }
+ return 1;
+}
void iupNamesDestroyHandles(void)
{
@@ -37,10 +67,14 @@ void iupNamesDestroyHandles(void)
while (name)
{
ih = (Ihandle*)iupTableGetCurr(inames_strtable);
- if (iupObjectCheck(ih))
+ if (iupObjectCheck(ih)) /* here must be a handle */
{
- ih_array[i] = ih;
- i++;
+ ih = iNameGetTopParent(ih);
+ if (iNameCheckArray(ih_array, i, ih))
+ {
+ ih_array[i] = ih;
+ i++;
+ }
}
name = iupTableNext(inames_strtable);
}
@@ -48,44 +82,28 @@ void iupNamesDestroyHandles(void)
count = i;
for (i = 0; i < count; i++)
{
- if (iupObjectCheck(ih_array[i]))
+ if (iupObjectCheck(ih_array[i])) /* here must be a handle */
IupDestroy(ih_array[i]);
}
free(ih_array);
}
-void iupNamesInit(void)
-{
- inames_strtable = iupTableCreate(IUPTABLE_STRINGINDEXED);
- inames_ihtable = iupTableCreate(IUPTABLE_POINTERINDEXED);
-}
-
-void iupNamesFinish(void)
-{
- iupTableDestroy(inames_strtable);
- inames_strtable = NULL;
-
- iupTableDestroy(inames_ihtable);
- inames_ihtable = NULL;
-}
-
-void iupRemoveAllNames(Ihandle* ih)
+void iupRemoveNames(Ihandle* ih)
{
char *name;
- Ihandle *cur_ih;
- name = iupTableFirst(inames_strtable);
- while (name)
- {
- cur_ih = (Ihandle*)iupTableGetCurr(inames_strtable);
- if (iupObjectCheck(cur_ih) && cur_ih == ih)
- iupTableRemoveCurr(inames_strtable);
+ /* clear the cache */
+ name = iupAttribGet(ih, "_IUP_LASTHANDLENAME");
+ if (name)
+ iupTableRemove(inames_strtable, name);
- name = iupTableNext(inames_strtable);
- }
+ /* check for an internal name */
+ name = iupAttribGetHandleName(ih);
+ if (name)
+ iupTableRemove(inames_strtable, name);
- iupTableRemove(inames_ihtable, (char*)ih);
+ /* Do NOT search for other names */
}
Ihandle *IupGetHandle(const char *name)
@@ -104,22 +122,24 @@ Ihandle* IupSetHandle(const char *name, Ihandle *ih)
return NULL;
old_ih = iupTableGet(inames_strtable, name);
+
if (ih != NULL)
{
iupTableSet(inames_strtable, name, ih, IUPTABLE_POINTER);
- iupTableSet(inames_ihtable, (char*)ih, (char*)name, IUPTABLE_STRING); /* keep only the last name set */
+
+ /* save the name in the cache if it is a valid handle */
+ if (iupObjectCheck(ih))
+ iupAttribStoreStr(ih, "_IUP_LASTHANDLENAME", name);
}
else
{
- ih = iupTableGet(inames_strtable, name);
iupTableRemove(inames_strtable, name);
- if (ih)
- {
- char* cur_name = iupTableGet(inames_ihtable, (char*)ih);
- if (iupStrEqualNoCase(cur_name, name))
- iupTableRemove(inames_ihtable, (char*)ih);
- }
+
+ /* clear the name from the cache if it is a valid handle */
+ if (iupObjectCheck(old_ih))
+ iupAttribSetStr(old_ih, "_IUP_LASTHANDLENAME", NULL);
}
+
return old_ih;
}
@@ -151,7 +171,8 @@ static int iNamesCountDialogs(void)
while (name)
{
Ihandle* dlg = (Ihandle*)iupTableGetCurr(inames_strtable);
- if (iupObjectCheck(dlg) && dlg->iclass->nativetype == IUP_TYPEDIALOG)
+ if (iupObjectCheck(dlg) && /* here must be a handle */
+ dlg->iclass->nativetype == IUP_TYPEDIALOG)
i++;
name = iupTableNext(inames_strtable);
@@ -171,7 +192,8 @@ int IupGetAllDialogs(char** names, int n)
while (name)
{
Ihandle* dlg = (Ihandle*)iupTableGetCurr(inames_strtable);
- if (iupObjectCheck(dlg) && dlg->iclass->nativetype == IUP_TYPEDIALOG)
+ if (iupObjectCheck(dlg) && /* here must be a handle */
+ dlg->iclass->nativetype == IUP_TYPEDIALOG)
{
names[i] = name;
i++;
@@ -186,8 +208,32 @@ int IupGetAllDialogs(char** names, int n)
char* IupGetName(Ihandle* ih)
{
- iupASSERT(iupObjectCheck(ih));
- if (!iupObjectCheck(ih))
+ char *name;
+ if (!ih) /* no iupASSERT needed here */
return NULL;
- return iupTableGet(inames_ihtable, (char*)ih);
+
+ if (iupObjectCheck(ih))
+ {
+ /* check the cache first, but must be a handle */
+ name = iupAttribGet(ih, "_IUP_LASTHANDLENAME");
+ if (name)
+ return name;
+ }
+
+ /* check for an internal name */
+ name = iupAttribGetHandleName(ih);
+ if (name)
+ return name;
+
+ /* search for the name */
+ name = iupTableFirst(inames_strtable);
+ while (name)
+ {
+ if ((Ihandle*)iupTableGetCurr(inames_strtable) == ih)
+ return name;
+
+ name = iupTableNext(inames_strtable);
+ }
+
+ return NULL;
}
diff --git a/iup/src/iup_names.h b/iup/src/iup_names.h
index 9d3adc7..d652594 100755
--- a/iup/src/iup_names.h
+++ b/iup/src/iup_names.h
@@ -17,7 +17,7 @@ void iupNamesFinish(void);
void iupNamesDestroyHandles(void);
/* called from IupDestroy */
-void iupRemoveAllNames(Ihandle* ih);
+void iupRemoveNames(Ihandle* ih);
/* Other functions declared in <iup.h> and implemented here.
IupGetName
diff --git a/iup/src/iup_object.c b/iup/src/iup_object.c
index 7f4ce23..f0d5dc9 100755
--- a/iup/src/iup_object.c
+++ b/iup/src/iup_object.c
@@ -148,6 +148,8 @@ Ihandle* IupCreate(const char *name)
void IupDestroy(Ihandle *ih)
{
+ Icallback cb;
+
iupASSERT(iupObjectCheck(ih));
if (!iupObjectCheck(ih))
return;
@@ -156,6 +158,9 @@ void IupDestroy(Ihandle *ih)
if (ih->iclass->nativetype == IUP_TYPEDIALOG)
IupHide(ih);
+ cb = IupGetCallback(ih, "DESTROY_CB");
+ if (cb) cb(ih);
+
/* Destroy all its children.
Just need to remove the first child,
IupDetach will update firstchild. */
@@ -165,6 +170,9 @@ void IupDestroy(Ihandle *ih)
/* unmap if mapped and remove from its parent child list */
IupDetach(ih);
+ /* removes names associated with the element */
+ iupRemoveNames(ih);
+
/* destroy the element */
iupClassObjectDestroy(ih);
@@ -172,9 +180,6 @@ void IupDestroy(Ihandle *ih)
if (ih->data)
free(ih->data);
- /* removes all the names associated with the element */
- iupRemoveAllNames(ih);
-
/* destroy the base handle structure */
iHandleDestroy(ih);
}
diff --git a/iup/src/iup_object.h b/iup/src/iup_object.h
index 6f6b668..a69edc0 100755
--- a/iup/src/iup_object.h
+++ b/iup/src/iup_object.h
@@ -113,6 +113,7 @@ Ihandle* iupObjectCreate(Iclass* ic, void** params);
void** iupObjectGetParamList(void* first, va_list arglist);
/** Checks if the handle is still valid based on the signature.
+ * But if the handle was destroyed still can access invalid memory.
* \ingroup object */
int iupObjectCheck(Ihandle* ih);
diff --git a/iup/src/iup_open.c b/iup/src/iup_open.c
index e02561e..bce5c5c 100755
--- a/iup/src/iup_open.c
+++ b/iup/src/iup_open.c
@@ -101,8 +101,8 @@ void IupClose(void)
iupdrvSetIdleFunction(NULL); /* stop any idle */
- iupDlgListDestroyAll(); /* destroy all dialogs */
- iupNamesDestroyHandles(); /* destroy everything else that have names */
+ iupDlgListDestroyAll(); /* destroy all dialogs and their children */
+ iupNamesDestroyHandles(); /* destroy everything that do not belong to a dialog */
iupImageStockFinish(); /* release stock images hash table and the images */
iupRegisterFinish(); /* release native classes */
diff --git a/iup/src/iup_register.c b/iup/src/iup_register.c
index 4c58038..2e9954a 100755
--- a/iup/src/iup_register.c
+++ b/iup/src/iup_register.c
@@ -99,6 +99,7 @@ void iupRegisterInternalClasses(void)
iupRegisterClass(iupCboxGetClass());
iupRegisterClass(iupSboxGetClass());
iupRegisterClass(iupNormalizerGetClass());
+ iupRegisterClass(iupSplitGetClass());
iupRegisterClass(iupMenuGetClass());
iupRegisterClass(iupItemGetClass());
diff --git a/iup/src/iup_sbox.c b/iup/src/iup_sbox.c
index 5a71d33..9998481 100755
--- a/iup/src/iup_sbox.c
+++ b/iup/src/iup_sbox.c
@@ -57,6 +57,7 @@ static void iSboxSaveDimension(Ihandle* ih, int w, int h)
{
ih->data->w = w;
ih->data->h = h;
+ iupLayoutSetMinMaxSize(ih, &(ih->data->w), &(ih->data->h));
}
static void iSboxAddDecorOffset(Ihandle* ih, int *x, int *y)
diff --git a/iup/src/iup_show.c b/iup/src/iup_show.c
index 9ea1408..b42975e 100755
--- a/iup/src/iup_show.c
+++ b/iup/src/iup_show.c
@@ -53,35 +53,6 @@ void IupUnmap(Ihandle *ih)
ih->handle = NULL;
}
-static char* iShowGetVisible(Ihandle* ih)
-{
- char* value = iupAttribGet(ih, "VISIBLE"); /* Check on the element first */
- while (!value)
- {
- ih = ih->parent; /* iheritance here independs on the attribute */
- if (!ih)
- return NULL;
-
- value = iupAttribGet(ih, "VISIBLE");
-
- /* only recursive up to the native parent */
- if (ih->iclass->nativetype != IUP_TYPEVOID)
- return value; /* can be NULL */
- }
-
- return value;
-}
-
-static void iShowUpdateVisible(Ihandle* ih)
-{
- int inherit;
- /* although default is VISIBLE=YES,
- when mapped the element is still hidden.
- So we must manually update the visible state. */
- char* value = iShowGetVisible(ih);
- iupClassObjectSetAttribute(ih, "VISIBLE", value, &inherit);
-}
-
int IupMap(Ihandle* ih)
{
iupASSERT(iupObjectCheck(ih));
@@ -108,7 +79,7 @@ int IupMap(Ihandle* ih)
return IUP_ERROR;
}
- /* update FONT, must be the before several others */
+ /* update FONT, must be the before several others, so we do it here */
if (ih->iclass->nativetype != IUP_TYPEVOID &&
ih->iclass->nativetype != IUP_TYPEIMAGE &&
ih->iclass->nativetype != IUP_TYPEMENU)
@@ -117,18 +88,13 @@ int IupMap(Ihandle* ih)
/* ensure attributes default values, at this time only the ones that need to be set after map */
iupClassObjectEnsureDefaultAttributes(ih);
- /* check visible state if not a dialog */
- if (ih->iclass->nativetype == IUP_TYPECANVAS ||
- ih->iclass->nativetype == IUP_TYPECONTROL)
- iShowUpdateVisible(ih);
-
- /* updates the defined attributes in the native system. */
+ /* updates the defined attributes from the hash table to the native system. */
iupAttribUpdate(ih);
- /* updates attributes defined in the parent tree */
+ /* updates inheritable attributes defined in the parent tree */
iupAttribUpdateFromParent(ih);
- /* map children */
+ /* map children independent from childtype */
{
Ihandle* child = ih->firstchild;
while (child)
@@ -140,6 +106,10 @@ int IupMap(Ihandle* ih)
}
}
+ /* updates the defined attributes from the hash table to the native system. */
+ if (ih->iclass->childtype!=IUP_CHILDNONE)
+ iupAttribUpdateChildren(ih);
+
/* moves and resizes the elements to reflect the layout computation */
/* if the dialog is visible will be reflected in the user interface */
if (ih->iclass->nativetype == IUP_TYPEDIALOG)
diff --git a/iup/src/iup_spin.c b/iup/src/iup_spin.c
index 6fadab4..514703f 100755
--- a/iup/src/iup_spin.c
+++ b/iup/src/iup_spin.c
@@ -175,7 +175,7 @@ static int iSpinCreateMethod(Ihandle* ih, void** params)
static int iSpinboxCreateMethod(Ihandle* ih, void** params)
{
- Ihandle *spin, *ctrl;
+ Ihandle *spin;
if (!params || !(params[0]))
return IUP_ERROR;
@@ -184,8 +184,7 @@ static int iSpinboxCreateMethod(Ihandle* ih, void** params)
IupSetAttribute(ih, "MARGIN", "0x0");
IupSetAttribute(ih, "ALIGNMENT", "ACENTER");
- ctrl = (Ihandle*)(params[0]);
- iupChildTreeAppend(ih, ctrl);
+ /* IupText is already a child of Spinbox because of the IupHbox Create method */
spin = IupSpin();
iupChildTreeAppend(ih, spin);
@@ -249,7 +248,7 @@ Iclass* iupSpinboxGetClass(void)
ic->name = "spinbox";
ic->format = "h"; /* one Ihandle */
ic->nativetype = IUP_TYPEVOID;
- ic->childtype = IUP_CHILDNONE;
+ ic->childtype = IUP_CHILD_ONE; /* fake value to define it as a container */
ic->is_interactive = 0;
iupClassRegisterCallback(ic, "SPIN_CB", "i");
@@ -267,7 +266,7 @@ Iclass* iupSpinGetClass(void)
ic->name = "spin";
ic->format = NULL; /* no parameters */
ic->nativetype = IUP_TYPEVOID;
- ic->childtype = IUP_CHILDNONE;
+ ic->childtype = IUP_CHILD_ONE; /* fake value to define it as a container */
ic->is_interactive = 0;
/* Class functions */
diff --git a/iup/src/iup_split.c b/iup/src/iup_split.c
new file mode 100644
index 0000000..1829142
--- /dev/null
+++ b/iup/src/iup_split.c
@@ -0,0 +1,780 @@
+/** \file
+ * \brief iupsplit control
+ *
+ * See Copyright Notice in "iup.h"
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include "iup.h"
+#include "iupcbs.h"
+#include "iupkey.h"
+
+#include "iup_object.h"
+#include "iup_attrib.h"
+#include "iup_str.h"
+#include "iup_drv.h"
+#include "iup_stdcontrols.h"
+#include "iup_layout.h"
+#include "iup_childtree.h"
+#include "iup_draw.h"
+
+
+enum { ISPLIT_VERT, ISPLIT_HORIZ };
+
+struct _IcontrolData
+{
+ /* aux */
+ int is_holding;
+ int start_pos, start_bar, start_size;
+
+ /* attributes */
+ int layoutdrag, autohide, showgrip, barsize;
+ int direction; /* one of the types: ISPLIT_VERT, ISPLIT_HORIZ */
+ int val; /* split value: 0-1000, default 500 */
+};
+
+static int iSplitGetWidth1(Ihandle* ih)
+{
+ int width1 = ((ih->currentwidth-ih->data->barsize)*ih->data->val)/1000;
+ if (width1 < 0) width1 = 0;
+ return width1;
+}
+
+static int iSplitGetHeight1(Ihandle* ih)
+{
+ int height1 = ((ih->currentheight-ih->data->barsize)*ih->data->val)/1000;
+ if (height1 < 0) height1 = 0;
+ return height1;
+}
+
+static void iSplitSetBarPosition(Ihandle* ih, int cur_x, int cur_y, int update)
+{
+ if (ih->data->direction == ISPLIT_VERT)
+ {
+ ih->firstchild->x = ih->data->start_bar + (cur_x - ih->data->start_pos);
+ if (ih->firstchild->x < ih->x)
+ ih->firstchild->x = ih->x;
+ if (ih->firstchild->x > ih->x+ih->currentwidth)
+ ih->firstchild->x = ih->x+ih->currentwidth;
+ }
+ else /* ISPLIT_HORIZ */
+ {
+ ih->firstchild->y = ih->data->start_bar + (cur_y - ih->data->start_pos);
+ if (ih->firstchild->y < ih->y)
+ ih->firstchild->y = ih->y;
+ if (ih->firstchild->y > ih->y+ih->currentheight)
+ ih->firstchild->y = ih->y+ih->currentheight;
+ }
+
+ if (update)
+ {
+ IupSetAttribute(ih->firstchild, "ZORDER", "TOP");
+ iupClassObjectLayoutUpdate(ih->firstchild);
+ }
+}
+
+static void iSplitShowHide(Ihandle* child, int hide)
+{
+ if (hide)
+ {
+ IupSetAttribute(child, "FLOATING", "YES");
+ IupSetAttribute(child, "VISIBLE", "NO");
+ }
+ else if (!IupGetInt(child, "VISIBLE"))
+ {
+ IupSetAttribute(child, "FLOATING", "NO");
+ IupSetAttribute(child, "VISIBLE", "YES");
+ }
+}
+
+static void iSplitAutoHideXY(Ihandle* ih)
+{
+ if (ih->data->direction == ISPLIT_VERT)
+ {
+ Ihandle *child1 = ih->firstchild->brother;
+ if (child1)
+ {
+ Ihandle *child2 = child1->brother;
+
+ iSplitShowHide(child1, ih->firstchild->x < ih->x+ih->data->barsize);
+
+ if (child2)
+ iSplitShowHide(child2, ih->firstchild->x > ih->x+ih->currentwidth-ih->data->barsize);
+ }
+ }
+ else /* ISPLIT_HORIZ */
+ {
+ Ihandle *child1 = ih->firstchild->brother;
+ if (child1)
+ {
+ Ihandle *child2 = child1->brother;
+
+ iSplitShowHide(child1, ih->firstchild->y < ih->y+ih->data->barsize);
+
+ if (child2)
+ iSplitShowHide(child2, ih->firstchild->y > ih->y+ih->currentheight-ih->data->barsize);
+ }
+ }
+}
+
+static void iSplitAutoHideVal(Ihandle* ih)
+{
+ Ihandle *child1 = ih->firstchild->brother;
+ if (child1)
+ {
+ int tol;
+ Ihandle *child2 = child1->brother;
+
+ if (ih->data->direction == ISPLIT_VERT)
+ {
+ if (ih->currentwidth <= ih->data->barsize)
+ return;
+
+ tol = (1000*ih->data->barsize)/ih->currentwidth;
+ }
+ else
+ {
+ if (ih->currentheight <= ih->data->barsize)
+ return;
+
+ tol = (1000*ih->data->barsize)/ih->currentheight;
+ }
+
+ iSplitShowHide(child1, ih->data->val<tol);
+
+ if (child2)
+ iSplitShowHide(child2, ih->data->val > 1000-tol);
+ }
+}
+
+
+/*****************************************************************************\
+|* Callbacks of canvas bar *|
+\*****************************************************************************/
+
+
+static int iSplitAction_CB(Ihandle* bar)
+{
+ Ihandle* ih = bar->parent;
+ IdrawCanvas* dc = iupDrawCreateCanvas(bar);
+
+ iupDrawParentBackground(dc);
+
+ if (ih->data->showgrip)
+ {
+ int i, w, h, x, y, count;
+ unsigned char r = 160, g = 160, b = 160, bg_r, bg_g, bg_b;
+ iupDrawGetSize(dc, &w, &h);
+
+ iupStrToRGB(IupGetAttribute(ih, "COLOR"), &r, &g, &b);
+ if (r+g+b > 3*190)
+ { bg_r = 100; bg_g = 100; bg_b = 100; }
+ else
+ { bg_r = 255; bg_g = 255; bg_b = 255; }
+
+ if (ih->data->direction == ISPLIT_VERT)
+ {
+ x = ih->data->barsize/2-1;
+ y = 2;
+ count = (h-2)/5;
+ }
+ else
+ {
+ x = 2;
+ y = ih->data->barsize/2-1;
+ count = (w-2)/5;
+ }
+
+ for (i = 0; i < count; i++)
+ {
+ iupDrawRectangle(dc, x+1, y+1, x+2, y+2, bg_r, bg_g, bg_b, 1);
+ iupDrawRectangle(dc, x, y, x+1, y+1, r, g, b, 1);
+ if (ih->data->direction == ISPLIT_VERT)
+ y += 5;
+ else
+ x += 5;
+ }
+ }
+
+ iupDrawFlush(dc);
+
+ iupDrawKillCanvas(dc);
+
+ return IUP_DEFAULT;
+}
+
+static int iSplitMotion_CB(Ihandle* bar, int x, int y, char *status)
+{
+ Ihandle* ih = bar->parent;
+
+ if (ih->data->is_holding)
+ {
+ if (iup_isbutton1(status))
+ {
+ int cur_x, cur_y;
+
+ iupStrToIntInt(IupGetGlobal("CURSORPOS"), &cur_x, &cur_y, 'x');
+
+ if (ih->data->direction == ISPLIT_VERT)
+ {
+ int width1 = iSplitGetWidth1(ih);
+ width1 = ih->data->start_size + (cur_x - ih->data->start_pos);
+ ih->data->val = (width1*1000)/(ih->currentwidth-ih->data->barsize);
+ }
+ else
+ {
+ int height1 = iSplitGetHeight1(ih);
+ height1 = ih->data->start_size + (cur_y - ih->data->start_pos);
+ ih->data->val = (height1*1000)/(ih->currentheight-ih->data->barsize);
+ }
+
+ if (ih->data->val < 0) ih->data->val = 0;
+ if (ih->data->val > 1000) ih->data->val = 1000;
+
+ if (ih->data->layoutdrag)
+ {
+ if (ih->data->autohide)
+ {
+ iSplitSetBarPosition(ih, cur_x, cur_y, 0);
+ iSplitAutoHideXY(ih);
+ }
+
+ IupRefresh(ih); /* may affect all the elements in the dialog */
+ }
+ else
+ iSplitSetBarPosition(ih, cur_x, cur_y, 1);
+ }
+ else
+ ih->data->is_holding = 0;
+ }
+
+ (void)x;
+ (void)y;
+ return IUP_DEFAULT;
+}
+
+static int iSplitButton_CB(Ihandle* bar, int button, int pressed, int x, int y, char* status)
+{
+ Ihandle* ih = bar->parent;
+
+ if (button!=IUP_BUTTON1)
+ return IUP_DEFAULT;
+
+ if (!ih->data->is_holding && pressed)
+ {
+ int cur_x, cur_y;
+
+ ih->data->is_holding = 1;
+
+ iupStrToIntInt(IupGetGlobal("CURSORPOS"), &cur_x, &cur_y, 'x');
+
+ /* Save the cursor position and size */
+ if (ih->data->direction == ISPLIT_VERT)
+ {
+ ih->data->start_bar = ih->firstchild->x;
+ ih->data->start_pos = cur_x;
+ ih->data->start_size = iSplitGetWidth1(ih);
+ }
+ else
+ {
+ ih->data->start_bar = ih->firstchild->y;
+ ih->data->start_pos = cur_y;
+ ih->data->start_size = iSplitGetHeight1(ih);
+ }
+ }
+ else if (ih->data->is_holding && !pressed)
+ {
+ ih->data->is_holding = 0;
+
+ if (!ih->data->layoutdrag)
+ {
+ if (ih->data->autohide)
+ {
+ int cur_x, cur_y;
+ iupStrToIntInt(IupGetGlobal("CURSORPOS"), &cur_x, &cur_y, 'x');
+ iSplitSetBarPosition(ih, cur_x, cur_y, 0);
+ iSplitAutoHideXY(ih);
+ }
+
+ IupRefresh(ih); /* may affect all the elements in the dialog */
+ }
+ }
+
+ (void)x;
+ (void)y;
+ (void)status;
+ return IUP_DEFAULT;
+}
+
+static int iSplitFocus_CB(Ihandle* bar, int focus)
+{
+ Ihandle* ih = bar->parent;
+
+ if (!ih || focus) /* use only kill focus */
+ return IUP_DEFAULT;
+
+ if (ih->data->is_holding)
+ ih->data->is_holding = 0;
+
+ return IUP_DEFAULT;
+}
+
+
+/*****************************************************************************\
+|* Attributes *|
+\*****************************************************************************/
+
+
+static char* iSplitGetClientSize1Attrib(Ihandle* ih)
+{
+ int width, height;
+ char* str = iupStrGetMemory(20);
+
+ if (ih->data->direction == ISPLIT_VERT)
+ {
+ width = iSplitGetWidth1(ih);
+ height = ih->currentheight;
+ }
+ else /* ISPLIT_HORIZ */
+ {
+ height = iSplitGetHeight1(ih);
+ width = ih->currentwidth;
+ }
+
+ sprintf(str, "%dx%d", width, height);
+ return str;
+}
+
+static char* iSplitGetClientSize2Attrib(Ihandle* ih)
+{
+ int width, height;
+ char* str = iupStrGetMemory(20);
+
+ if (ih->data->direction == ISPLIT_VERT)
+ {
+ int width1 = iSplitGetWidth1(ih);
+
+ width = (ih->currentwidth-ih->data->barsize)-width1;
+ if (width < 0) width = 0;
+
+ height = ih->currentheight;
+ }
+ else /* ISPLIT_HORIZ */
+ {
+ int height1 = iSplitGetHeight1(ih);
+
+ height = (ih->currentheight-ih->data->barsize)-height1;
+ if (height < 0) height = 0;
+
+ width = ih->currentwidth;
+ }
+
+ sprintf(str, "%dx%d", width, height);
+ return str;
+}
+
+static int iSplitSetColorAttrib(Ihandle* ih, const char* value)
+{
+ (void)value;
+ iupdrvPostRedraw(ih);
+ return 1; /* store value in hash table */
+}
+
+static int iSplitSetDirectionAttrib(Ihandle* ih, const char* value)
+{
+ if (ih->handle) /* only before map */
+ return 0;
+
+ if (iupStrEqual(value, "HORIZONTAL"))
+ ih->data->direction = ISPLIT_HORIZ;
+ else /* Default = VERTICAL */
+ ih->data->direction = ISPLIT_VERT;
+
+ if (ih->data->direction == ISPLIT_VERT)
+ IupSetAttribute(ih->firstchild, "CURSOR", "SPLITTER_VERT");
+ else
+ IupSetAttribute(ih->firstchild, "CURSOR", "SPLITTER_HORIZ");
+
+ return 0; /* do not store value in hash table */
+}
+
+static int iSplitSetValueAttrib(Ihandle* ih, const char* value)
+{
+ if (!value)
+ {
+ ih->data->val = -1;
+
+ if (ih->data->autohide)
+ iSplitAutoHideVal(ih);
+
+ if (ih->handle)
+ IupRefresh(ih); /* may affect all the elements in the dialog */
+ }
+ else
+ {
+ int val;
+ if (iupStrToInt(value, &val))
+ {
+ ih->data->val = val;
+
+ if (ih->data->autohide)
+ iSplitAutoHideVal(ih);
+
+ if (ih->handle)
+ IupRefresh(ih); /* may affect all the elements in the dialog */
+ }
+ }
+
+ return 0; /* do not store value in hash table */
+}
+
+static char* iSplitGetValueAttrib(Ihandle* ih)
+{
+ char* str = iupStrGetMemory(30);
+ sprintf(str, "%d", ih->data->val);
+ return str;
+}
+
+static int iSplitSetBarSizeAttrib(Ihandle* ih, const char* value)
+{
+ if (iupStrToInt(value, &ih->data->barsize))
+ {
+ if (ih->data->autohide)
+ iSplitAutoHideVal(ih);
+
+ if (ih->handle)
+ IupRefresh(ih); /* may affect all the elements in the dialog */
+ }
+ return 0; /* do not store value in hash table */
+}
+
+static char* iSplitGetBarSizeAttrib(Ihandle* ih)
+{
+ char* str = iupStrGetMemory(30);
+ sprintf(str, "%d", ih->data->barsize);
+ return str;
+}
+
+static int iSplitSetLayoutDragAttrib(Ihandle* ih, const char* value)
+{
+ if (iupStrBoolean(value))
+ ih->data->layoutdrag = 1;
+ else
+ ih->data->layoutdrag = 0;
+
+ return 0; /* do not store value in hash table */
+}
+
+static char* iSplitGetLayoutDragAttrib(Ihandle* ih)
+{
+ if (ih->data->layoutdrag)
+ return "YES";
+ else
+ return "NO";
+}
+
+static int iSplitSetShowGripAttrib(Ihandle* ih, const char* value)
+{
+ if (iupStrBoolean(value))
+ ih->data->showgrip = 1;
+ else
+ {
+ ih->data->showgrip = 0;
+
+ if (ih->data->barsize == 5)
+ iSplitSetBarSizeAttrib(ih, "3");
+ }
+
+ return 0; /* do not store value in hash table */
+}
+
+static char* iSplitGetShowGripAttrib(Ihandle* ih)
+{
+ if (ih->data->showgrip)
+ return "YES";
+ else
+ return "NO";
+}
+
+static int iSplitSetAutoHideAttrib(Ihandle* ih, const char* value)
+{
+ if (iupStrBoolean(value))
+ {
+ ih->data->autohide = 1;
+ iSplitAutoHideVal(ih);
+ }
+ else
+ {
+ Ihandle *child1 = ih->firstchild->brother;
+ if (child1)
+ {
+ Ihandle *child2 = child1->brother;
+ iSplitShowHide(child1, 0);
+ if (child2)
+ iSplitShowHide(child2, 0);
+ }
+
+ ih->data->autohide = 0;
+ }
+
+ return 0; /* do not store value in hash table */
+}
+
+static char* iSplitGetAutoHideAttrib(Ihandle* ih)
+{
+ if (ih->data->autohide)
+ return "YES";
+ else
+ return "NO";
+}
+
+
+/*****************************************************************************\
+|* Methods *|
+\*****************************************************************************/
+
+
+static void iSplitComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *expand)
+{
+ int natural_w = 0,
+ natural_h = 0;
+ Ihandle *child1, *child2 = NULL;
+ child1 = ih->firstchild->brother;
+ if (child1)
+ child2 = child1->brother;
+
+ /* always has at least one child, the bar, not necessary to compute its natural size */
+ if (ih->data->direction == ISPLIT_VERT)
+ natural_w += ih->data->barsize;
+ else
+ natural_h += ih->data->barsize;
+
+ if (child1)
+ {
+ /* update child natural size first */
+ iupBaseComputeNaturalSize(child1);
+
+ if (ih->data->direction == ISPLIT_VERT)
+ {
+ natural_w += child1->naturalwidth;
+ natural_h = iupMAX(natural_h, child1->naturalheight);
+ }
+ else
+ {
+ natural_w = iupMAX(natural_w, child1->naturalwidth);
+ natural_h += child1->naturalheight;
+ }
+
+ *expand = child1->expand;
+
+ if (child2)
+ {
+ /* update child natural size first */
+ iupBaseComputeNaturalSize(child2);
+
+ if (ih->data->direction == ISPLIT_VERT)
+ {
+ natural_w += child2->naturalwidth;
+ natural_h = iupMAX(natural_h, child2->naturalheight);
+ }
+ else
+ {
+ natural_w = iupMAX(natural_w, child2->naturalwidth);
+ natural_h += child2->naturalheight;
+ }
+
+ *expand |= child2->expand;
+ }
+ }
+
+ if (ih->data->val == -1)
+ {
+ if (child1)
+ {
+ if (ih->data->direction == ISPLIT_VERT)
+ ih->data->val = (child1->naturalwidth*1000)/(natural_w-ih->data->barsize);
+ else
+ ih->data->val = (child1->naturalheight*1000)/(natural_h-ih->data->barsize);
+
+ if (ih->data->val < 0) ih->data->val = 0;
+ if (ih->data->val > 1000) ih->data->val = 1000;
+ }
+ else
+ ih->data->val = 0;
+ }
+
+ *w = natural_w;
+ *h = natural_h;
+}
+
+static void iSplitSetChildrenCurrentSizeMethod(Ihandle* ih, int shrink)
+{
+ Ihandle *child1, *child2 = NULL;
+ child1 = ih->firstchild->brother;
+ if (child1)
+ child2 = child1->brother;
+
+ if (ih->data->direction == ISPLIT_VERT)
+ {
+ int width2 = 0;
+
+ if (child1)
+ {
+ int width1 = iSplitGetWidth1(ih);
+ iupBaseSetCurrentSize(child1, width1, ih->currentheight, shrink);
+
+ width2 = (ih->currentwidth-ih->data->barsize)-width1;
+ if (width2 < 0) width2 = 0;
+ }
+
+ /* bar */
+ ih->firstchild->currentwidth = ih->data->barsize;
+ ih->firstchild->currentheight = ih->currentheight;
+
+ if (child2)
+ iupBaseSetCurrentSize(child2, width2, ih->currentheight, shrink);
+ }
+ else /* ISPLIT_HORIZ */
+ {
+ int height2 = 0;
+
+ if (child1)
+ {
+ int height1 = iSplitGetHeight1(ih);
+ iupBaseSetCurrentSize(child1, ih->currentwidth, height1, shrink);
+
+ height2 = (ih->currentheight-ih->data->barsize)-height1;
+ if (height2 < 0) height2 = 0;
+ }
+
+ /* bar */
+ ih->firstchild->currentwidth = ih->currentwidth;
+ ih->firstchild->currentheight = ih->data->barsize;
+
+ if (child2)
+ iupBaseSetCurrentSize(child2, ih->currentwidth, height2, shrink);
+ }
+}
+
+static void iSplitSetChildrenPositionMethod(Ihandle* ih, int x, int y)
+{
+ Ihandle *child1, *child2 = NULL;
+ child1 = ih->firstchild->brother;
+ if (child1)
+ child2 = child1->brother;
+
+ if (ih->data->direction == ISPLIT_VERT)
+ {
+ if (child1)
+ iupBaseSetPosition(child1, x, y);
+ x += iSplitGetWidth1(ih);
+
+ /* bar */
+ iupBaseSetPosition(ih->firstchild, x, y);
+ x += ih->data->barsize;
+
+ if (child2)
+ iupBaseSetPosition(child2, x, y);
+ }
+ else /* ISPLIT_HORIZ */
+ {
+ if (child1)
+ iupBaseSetPosition(child1, x, y);
+ y += iSplitGetHeight1(ih);
+
+ /* bar */
+ iupBaseSetPosition(ih->firstchild, x, y);
+ y += ih->data->barsize;
+
+ if (child2)
+ iupBaseSetPosition(child2, x, y);
+ }
+}
+
+static int iSplitCreateMethod(Ihandle* ih, void** params)
+{
+ Ihandle* bar;
+
+ ih->data = iupALLOCCTRLDATA();
+
+ ih->data->direction = ISPLIT_VERT;
+ ih->data->val = -1;
+ ih->data->layoutdrag = 1;
+ ih->data->autohide = 0;
+ ih->data->barsize = 5;
+ ih->data->showgrip = 1;
+
+ bar = IupCanvas(NULL);
+ iupChildTreeAppend(ih, bar); /* bar will always be the firstchild */
+
+ IupSetAttribute(bar, "CANFOCUS", "NO");
+ IupSetAttribute(bar, "BORDER", "NO");
+ IupSetAttribute(bar, "EXPAND", "NO");
+ IupSetAttribute(bar, "CURSOR", "SPLITTER_VERT");
+
+ /* Setting callbacks */
+ IupSetCallback(bar, "BUTTON_CB", (Icallback) iSplitButton_CB);
+ IupSetCallback(bar, "FOCUS_CB", (Icallback) iSplitFocus_CB);
+ IupSetCallback(bar, "MOTION_CB", (Icallback) iSplitMotion_CB);
+ IupSetCallback(bar, "ACTION", (Icallback) iSplitAction_CB);
+
+ if (params)
+ {
+ Ihandle** iparams = (Ihandle**)params;
+ if (iparams[0]) IupAppend(ih, iparams[0]);
+ if (iparams[1]) IupAppend(ih, iparams[1]);
+ }
+
+ return IUP_NOERROR;
+}
+
+Iclass* iupSplitGetClass(void)
+{
+ Iclass* ic = iupClassNew(NULL);
+
+ ic->name = "split";
+ ic->format = "HH"; /* two optional ihandle */
+ ic->nativetype = IUP_TYPEVOID;
+ ic->childtype = IUP_CHILDMANY;
+ ic->is_interactive = 0;
+
+ /* Class functions */
+ ic->Create = iSplitCreateMethod;
+ ic->Map = iupBaseTypeVoidMapMethod;
+
+ ic->ComputeNaturalSize = iSplitComputeNaturalSizeMethod;
+ ic->SetChildrenCurrentSize = iSplitSetChildrenCurrentSizeMethod;
+ ic->SetChildrenPosition = iSplitSetChildrenPositionMethod;
+
+ /* Common */
+ iupBaseRegisterCommonAttrib(ic);
+
+ /* Base Container */
+ iupClassRegisterAttribute(ic, "CLIENTSIZE1", iSplitGetClientSize1Attrib, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "CLIENTSIZE2", iSplitGetClientSize2Attrib, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "EXPAND", iupBaseContainerGetExpandAttrib, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+
+ /* IupSplit only */
+ iupClassRegisterAttribute(ic, "COLOR", NULL, iSplitSetColorAttrib, IUPAF_SAMEASSYSTEM, "160 160 160", IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "DIRECTION", NULL, iSplitSetDirectionAttrib, IUPAF_SAMEASSYSTEM, "VERTICAL", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "VALUE", iSplitGetValueAttrib, iSplitSetValueAttrib, IUPAF_SAMEASSYSTEM, "500", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "LAYOUTDRAG", iSplitGetLayoutDragAttrib, iSplitSetLayoutDragAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "SHOWGRIP", iSplitGetShowGripAttrib, iSplitSetShowGripAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AUTOHIDE", iSplitGetAutoHideAttrib, iSplitSetAutoHideAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "BARSIZE", iSplitGetBarSizeAttrib, iSplitSetBarSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+
+ return ic;
+}
+
+Ihandle* IupSplit(Ihandle* child1, Ihandle* child2)
+{
+ void *params[3];
+ params[0] = (void*)child1;
+ params[1] = (void*)child2;
+ params[2] = NULL;
+ return IupCreatev("split", params);
+}
diff --git a/iup/src/iup_stdcontrols.h b/iup/src/iup_stdcontrols.h
index 11499ae..0f3deb9 100755
--- a/iup/src/iup_stdcontrols.h
+++ b/iup/src/iup_stdcontrols.h
@@ -46,6 +46,7 @@ Iclass* iupZboxGetClass(void);
Iclass* iupCboxGetClass(void);
Iclass* iupSboxGetClass(void);
Iclass* iupNormalizerGetClass(void);
+Iclass* iupSplitGetClass(void);
Iclass* iupTimerGetClass(void);
Iclass* iupImageGetClass(void);
diff --git a/iup/src/iup_str.c b/iup/src/iup_str.c
index 68976f1..5f5b85d 100755
--- a/iup/src/iup_str.c
+++ b/iup/src/iup_str.c
@@ -147,8 +147,9 @@ char *iupStrCopyUntil(char **str, int c)
return NULL;
p_str=strchr(*str,c);
- if (!p_str) return NULL;
-
+ if (!p_str)
+ return NULL;
+ else
{
int i;
int sl=(int)(p_str - (*str));
@@ -160,10 +161,10 @@ char *iupStrCopyUntil(char **str, int c)
new_str[i] = (*str)[i];
new_str[sl] = 0;
- }
- *str = p_str+1;
- return new_str;
+ *str = p_str+1;
+ return new_str;
+ }
}
char *iupStrCopyUntilNoCase(char **str, int c)
@@ -174,11 +175,12 @@ char *iupStrCopyUntilNoCase(char **str, int c)
p_str=strchr(*str,c); /* usually the lower case is enough */
if (!p_str && isalpha(c))
- {
p_str=strchr(*str, toupper(c)); /* but check also for upper case */
- if (!p_str) return NULL;
- }
+ /* if both fail, then abort */
+ if (!p_str)
+ return NULL;
+ else
{
int i;
int sl=(int)(p_str - (*str));
@@ -190,10 +192,10 @@ char *iupStrCopyUntilNoCase(char **str, int c)
new_str[i] = (*str)[i];
new_str[sl] = 0;
- }
- *str = p_str+1;
- return new_str;
+ *str = p_str+1;
+ return new_str;
+ }
}
char *iupStrGetMemory(int size)
diff --git a/iup/src/iup_table.c b/iup/src/iup_table.c
index 9e97ff5..a873191 100755
--- a/iup/src/iup_table.c
+++ b/iup/src/iup_table.c
@@ -19,12 +19,12 @@
/* Adjust these parameters for optimal performance and memory usage */
static const unsigned int itable_maxTableSizeIndex = 8;
static const unsigned int itable_hashTableSize[] = { 31, 101, 401, 1601, 4001, 8009, 16001, 32003, 64007 };
-static const float itable_resizeLimit = 2;
+static const unsigned int itable_resizeLimit = 2;
static const unsigned int itable_itemGrow = 5;
/* Iteration context.
*/
-typedef struct ItableContext
+typedef struct _ItableContext
{
unsigned int entryIndex; /* index at the Itable::entries array */
unsigned int itemIndex; /* index at the ItableEntry::items array */
@@ -41,7 +41,7 @@ typedef struct ItableContext
* this is simply the pointer (in this case keyIndex
* and keyStr are equal).
*/
-typedef struct ItableKey
+typedef struct _ItableKey
{
unsigned long keyIndex; /* the secondary hash number */
const char *keyStr;
@@ -52,11 +52,11 @@ ItableKey;
* Such an item is stored in the item list of
* an entry.
*/
-typedef struct ItableItem
+typedef struct _ItableItem
{
Itable_Types itemType;
- ItableKey key;
- void *value;
+ ItableKey key;
+ void* value;
}
ItableItem;
@@ -67,29 +67,28 @@ ItableItem;
* in nextItemIndex.
* size is the current size of the items array.
*/
-typedef struct ItableEntry
+typedef struct _ItableEntry
{
unsigned int nextItemIndex;
- unsigned int size;
- ItableItem *items;
+ unsigned int itemsSize;
+ ItableItem* items;
}
ItableEntry;
/* A hash table.
- * indexType is the type of the index.
* entries is an array of entries. Select an
* entry by its index.
* size is the number of entries in the hash table...
*/
-struct Itable
+struct _Itable
{
- unsigned int size;
- unsigned int numberOfEntries;
- unsigned int tableSizeIndex; /* index into itable_hashTableSize array */
- Itable_IndexTypes indexType;
- ItableEntry *entries;
- ItableContext context;
+ unsigned int entriesSize;
+ unsigned int numberOfEntries;
+ unsigned int tableSizeIndex; /* index into itable_hashTableSize array */
+ Itable_IndexTypes indexType; /* type of the index: string or pointer. */
+ ItableEntry *entries;
+ ItableContext context;
};
@@ -121,8 +120,7 @@ Itable *iupTableCreate(Itable_IndexTypes indexType)
Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSizeIndex)
{
- Itable *it = (Itable *)malloc(sizeof(struct Itable));
-
+ Itable *it = (Itable *)malloc(sizeof(Itable));
iupASSERT(it!=NULL);
if (!it)
return 0;
@@ -130,12 +128,12 @@ Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSiz
if (initialSizeIndex > itable_maxTableSizeIndex)
initialSizeIndex = itable_maxTableSizeIndex;
- it->size = itable_hashTableSize[initialSizeIndex];
+ it->entriesSize = itable_hashTableSize[initialSizeIndex];
it->tableSizeIndex = initialSizeIndex;
it->numberOfEntries = 0;
it->indexType = indexType;
- it->entries = (ItableEntry *)malloc(it->size * sizeof(ItableEntry));
+ it->entries = (ItableEntry *)malloc(it->entriesSize * sizeof(ItableEntry));
iupASSERT(it->entries!=NULL);
if (!it->entries)
{
@@ -143,7 +141,7 @@ Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSiz
return 0;
}
- memset(it->entries, 0, it->size * sizeof(ItableEntry));
+ memset(it->entries, 0, it->entriesSize * sizeof(ItableEntry));
it->context.entryIndex = (unsigned int)-1;
it->context.itemIndex = (unsigned int)-1;
@@ -158,16 +156,19 @@ void iupTableClear(Itable *it)
if (!it)
return;
- for (i = 0; i < it->size; i++)
+ for (i = 0; i < it->entriesSize; i++)
{
ItableEntry *entry = &(it->entries[i]);
if (entry->items)
+ {
iTableFreeItemArray(it->indexType, entry->nextItemIndex, entry->items);
+ entry->items = NULL;
+ }
}
it->numberOfEntries = 0;
- memset(it->entries, 0, it->size * sizeof(ItableEntry));
+ memset(it->entries, 0, it->entriesSize * sizeof(ItableEntry));
it->context.entryIndex = (unsigned int)-1;
it->context.itemIndex = (unsigned int)-1;
@@ -185,7 +186,10 @@ void iupTableDestroy(Itable *it)
iupTableClear(it);
if (it->entries)
+ {
free(it->entries);
+ it->entries = NULL;
+ }
free(it);
}
@@ -288,17 +292,23 @@ static void iTableRemoveItem(Itable *it, ItableEntry *entry, unsigned int itemIn
item = &(entry->items[itemIndex]);
if (it->indexType == IUPTABLE_STRINGINDEXED)
+ {
free((void *)item->key.keyStr);
+ item->key.keyStr = NULL;
+ }
if (item->itemType == IUPTABLE_STRING)
+ {
free(item->value);
+ item->value = NULL;
+ }
- /* order the remaining items */
+ /* re-order the remaining items */
for (i = itemIndex; i < entry->nextItemIndex-1; i++)
entry->items[i] = entry->items[i+1];
- /* clear the non used item */
- memset(entry->items + entry->nextItemIndex, 0, sizeof (ItableItem));
+ /* clear the released item */
+ memset(entry->items + entry->nextItemIndex-1, 0, sizeof (ItableItem));
entry->nextItemIndex--;
it->numberOfEntries--;
@@ -398,7 +408,7 @@ char *iupTableFirst(Itable *it)
it->context.itemIndex = (unsigned int)-1;
/* find the first used entry */
- for (entryIndex = 0; entryIndex < it->size; entryIndex++)
+ for (entryIndex = 0; entryIndex < it->entriesSize; entryIndex++)
{
if (it->entries[entryIndex].nextItemIndex > 0)
{
@@ -430,7 +440,7 @@ char *iupTableNext(Itable *it)
else
{
/* find the next used entry */
- for (entryIndex = it->context.entryIndex+1; entryIndex < it->size; entryIndex++)
+ for (entryIndex = it->context.entryIndex+1; entryIndex < it->entriesSize; entryIndex++)
{
if (it->entries[entryIndex].nextItemIndex > 0)
{
@@ -471,7 +481,7 @@ char *iupTableRemoveCurr(Itable *it)
else
{
/* find the next used entry */
- for (entryIndex = it->context.entryIndex+1; entryIndex < it->size; entryIndex++)
+ for (entryIndex = it->context.entryIndex+1; entryIndex < it->entriesSize; entryIndex++)
{
if (it->entries[entryIndex].nextItemIndex > 0)
{
@@ -498,6 +508,8 @@ static void iTableFreeItemArray(Itable_IndexTypes indexType, unsigned int nextFr
{
unsigned int i;
+ /* Used only in iupTableClear */
+
iupASSERT(items!=NULL);
if (!items)
return;
@@ -505,13 +517,19 @@ static void iTableFreeItemArray(Itable_IndexTypes indexType, unsigned int nextFr
if (indexType == IUPTABLE_STRINGINDEXED)
{
for (i = 0; i < nextFreeIndex; i++)
+ {
free((void *)(items[i].key.keyStr));
+ items[i].key.keyStr = NULL;
+ }
}
for (i = 0; i < nextFreeIndex; i++)
{
if (items[i].itemType == IUPTABLE_STRING)
+ {
free(items[i].value);
+ items[i].value = NULL;
+ }
}
free(items);
@@ -545,7 +563,7 @@ static unsigned int iTableGetEntryIndex(Itable *it, const char *key, unsigned lo
*keyIndex = (unsigned long)key; /* this could NOT be dependent from table size */
}
- return (unsigned int)((*keyIndex) % it->size);
+ return (unsigned int)((*keyIndex) % it->entriesSize);
}
#ifdef DEBUGTABLE
@@ -603,25 +621,24 @@ static unsigned int iTableFindItem(Itable *it, const char *key, ItableEntry **en
static void iTableUpdateArraySize(ItableEntry *entry)
{
- if (entry->nextItemIndex >= entry->size)
+ if (entry->nextItemIndex >= entry->itemsSize)
{
/* we have to expand the item array */
unsigned int newSize;
- newSize = entry->size + itable_itemGrow;
+ newSize = entry->itemsSize + itable_itemGrow;
entry->items = (ItableItem *)realloc(entry->items, newSize * sizeof(ItableItem));
iupASSERT(entry->items!=NULL);
if (!entry->items)
return;
- memset(entry->items + entry->size, 0, itable_itemGrow * sizeof(ItableItem));
+ memset(entry->items + entry->itemsSize, 0, itable_itemGrow * sizeof(ItableItem));
- entry->size = newSize;
+ entry->itemsSize = newSize;
}
}
-
static void iTableAdd(Itable *it, ItableKey *key, void *value, Itable_Types itemType)
{
unsigned int entryIndex;
@@ -657,7 +674,7 @@ static unsigned int iTableResize(Itable *it)
/* check if we do not need to resize the hash table */
if (it->numberOfEntries == 0 ||
it->tableSizeIndex >= itable_maxTableSizeIndex ||
- it->size / it->numberOfEntries >= itable_resizeLimit)
+ it->entriesSize / it->numberOfEntries >= itable_resizeLimit)
return 0;
/* create a new hash table and copy the contents of
@@ -666,7 +683,7 @@ static unsigned int iTableResize(Itable *it)
newSizeIndex = it->tableSizeIndex + 1;
newTable = iupTableCreateSized(it->indexType, newSizeIndex);
- for (entryIndex = 0; entryIndex < it->size; entryIndex++)
+ for (entryIndex = 0; entryIndex < it->entriesSize; entryIndex++)
{
entry = &(it->entries[entryIndex]);
@@ -680,12 +697,13 @@ static unsigned int iTableResize(Itable *it)
}
free(entry->items);
+ entry->items = NULL;
}
}
free(it->entries);
- it->size = newTable->size;
+ it->entriesSize = newTable->entriesSize;
it->tableSizeIndex = newTable->tableSizeIndex;
it->numberOfEntries = newTable->numberOfEntries;
it->entries = newTable->entries;
@@ -712,11 +730,11 @@ static void iTableShowStatistics(Itable *it)
return;
}
- nofSlots = it->size;
+ nofSlots = it->entriesSize;
nofKeys = it->numberOfEntries;
optimalNofKeysPerSlot = (double)nofKeys / (double)nofSlots;
- for (entryIndex = 0; entryIndex < it->size; entryIndex++)
+ for (entryIndex = 0; entryIndex < it->entriesSize; entryIndex++)
{
ItableEntry *entry = &(it->entries[entryIndex]);
diff --git a/iup/src/iup_table.h b/iup/src/iup_table.h
index 5222160..f2ff2c7 100755
--- a/iup/src/iup_table.h
+++ b/iup/src/iup_table.h
@@ -42,8 +42,8 @@ typedef enum _Itable_Types
typedef void (*Ifunc)(void);
-struct Itable;
-typedef struct Itable Itable;
+struct _Itable;
+typedef struct _Itable Itable;
/** Creates a hash table with an initial default size.
@@ -63,7 +63,7 @@ Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSiz
/** Destroys the Itable.
* Calls \ref iupTableClear.
* \ingroup table */
-void iupTableDestroy(Itable *n);
+void iupTableDestroy(Itable *it);
/** Removes all items in the table.
* This function does also free the memory of strings contained in the table!!!!
@@ -76,33 +76,33 @@ int iupTableCount(Itable *it);
/** Store an element in the table.
* \ingroup table */
-void iupTableSet(Itable *n, const char *key, void *value, Itable_Types itemType);
+void iupTableSet(Itable *it, const char *key, void *value, Itable_Types itemType);
/** Store a function pointer in the table.
* Type is set to IUPTABLE_FUNCPOINTER.
* \ingroup table */
-void iupTableSetFunc(Itable *n, const char *key, Ifunc func);
+void iupTableSetFunc(Itable *it, const char *key, Ifunc func);
/** Retrieves an element from the table.
* Returns NULL if not found.
* \ingroup table */
-void *iupTableGet(Itable *n, const char *key);
+void *iupTableGet(Itable *it, const char *key);
/** Retrieves a function pointer from the table.
* If not a function or not found returns NULL.
* value always contains the element pointer.
* \ingroup table */
-Ifunc iupTableGetFunc(Itable *n, const char *key, void **value);
+Ifunc iupTableGetFunc(Itable *it, const char *key, void **value);
/** Retrieves an element from the table and its type.
* \ingroup table */
-void *iupTableGetTyped(Itable *n, const char *key, Itable_Types *itemType);
+void *iupTableGetTyped(Itable *it, const char *key, Itable_Types *itemType);
/** Removes the entry at the specified key from the
* hash table and frees the memory used by it if
* it is a string...
* \ingroup table */
-void iupTableRemove(Itable *n, const char *key);
+void iupTableRemove(Itable *it, const char *key);
/** Key iteration function. Returns a key.
* To iterate over all keys call iupTableFirst at the first
diff --git a/iup/src/iup_tabs.c b/iup/src/iup_tabs.c
index 77b2cf5..2907371 100755
--- a/iup/src/iup_tabs.c
+++ b/iup/src/iup_tabs.c
@@ -307,6 +307,25 @@ static char* iTabsGetClientSizeAttrib(Ihandle* ih)
return str;
}
+void iupTabsTestRemoveTab(Ihandle* ih, int pos)
+{
+ int cur_pos = iupdrvTabsGetCurrentTab(ih);
+ if (cur_pos == pos)
+ {
+ if (cur_pos == 0)
+ {
+ Ihandle* child = IupGetChild(ih, 1);
+ if (!child) /* not found child, means only one child, do nothing */
+ return;
+
+ cur_pos = 1;
+ }
+ else
+ cur_pos--;
+
+ iupdrvTabsSetCurrentTab(ih, cur_pos);
+ }
+}
/* ------------------------------------------------------------------------- */
/* TABS - Methods */
diff --git a/iup/src/iup_tabs.h b/iup/src/iup_tabs.h
index 7f5df2e..fd0edf4 100755
--- a/iup/src/iup_tabs.h
+++ b/iup/src/iup_tabs.h
@@ -16,6 +16,7 @@ char* iupTabsGetTabOrientationAttrib(Ihandle* ih);
char* iupTabsGetTabTypeAttrib(Ihandle* ih);
char* iupTabsAttribGetStrId(Ihandle* ih, const char* name, int pos);
char* iupTabsGetPaddingAttrib(Ihandle* ih);
+void iupTabsTestRemoveTab(Ihandle* ih, int pos);
int iupdrvTabsExtraDecor(Ihandle* ih);
int iupdrvTabsGetLineCountAttrib(Ihandle* ih);
diff --git a/iup/src/iup_tree.c b/iup/src/iup_tree.c
index c06e573..b5344f5 100755
--- a/iup/src/iup_tree.c
+++ b/iup/src/iup_tree.c
@@ -200,6 +200,240 @@ void iupTreeUpdateImages(Ihandle *ih)
iupClassObjectSetAttribute(ih, "IMAGEBRANCHEXPANDED", value, &inherit);
}
+void iupTreeSelectLastCollapsedBranch(Ihandle* ih, int *last_id)
+{
+ /* if last selected item is a branch, then select its children */
+ if (iupStrEqual(IupTreeGetAttribute(ih, "KIND", *last_id), "BRANCH") &&
+ iupStrEqual(IupTreeGetAttribute(ih, "STATE", *last_id), "COLLAPSED"))
+ {
+ int childcount = IupTreeGetInt(ih, "CHILDCOUNT", *last_id);
+ if (childcount > 0)
+ {
+ int start = *last_id + 1;
+ int end = *last_id + childcount;
+ IupSetfAttribute(ih, "MARK", "%d-%d", start, end);
+ *last_id = *last_id + childcount;
+ }
+ }
+}
+
+int iupTreeForEach(Ihandle* ih, iupTreeNodeFunc func, void* userdata)
+{
+ int i;
+ for (i = 0; i < ih->data->node_count; i++)
+ {
+ if (!func(ih, ih->data->node_cache[i].node_handle, i, userdata))
+ return 0;
+ }
+
+ return 1;
+}
+
+int iupTreeFindNodeId(Ihandle* ih, InodeHandle* node_handle)
+{
+ /* Unoptimized version:
+ int i;
+ for (i = 0; i < ih->data->node_count; i++)
+ {
+ if (ih->data->node_cache[i].node_handle == node_handle)
+ return i;
+ }
+ */
+ InodeData *node_cache = ih->data->node_cache;
+ while(node_cache->node_handle != node_handle &&
+ node_cache->node_handle != NULL) /* the cache always have zeros at the end */
+ node_cache++;
+
+ if (node_cache->node_handle != NULL)
+ return node_cache - ih->data->node_cache;
+ else
+ return -1;
+}
+
+static int iTreeFindUserDataId(Ihandle* ih, void* userdata)
+{
+ /* Unoptimized version:
+ int i;
+ for (i = 0; i < ih->data->node_count; i++)
+ {
+ if (ih->data->node_cache[i].node_handle == node_handle)
+ return i;
+ }
+ */
+ InodeData *node_cache = ih->data->node_cache;
+ while(node_cache->userdata != userdata &&
+ node_cache->node_handle != NULL) /* the cache always have zeros at the end */
+ node_cache++;
+
+ if (node_cache->node_handle != NULL)
+ return node_cache - ih->data->node_cache;
+ else
+ return -1;
+}
+
+static int iTreeGetIdFromString(const char* name_id)
+{
+ if (name_id && name_id[0])
+ {
+ int id = -1;
+ iupStrToInt(name_id, &id);
+ return id;
+ }
+ else
+ return -2;
+}
+
+InodeHandle* iupTreeGetNode(Ihandle* ih, int id)
+{
+ if (id >= 0 && id < ih->data->node_count)
+ return ih->data->node_cache[id].node_handle;
+ else if (id == -2)
+ return iupdrvTreeGetFocusNode(ih);
+ else
+ return NULL;
+}
+
+InodeHandle* iupTreeGetNodeFromString(Ihandle* ih, const char* name_id)
+{
+ return iupTreeGetNode(ih, iTreeGetIdFromString(name_id));
+}
+
+static void iTreeAddToCache(Ihandle* ih, int id, InodeHandle* node_handle)
+{
+ iupASSERT(id >= 0 && id < ih->data->node_count);
+ if (id < 0 || id >= ih->data->node_count)
+ return;
+
+ /* node_count here already contains the final count */
+
+ if (id == ih->data->node_count-1)
+ ih->data->node_cache[id].node_handle = node_handle;
+ else
+ {
+ /* open space for the new id */
+ int remain_count = ih->data->node_count-id;
+ memmove(ih->data->node_cache+id+1, ih->data->node_cache+id, remain_count*sizeof(InodeData));
+ ih->data->node_cache[id].node_handle = node_handle;
+ }
+
+ ih->data->node_cache[id].userdata = NULL;
+}
+
+static void iTreeIncCacheMem(Ihandle* ih)
+{
+ /* node_count here already contains the final count */
+
+ if (ih->data->node_count+10 > ih->data->node_cache_max)
+ {
+ int old_node_cache_max = ih->data->node_cache_max;
+ ih->data->node_cache_max += 20;
+ ih->data->node_cache = realloc(ih->data->node_cache, ih->data->node_cache_max*sizeof(InodeData));
+ memset(ih->data->node_cache+old_node_cache_max, 0, 20*sizeof(InodeData));
+ }
+}
+
+void iupTreeAddToCache(Ihandle* ih, int add, int kindPrev, InodeHandle* prevNode, InodeHandle* node_handle)
+{
+ int new_id = 0;
+
+ ih->data->node_count++;
+
+ /* node_count here already contains the final count */
+ iTreeIncCacheMem(ih);
+
+ if (prevNode)
+ {
+ if (add || kindPrev == ITREE_LEAF)
+ {
+ /* ADD implies always that id=prev_id+1 */
+ /* INSERT after a leaf implies always that new_id=prev_id+1 */
+ int prev_id = iupTreeFindNodeId(ih, prevNode);
+ new_id = prev_id+1;
+ }
+ else
+ {
+ /* INSERT after a branch implies always that new_id=prev_id+1+child_count */
+ int prev_id = iupTreeFindNodeId(ih, prevNode);
+ int child_count = iupdrvTreeTotalChildCount(ih, prevNode);
+ new_id = prev_id+1+child_count;
+ }
+ }
+
+ iTreeAddToCache(ih, new_id, node_handle);
+ iupAttribSetInt(ih, "LASTADDNODE", new_id);
+}
+
+void iupTreeDelFromCache(Ihandle* ih, int id, int count)
+{
+ int remain_count;
+
+ /* id can be the last node, actually==node_count becase node_count is already updated */
+ iupASSERT(id >= 0 && id <= ih->data->node_count);
+ if (id < 0 || id > ih->data->node_count)
+ return;
+
+ /* node_count here already contains the final count */
+
+ /* remove id+count */
+ remain_count = ih->data->node_count-id;
+ memmove(ih->data->node_cache+id, ih->data->node_cache+id+count, remain_count*sizeof(InodeData));
+
+ /* clear the remaining space */
+ memset(ih->data->node_cache+ih->data->node_count, 0, count*sizeof(InodeData));
+}
+
+void iupTreeCopyMoveCache(Ihandle* ih, int id_src, int id_dst, int count, int is_copy)
+{
+ int remain_count;
+
+ iupASSERT(id_src >= 0 && id_src < ih->data->node_count);
+ if (id_src < 0 || id_src >= ih->data->node_count)
+ return;
+
+ iupASSERT(id_dst >= 0 && id_dst < ih->data->node_count);
+ if (id_dst < 0 || id_dst >= ih->data->node_count)
+ return;
+
+ iupASSERT(id_dst < id_src || id_dst > id_src+count);
+ if (id_dst >= id_src && id_dst <= id_src+count)
+ return;
+
+ /* id_dst here points to the final position for a copy operation */
+
+ /* node_count here contains the final count for a copy operation */
+ iTreeIncCacheMem(ih);
+
+ /* add space for new nodes */
+ remain_count = ih->data->node_count - (id_dst + count);
+ memmove(ih->data->node_cache+id_dst+count, ih->data->node_cache+id_dst, remain_count*sizeof(InodeData));
+
+ /* compensate because we add space for new nodes */
+ if (id_src > id_dst)
+ id_src += count;
+
+ if (is_copy)
+ {
+ /* during a copy, the userdata is not reused, so clear it */
+ memset(ih->data->node_cache+id_dst, 0, count*sizeof(InodeData));
+ }
+ else /* move = copy + delete */
+ {
+ /* copy userdata from src to dst */
+ memcpy(ih->data->node_cache+id_dst, ih->data->node_cache+id_src, count*sizeof(InodeData));
+
+ /* remove the src */
+ remain_count = ih->data->node_count - (id_src + count);
+ memmove(ih->data->node_cache+id_src, ih->data->node_cache+id_src+count, remain_count*sizeof(InodeData));
+
+ /* clear the remaining space */
+ memset(ih->data->node_cache+ih->data->node_count-count, 0, count*sizeof(InodeData));
+ }
+}
+
+
+/*************************************************************************/
+
+
char* iupTreeGetSpacingAttrib(Ihandle* ih)
{
char *str = iupStrGetMemory(50);
@@ -221,8 +455,10 @@ static int iTreeSetMarkModeAttrib(Ihandle* ih, const char* value)
ih->data->mark_mode = ITREE_MARK_MULTIPLE;
else
ih->data->mark_mode = ITREE_MARK_SINGLE;
+
if (ih->handle)
- iupdrvTreeUpdateMarkMode(ih);
+ iupdrvTreeUpdateMarkMode(ih); /* for this to work, must update during map */
+
return 0;
}
@@ -290,7 +526,7 @@ static int iTreeSetShowDragDropAttrib(Ihandle* ih, const char* value)
static int iTreeSetAddLeafAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
iupdrvTreeAddNode(ih, name_id, ITREE_LEAF, value, 1);
return 0;
@@ -298,7 +534,7 @@ static int iTreeSetAddLeafAttrib(Ihandle* ih, const char* name_id, const char* v
static int iTreeSetAddBranchAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
iupdrvTreeAddNode(ih, name_id, ITREE_BRANCH, value, 1);
return 0;
@@ -306,7 +542,7 @@ static int iTreeSetAddBranchAttrib(Ihandle* ih, const char* name_id, const char*
static int iTreeSetInsertLeafAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
iupdrvTreeAddNode(ih, name_id, ITREE_LEAF, value, 0);
return 0;
@@ -314,7 +550,7 @@ static int iTreeSetInsertLeafAttrib(Ihandle* ih, const char* name_id, const char
static int iTreeSetInsertBranchAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
iupdrvTreeAddNode(ih, name_id, ITREE_BRANCH, value, 0);
return 0;
@@ -338,6 +574,74 @@ static int iTreeSetAddExpandedAttrib(Ihandle* ih, const char* value)
return 0;
}
+static char* iTreeGetCountAttrib(Ihandle* ih)
+{
+ char* str = iupStrGetMemory(10);
+ sprintf(str, "%d", ih->data->node_count);
+ return str;
+}
+
+static char* iTreeGetTotalChildCountAttrib(Ihandle* ih, const char* name_id)
+{
+ char* str;
+ InodeHandle* node_handle = iupTreeGetNodeFromString(ih, name_id);
+ if (!node_handle)
+ return NULL;
+
+ str = iupStrGetMemory(10);
+ sprintf(str, "%d", iupdrvTreeTotalChildCount(ih, node_handle));
+ return str;
+}
+
+
+static char* iTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id)
+{
+ int id;
+ char* str = (char*)(name_id+1); /* skip ':' */
+ void* userdata = NULL;
+ if (sscanf(str, "%p", &userdata)!=1)
+ return NULL;
+ id = iTreeFindUserDataId(ih, userdata);
+ if (id == -1)
+ return NULL;
+ str = iupStrGetMemory(16);
+ sprintf(str, "%d", id);
+ return str;
+}
+
+static char* iTreeGetUserDataAttrib(Ihandle* ih, const char* name_id)
+{
+ int id = iTreeGetIdFromString(name_id);
+ if (id >= 0 && id < ih->data->node_count)
+ return ih->data->node_cache[id].userdata;
+ else if (id == -2)
+ {
+ InodeHandle* node_handle = iupdrvTreeGetFocusNode(ih);
+ id = iupTreeFindNodeId(ih, node_handle);
+ if (id >= 0 && id < ih->data->node_count)
+ return ih->data->node_cache[id].userdata;
+ }
+ return NULL;
+}
+
+static int iTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value)
+{
+ int id = iTreeGetIdFromString(name_id);
+ if (id >= 0 && id < ih->data->node_count)
+ ih->data->node_cache[id].userdata = (void*)value;
+ else if (id == -2)
+ {
+ InodeHandle* node_handle = iupdrvTreeGetFocusNode(ih);
+ id = iupTreeFindNodeId(ih, node_handle);
+ if (id >= 0 && id < ih->data->node_count)
+ ih->data->node_cache[id].userdata = (void*)value;
+ }
+ return 0;
+}
+
+
+/*************************************************************************/
+
static int iTreeCreateMethod(Ihandle* ih, void **params)
{
(void)params;
@@ -348,10 +652,20 @@ static int iTreeCreateMethod(Ihandle* ih, void **params)
IupSetAttribute(ih, "EXPAND", "YES");
ih->data->add_expanded = 1;
+ ih->data->node_cache_max = 20;
+ ih->data->node_cache = calloc(ih->data->node_cache_max, sizeof(InodeData));
return IUP_NOERROR;
}
+static void iTreeDestroyMethod(Ihandle* ih)
+{
+ if (ih->data->node_cache)
+ free(ih->data->node_cache);
+}
+
+/*************************************************************************/
+
Ihandle* IupTree(void)
{
return IupCreate("tree");
@@ -371,15 +685,15 @@ Iclass* iupTreeGetClass(void)
/* Class functions */
ic->Create = iTreeCreateMethod;
ic->LayoutUpdate = iupdrvBaseLayoutUpdateMethod;
- ic->UnMap = iupdrvBaseUnMapMethod;
+ ic->Destroy = iTreeDestroyMethod;
/* Callbacks */
iupClassRegisterCallback(ic, "SELECTION_CB", "ii");
iupClassRegisterCallback(ic, "MULTISELECTION_CB", "Ii");
+ iupClassRegisterCallback(ic, "MULTIUNSELECTION_CB", "Ii");
iupClassRegisterCallback(ic, "BRANCHOPEN_CB", "i");
iupClassRegisterCallback(ic, "BRANCHCLOSE_CB", "i");
iupClassRegisterCallback(ic, "EXECUTELEAF_CB", "i");
- iupClassRegisterCallback(ic, "RENAMENODE_CB", "is");
iupClassRegisterCallback(ic, "SHOWRENAME_CB", "i");
iupClassRegisterCallback(ic, "RENAME_CB", "is");
iupClassRegisterCallback(ic, "DRAGDROP_CB", "iiii");
@@ -392,9 +706,12 @@ Iclass* iupTreeGetClass(void)
iupBaseRegisterVisualAttrib(ic);
/* IupTree Attributes - GENERAL */
- iupClassRegisterAttribute(ic, "SHOWDRAGDROP", iTreeGetShowDragDropAttrib, iTreeSetShowDragDropAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "SHOWRENAME", iTreeGetShowRenameAttrib, iTreeSetShowRenameAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "ADDEXPANDED", iTreeGetAddExpandedAttrib, iTreeSetAddExpandedAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "SHOWDRAGDROP", iTreeGetShowDragDropAttrib, iTreeSetShowDragDropAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "SHOWRENAME", iTreeGetShowRenameAttrib, iTreeSetShowRenameAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "ADDEXPANDED", iTreeGetAddExpandedAttrib, iTreeSetAddExpandedAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "COUNT", iTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "LASTADDNODE", NULL, NULL, IUPAF_SAMEASSYSTEM, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "ADDROOT", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);
/* IupTree Attributes - MARKS */
iupClassRegisterAttribute(ic, "CTRL", NULL, iTreeSetCtrlAttrib, NULL, NULL, IUPAF_NOT_MAPPED);
@@ -406,6 +723,11 @@ Iclass* iupTreeGetClass(void)
iupClassRegisterAttributeId(ic, "ADDBRANCH", NULL, iTreeSetAddBranchAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "INSERTLEAF", NULL, iTreeSetInsertLeafAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "INSERTBRANCH", NULL, iTreeSetInsertBranchAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+
+ /* IupTree Attributes - NODES */
+ iupClassRegisterAttributeId(ic, "TOTALCHILDCOUNT", iTreeGetTotalChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "FINDUSERDATA", iTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "USERDATA", iTreeGetUserDataAttrib, iTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
/* Default node images */
iTreeInitializeImages();
@@ -415,18 +737,23 @@ Iclass* iupTreeGetClass(void)
return ic;
}
-
/********************************************************************************************/
-
-void IupTreeSetAttribute(Ihandle* ih, const char* a, int id, char* v)
+void IupTreeSetAttribute(Ihandle* ih, const char* a, int id, const char* v)
{
char* attr = iupStrGetMemory(50);
sprintf(attr, "%s%d", a, id);
IupSetAttribute(ih, attr, v);
}
-void IupTreeStoreAttribute(Ihandle* ih, const char* a, int id, char* v)
+void IupTreeSetAttributeHandle(Ihandle* ih, const char* a, int id, Ihandle* ih_named)
+{
+ char* attr = iupStrGetMemory(50);
+ sprintf(attr, "%s%d", a, id);
+ IupSetAttributeHandle(ih, attr, ih_named);
+}
+
+void IupTreeStoreAttribute(Ihandle* ih, const char* a, int id, const char* v)
{
char* attr = iupStrGetMemory(50);
sprintf(attr, "%s%d", a, id);
@@ -454,7 +781,7 @@ float IupTreeGetFloat(Ihandle* ih, const char* a, int id)
return IupGetFloat(ih, attr);
}
-void IupTreeSetfAttribute(Ihandle* ih, const char* a, int id, char* f, ...)
+void IupTreeSetfAttribute(Ihandle* ih, const char* a, int id, const char* f, ...)
{
static char v[SHRT_MAX];
char* attr = iupStrGetMemory(50);
@@ -466,34 +793,40 @@ void IupTreeSetfAttribute(Ihandle* ih, const char* a, int id, char* f, ...)
IupStoreAttribute(ih, attr, v);
}
-
/************************************************************************************/
-
int IupTreeSetUserId(Ihandle* ih, int id, void* userdata)
{
- char attr[30];
- sprintf(attr,"USERDATA%d",id);
- IupSetAttribute(ih, attr, userdata);
- return IupGetAttribute(ih, attr)? 1: 0;
+ iupASSERT(iupObjectCheck(ih));
+ if (!iupObjectCheck(ih))
+ return 0;
+
+ if (id >= 0 && id < ih->data->node_count)
+ {
+ ih->data->node_cache[id].userdata = userdata;
+ return 1;
+ }
+
+ return 0;
}
int IupTreeGetId(Ihandle* ih, void *userdata)
{
- int id = -1;
- char* value;
- char attr[30];
- sprintf(attr,"FINDUSERDATA:%p",userdata);
- value = IupGetAttribute(ih, attr);
- if (!value) return -1;
+ iupASSERT(iupObjectCheck(ih));
+ if (!iupObjectCheck(ih))
+ return -1;
- iupStrToInt(value, &id);
- return id;
+ return iTreeFindUserDataId(ih, userdata);
}
void* IupTreeGetUserId(Ihandle* ih, int id)
{
- char attr[30];
- sprintf(attr,"USERDATA%d",id);
- return IupGetAttribute(ih, attr);
+ iupASSERT(iupObjectCheck(ih));
+ if (!iupObjectCheck(ih))
+ return NULL;
+
+ if (id >= 0 && id < ih->data->node_count)
+ return ih->data->node_cache[id].userdata;
+
+ return NULL;
}
diff --git a/iup/src/iup_tree.h b/iup/src/iup_tree.h
index f96a698..44acc83 100755
--- a/iup/src/iup_tree.h
+++ b/iup/src/iup_tree.h
@@ -29,6 +29,36 @@ void iupdrvTreeUpdateMarkMode(Ihandle *ih);
char* iupTreeGetSpacingAttrib(Ihandle* ih);
+#if defined(GTK_MAJOR_VERSION)
+typedef void InodeHandle;
+#elif defined(XmVERSION)
+typedef struct _WidgetRec InodeHandle;
+#elif defined(WINVER)
+typedef struct _TREEITEM InodeHandle;
+#else
+typedef struct _InodeData InodeHandle;
+#endif
+
+typedef struct _InodeData
+{
+ InodeHandle* node_handle;
+ void* userdata;
+} InodeData;
+
+typedef int (*iupTreeNodeFunc)(Ihandle* ih, InodeHandle* node_handle, int id, void* userdata);
+int iupTreeForEach(Ihandle* ih, iupTreeNodeFunc func, void* userdata);
+InodeHandle* iupTreeGetNode(Ihandle* ih, int id);
+InodeHandle* iupTreeGetNodeFromString(Ihandle* ih, const char* name_id);
+int iupTreeFindNodeId(Ihandle* ih, InodeHandle* node_handle);
+
+InodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih);
+int iupdrvTreeTotalChildCount(Ihandle* ih, InodeHandle* node_handle);
+void iupTreeSelectLastCollapsedBranch(Ihandle* ih, int *last_id);
+
+void iupTreeDelFromCache(Ihandle* ih, int id, int count);
+void iupTreeAddToCache(Ihandle* ih, int add, int kindPrev, InodeHandle* prevNode, InodeHandle* node_handle);
+void iupTreeCopyMoveCache(Ihandle* ih, int id_src, int id_dst, int count, int is_copy);
+
/* Structure of the tree */
struct _IcontrolData
{
@@ -36,6 +66,7 @@ struct _IcontrolData
add_expanded,
show_dragdrop,
show_rename,
+ stamp, /* GTK only */
spacing;
void* def_image_leaf; /* Default image leaf */
@@ -44,9 +75,10 @@ struct _IcontrolData
void* def_image_leaf_mask; /* Motif Only */
void* def_image_collapsed_mask;
- void* def_image_expanded_mask;
+ void* def_image_expanded_mask;
- int id_control; /* auxiliary variable for computing or finding the id of a node */
+ InodeData *node_cache;
+ int node_cache_max, node_count;
};
diff --git a/iup/src/iup_vbox.c b/iup/src/iup_vbox.c
index f71aa51..23e8e3a 100755
--- a/iup/src/iup_vbox.c
+++ b/iup/src/iup_vbox.c
@@ -215,6 +215,13 @@ static void iVboxSetChildrenCurrentSizeMethod(Ihandle* ih, int shrink)
else
{
int empty = (child->expand & IUP_EXPAND_H1)? empty_h1: ((child->expand & IUP_EXPAND_H0)? empty_h0: 0);
+ char* weigth_str = iupAttribGet(child, "EXPANDWEIGTH");
+ if (weigth_str)
+ {
+ float weigth;
+ if (iupStrToFloat(weigth_str, &weigth))
+ empty = iupROUND(empty * weigth);
+ }
iupBaseSetCurrentSize(child, client_width, child->naturalheight+empty, shrink);
}
diff --git a/iup/src/iup_zbox.c b/iup/src/iup_zbox.c
index 3f79892..dd4a0e4 100755
--- a/iup/src/iup_zbox.c
+++ b/iup/src/iup_zbox.c
@@ -210,7 +210,7 @@ static int iZboxSetVisibleAttrib(Ihandle* ih, const char* value)
{
if (iupObjectCheck(ih->data->value_handle))
IupSetAttribute(ih->data->value_handle, "VISIBLE", (char*)value);
- return 0;
+ return 1; /* must be 1 to mark when set at the element */
}
static void iZboxComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *expand)
@@ -368,8 +368,8 @@ Iclass* iupZboxGetClass(void)
iupClassRegisterAttribute(ic, "VALUEPOS", iZboxGetValuePosAttrib, iZboxSetValuePosAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "VALUE_HANDLE", NULL, iZboxSetValueHandleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);
- /* Intercept VISIBLE since ZBOX works showing and hidding its children */
- iupClassRegisterAttribute(ic, "VISIBLE", NULL, iZboxSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ /* Intercept VISIBLE since ZBOX works by showing and hidding its children */
+ iupClassRegisterAttribute(ic, "VISIBLE", NULL, iZboxSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED);
return ic;
}
diff --git a/iup/src/make_uname b/iup/src/make_uname
index 7fec9f8..6542234 100755
--- a/iup/src/make_uname
+++ b/iup/src/make_uname
@@ -1,4 +1,4 @@
#This builds all the libraries of the folder for 1 uname
-tecmake $1 $2 $3 $4 $5 $6 $7
+tecmake USE_MOTIF=Yes $1 $2 $3 $4 $5 $6 $7
tecmake USE_GTK=Yes $1 $2 $3 $4 $5 $6 $7
diff --git a/iup/src/mot/iupmot_button.c b/iup/src/mot/iupmot_button.c
index 2d93588..f6e383f 100755
--- a/iup/src/mot/iupmot_button.c
+++ b/iup/src/mot/iupmot_button.c
@@ -112,8 +112,10 @@ static int motButtonSetPaddingAttrib(Ihandle* ih, const char* value)
{
XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding,
XmNmarginWidth, ih->data->horiz_padding, NULL);
+ return 0;
}
- return 0;
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int motButtonSetBgColorAttrib(Ihandle* ih, const char* value)
@@ -189,43 +191,43 @@ static int motButtonMapMethod(Ihandle* ih)
if (value)
{
ih->data->type = IUP_BUTTON_IMAGE;
- iupmotSetArg(args, num_args, XmNlabelType, XmPIXMAP);
+ iupMOT_SETARG(args, num_args, XmNlabelType, XmPIXMAP);
}
else
{
ih->data->type = IUP_BUTTON_TEXT;
- iupmotSetArg(args, num_args, XmNlabelType, XmSTRING);
+ iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING);
}
/* Core */
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
/* Label */
- iupmotSetArg(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */
- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
- iupmotSetArg(args, num_args, XmNmarginTop, 0); /* no extra margins */
- iupmotSetArg(args, num_args, XmNmarginLeft, 0);
- iupmotSetArg(args, num_args, XmNmarginBottom, 0);
- iupmotSetArg(args, num_args, XmNmarginRight, 0);
+ iupMOT_SETARG(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginTop, 0); /* no extra margins */
+ iupMOT_SETARG(args, num_args, XmNmarginLeft, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginBottom, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginRight, 0);
/* PushButton */
- iupmotSetArg(args, num_args, XmNfillOnArm, False);
+ iupMOT_SETARG(args, num_args, XmNfillOnArm, False);
/* Primitive */
if (iupAttribGetBoolean(ih, "FOCUSONCLICK"))
{
if (iupAttribGetBoolean(ih, "CANFOCUS"))
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
else
- iupmotSetArg(args, num_args, XmNtraversalOn, False);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
}
else
- iupmotSetArg(args, num_args, XmNtraversalOn, False);
- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
+ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
ih->handle = XtCreateManagedWidget(
iupDialogGetChildIdStr(ih), /* child identifier */
diff --git a/iup/src/mot/iupmot_canvas.c b/iup/src/mot/iupmot_canvas.c
index 7777cf3..299bbcd 100755
--- a/iup/src/mot/iupmot_canvas.c
+++ b/iup/src/mot/iupmot_canvas.c
@@ -434,6 +434,10 @@ static void motCanvasLayoutUpdateMethod(Ihandle *ih)
XtVaGetValues(sb_win, XmNborderWidth, &border, NULL);
+ /* avoid abort in X */
+ if (ih->currentwidth <= 2*border) ih->currentwidth = 2*border+1;
+ if (ih->currentheight <= 2*border) ih->currentheight = 2*border+1;
+
XtVaSetValues(sb_win,
XmNx, (XtArgVal)ih->x,
XmNy, (XtArgVal)ih->y,
@@ -458,19 +462,19 @@ static int motCanvasMapMethod(Ihandle* ih)
/* Create the scrolled window */
/******************************/
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
- iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);
- iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE);
- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and draw area */
- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);
+ iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE);
+ iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and draw area */
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
if (iupAttribGetBoolean(ih, "BORDER"))
{
- iupmotSetArg(args, num_args, XmNborderWidth, 1);
- iupmotSetArg(args, num_args, XmNborderColor, iupmotColorGetPixelStr("0 0 0"));
+ iupMOT_SETARG(args, num_args, XmNborderWidth, 1);
+ iupMOT_SETARG(args, num_args, XmNborderColor, iupmotColorGetPixelStr("0 0 0"));
}
else
- iupmotSetArg(args, num_args, XmNborderWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNborderWidth, 0);
sb_win = XtCreateManagedWidget(
iupDialogGetChildIdStr(ih), /* child identifier */
@@ -488,36 +492,36 @@ static int motCanvasMapMethod(Ihandle* ih)
/****************************/
num_args = 0;
- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* no shadow margins */
- iupmotSetArg(args, num_args, XmNmarginWidth, 0); /* no shadow margins */
- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
- iupmotSetArg(args, num_args, XmNresizePolicy, XmRESIZE_NONE); /* no automatic resize of children */
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* no shadow margins */
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); /* no shadow margins */
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNresizePolicy, XmRESIZE_NONE); /* no automatic resize of children */
if (ih->iclass->is_interactive)
{
- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); /* include in navigation */
+ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); /* include in navigation */
if (iupAttribGetBoolean(ih, "CANFOCUS"))
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
else
- iupmotSetArg(args, num_args, XmNtraversalOn, False);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
}
else
{
- iupmotSetArg(args, num_args, XmNnavigationType, XmNONE);
- iupmotSetArg(args, num_args, XmNtraversalOn, False);
+ iupMOT_SETARG(args, num_args, XmNnavigationType, XmNONE);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
}
- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
visual = IupGetAttribute(ih, "VISUAL"); /* defined by the OpenGL Canvas or NULL */
if (visual)
{
Colormap colormap = (Colormap)iupAttribGet(ih, "COLORMAP");
if (colormap)
- iupmotSetArg(args, num_args, XmNcolormap,colormap);
+ iupMOT_SETARG(args, num_args, XmNcolormap,colormap);
iupmotDialogSetVisual(ih, visual);
}
diff --git a/iup/src/mot/iupmot_common.c b/iup/src/mot/iupmot_common.c
index 7b3f8b7..286e075 100755
--- a/iup/src/mot/iupmot_common.c
+++ b/iup/src/mot/iupmot_common.c
@@ -167,6 +167,10 @@ void iupdrvBaseLayoutUpdateMethod(Ihandle *ih)
Widget widget = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT");
if (!widget) widget = ih->handle;
+ /* avoid abort in X */
+ if (ih->currentwidth == 0) ih->currentwidth = 1;
+ if (ih->currentheight == 0) ih->currentheight = 1;
+
XtVaSetValues(widget,
XmNx, (XtArgVal)ih->x,
XmNy, (XtArgVal)ih->y,
@@ -184,7 +188,7 @@ void iupdrvBaseUnMapMethod(Ihandle* ih)
XtDestroyWidget(widget); /* To match the call to XtCreateManagedWidget */
}
-void iupdrvDisplayUpdate(Ihandle *ih)
+void iupdrvPostRedraw(Ihandle *ih)
{
XExposeEvent evt;
Dimension w, h;
@@ -209,12 +213,12 @@ void iupdrvDisplayUpdate(Ihandle *ih)
XSendEvent(iupmot_display, XtWindow(ih->handle), False, ExposureMask, (XEvent*)&evt);
}
-void iupdrvDisplayRedraw(Ihandle *ih)
+void iupdrvRedrawNow(Ihandle *ih)
{
Widget w;
/* POST a Redraw */
- iupdrvDisplayUpdate(ih);
+ iupdrvPostRedraw(ih);
/* if this element has an inner native parent (like IupTabs),
then redraw that native parent if different from the element. */
@@ -223,7 +227,7 @@ void iupdrvDisplayRedraw(Ihandle *ih)
{
Widget handle = ih->handle;
ih->handle = w;
- iupdrvDisplayUpdate(ih);
+ iupdrvPostRedraw(ih);
ih->handle = handle;
}
@@ -276,10 +280,11 @@ int iupdrvBaseSetZorderAttrib(Ihandle* ih, const char* value)
{
if (iupdrvIsVisible(ih))
{
+ Widget widget = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT");
if (iupStrEqualNoCase(value, "TOP"))
- XRaiseWindow(iupmot_display, XtWindow(ih->handle));
+ XRaiseWindow(iupmot_display, XtWindow(widget));
else
- XLowerWindow(iupmot_display, XtWindow(ih->handle));
+ XLowerWindow(iupmot_display, XtWindow(widget));
}
return 0;
@@ -455,9 +460,11 @@ static Cursor motGetCursor(Ihandle* ih, const char* name)
{ "RESIZE_N", XC_top_side},
{ "RESIZE_S", XC_bottom_side},
{ "RESIZE_NS", XC_sb_v_double_arrow},
+ { "SPLITTER_HORIZ", XC_sb_v_double_arrow},
{ "RESIZE_W", XC_left_side},
{ "RESIZE_E", XC_right_side},
{ "RESIZE_WE", XC_sb_h_double_arrow},
+ { "SPLITTER_VERT", XC_sb_h_double_arrow},
{ "RESIZE_NE", XC_top_right_corner},
{ "RESIZE_SE", XC_bottom_right_corner},
{ "RESIZE_NW", XC_top_left_corner},
diff --git a/iup/src/mot/iupmot_dialog.c b/iup/src/mot/iupmot_dialog.c
index 4eeb834..7a27d74 100755
--- a/iup/src/mot/iupmot_dialog.c
+++ b/iup/src/mot/iupmot_dialog.c
@@ -134,12 +134,13 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
static int native_border = 0;
static int native_caption = 0;
- int has_caption = iupAttribGetBoolean(ih, "MAXBOX") ||
- iupAttribGetBoolean(ih, "MINBOX") ||
- iupAttribGetBoolean(ih, "MENUBOX") ||
- IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */
+ int has_titlebar = iupAttribGetBoolean(ih, "RESIZE") || /* GTK and Motif only */
+ iupAttribGetBoolean(ih, "MAXBOX") ||
+ iupAttribGetBoolean(ih, "MINBOX") ||
+ iupAttribGetBoolean(ih, "MENUBOX") ||
+ IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */
- int has_border = has_caption ||
+ int has_border = has_titlebar ||
iupAttribGetBoolean(ih, "RESIZE") ||
iupAttribGetBoolean(ih, "BORDER");
@@ -155,7 +156,7 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
*border = win_border;
*caption = 0;
- if (has_caption)
+ if (has_titlebar)
*caption = win_caption;
if (!native_border && *border)
@@ -181,7 +182,7 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
}
*caption = 0;
- if (has_caption)
+ if (has_titlebar)
{
if (native_caption)
*caption = native_caption;
@@ -853,6 +854,7 @@ static int motDialogMapMethod(Ihandle* ih)
InativeHandle* parent;
int mwm_decor = 0;
int num_args = 0;
+ int has_titlebar = 0;
Arg args[20];
if (iupAttribGetBoolean(ih, "DIALOGFRAME"))
@@ -867,32 +869,46 @@ static int motDialogMapMethod(Ihandle* ih)
/****************************/
if (iupAttribGet(ih, "TITLE"))
- mwm_decor |= MWM_DECOR_TITLE;
+ has_titlebar = 1;
if (iupAttribGetBoolean(ih, "MENUBOX"))
- mwm_decor |= MWM_DECOR_MENU;
+ {
+ mwm_decor |= MWM_DECOR_MENU;
+ has_titlebar = 1;
+ }
if (iupAttribGetBoolean(ih, "MINBOX"))
- mwm_decor |= MWM_DECOR_MINIMIZE;
+ {
+ mwm_decor |= MWM_DECOR_MINIMIZE;
+ has_titlebar = 1;
+ }
if (iupAttribGetBoolean(ih, "MAXBOX"))
- mwm_decor |= MWM_DECOR_MAXIMIZE;
+ {
+ mwm_decor |= MWM_DECOR_MAXIMIZE;
+ has_titlebar = 1;
+ }
if (iupAttribGetBoolean(ih, "RESIZE"))
- mwm_decor |= MWM_DECOR_RESIZEH;
- if (iupAttribGetBoolean(ih, "BORDER"))
- mwm_decor |= MWM_DECOR_BORDER;
-
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* so XtRealizeWidget will not show the dialog */
- iupmotSetArg(args, num_args, XmNdeleteResponse, XmDO_NOTHING);
- iupmotSetArg(args, num_args, XmNallowShellResize, True); /* Used so the BulletinBoard can control the shell size */
- iupmotSetArg(args, num_args, XmNtitle, "");
- iupmotSetArg(args, num_args, XmNvisual, iupmot_visual);
+ {
+ mwm_decor |= MWM_DECOR_RESIZEH;
+ mwm_decor |= MWM_DECOR_BORDER; /* has_border */
+ }
+ if (has_titlebar)
+ mwm_decor |= MWM_DECOR_TITLE;
+ if (iupAttribGetBoolean(ih, "BORDER") || has_titlebar)
+ mwm_decor |= MWM_DECOR_BORDER; /* has_border */
+
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* so XtRealizeWidget will not show the dialog */
+ iupMOT_SETARG(args, num_args, XmNdeleteResponse, XmDO_NOTHING);
+ iupMOT_SETARG(args, num_args, XmNallowShellResize, True); /* Used so the BulletinBoard can control the shell size */
+ iupMOT_SETARG(args, num_args, XmNtitle, "");
+ iupMOT_SETARG(args, num_args, XmNvisual, iupmot_visual);
if (iupmotColorMap())
- iupmotSetArg(args, num_args, XmNcolormap, iupmotColorMap());
+ iupMOT_SETARG(args, num_args, XmNcolormap, iupmotColorMap());
if (mwm_decor != 0x7E)
- iupmotSetArg(args, num_args, XmNmwmDecorations, mwm_decor);
+ iupMOT_SETARG(args, num_args, XmNmwmDecorations, mwm_decor);
if (iupAttribGetBoolean(ih, "SAVEUNDER"))
- iupmotSetArg(args, num_args, XmNsaveUnder, True);
+ iupMOT_SETARG(args, num_args, XmNsaveUnder, True);
parent = iupDialogGetNativeParent(ih);
if (parent)
diff --git a/iup/src/mot/iupmot_draw.c b/iup/src/mot/iupmot_draw.c
new file mode 100644
index 0000000..83a6d09
--- /dev/null
+++ b/iup/src/mot/iupmot_draw.c
@@ -0,0 +1,188 @@
+/** \file
+ * \brief Draw Functions
+ *
+ * See Copyright Notice in "iup.h"
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <memory.h>
+
+#include <Xm/Xm.h>
+#include <X11/Xlib.h>
+
+#include "iup.h"
+
+#include "iup_attrib.h"
+#include "iup_class.h"
+#include "iup_str.h"
+#include "iup_object.h"
+#include "iup_image.h"
+#include "iup_draw.h"
+
+#include "iupmot_drv.h"
+#include "iupmot_color.h"
+
+
+struct _IdrawCanvas{
+ Ihandle* ih;
+ int w, h;
+
+ Window wnd;
+ Pixmap pixmap;
+ GC pixmap_gc, gc;
+};
+
+static void motDrawGetGeometry(Display *dpy, Drawable wnd, int *_w, int *_h, int *_d)
+{
+ Window root;
+ int x, y;
+ unsigned int w, h, b, d;
+ XGetGeometry(dpy, wnd, &root, &x, &y, &w, &h, &b, &d);
+ *_w = w;
+ *_h = h;
+ *_d = d;
+}
+
+IdrawCanvas* iupDrawCreateCanvas(Ihandle* ih)
+{
+ IdrawCanvas* dc = calloc(1, sizeof(IdrawCanvas));
+ int depth;
+
+ dc->wnd = XtWindow(ih->handle);
+ dc->gc = XCreateGC(iupmot_display, dc->wnd, 0, NULL);
+
+ motDrawGetGeometry(iupmot_display, dc->wnd, &dc->w, &dc->h, &depth);
+
+ dc->pixmap = XCreatePixmap(iupmot_display, dc->wnd, dc->w, dc->h, depth);
+ dc->pixmap_gc = XCreateGC(iupmot_display, dc->pixmap, 0, NULL);
+
+ return dc;
+}
+
+void iupDrawKillCanvas(IdrawCanvas* dc)
+{
+ XFreeGC(iupmot_display, dc->pixmap_gc);
+ XFreePixmap(iupmot_display, dc->pixmap);
+ XFreeGC(iupmot_display, dc->gc);
+
+ free(dc);
+}
+
+void iupDrawUpdateSize(IdrawCanvas* dc)
+{
+ int w, h, depth;
+ motDrawGetGeometry(iupmot_display, dc->wnd, &w, &h, &depth);
+
+ if (w != dc->w || h != dc->h)
+ {
+ XFreeGC(iupmot_display, dc->pixmap_gc);
+ XFreePixmap(iupmot_display, dc->pixmap);
+
+ dc->pixmap = XCreatePixmap(iupmot_display, dc->wnd, dc->w, dc->h, depth);
+ dc->pixmap_gc = XCreateGC(iupmot_display, dc->pixmap, 0, NULL);
+ }
+}
+
+void iupDrawFlush(IdrawCanvas* dc)
+{
+ XCopyArea(iupmot_display, dc->pixmap, dc->wnd, dc->gc, 0, 0, dc->w, dc->h, 0, 0);
+}
+
+void iupDrawGetSize(IdrawCanvas* dc, int *w, int *h)
+{
+ if (w) *w = dc->w;
+ if (h) *h = dc->h;
+}
+
+void iupDrawParentBackground(IdrawCanvas* dc)
+{
+ unsigned char r=0, g=0, b=0;
+ char* color = iupBaseNativeParentGetBgColorAttrib(dc->ih);
+ iupStrToRGB(color, &r, &g, &b);
+ iupDrawRectangle(dc, 0, 0, dc->w-1, dc->h-1, r, g, b, 1);
+}
+
+void iupDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int filled)
+{
+ XSetForeground(iupmot_display, dc->pixmap_gc, iupmotColorGetPixel(r, g, b));
+ if (filled)
+ XFillRectangle(iupmot_display, dc->pixmap, dc->pixmap_gc, x1, y1, x2-x1+1, y2-y1+1);
+ else
+ XDrawRectangle(iupmot_display, dc->pixmap, dc->pixmap_gc, x1, y1, x2-x1+1, y2-y1+1);
+}
+
+void iupDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b)
+{
+ XSetForeground(iupmot_display, dc->pixmap_gc, iupmotColorGetPixel(r, g, b));
+ XDrawLine(iupmot_display, dc->pixmap, dc->pixmap_gc, x1, y1, x2, y2);
+}
+
+void iupDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int filled)
+{
+ XSetForeground(iupmot_display, dc->pixmap_gc, iupmotColorGetPixel(r, g, b));
+ if (filled)
+ {
+ XSetArcMode(iupmot_display, dc->pixmap_gc, ArcPieSlice);
+ XFillArc(iupmot_display, dc->pixmap, dc->pixmap_gc, x1, y1, x2-x1+1, y2-y1+1, iupROUND(a1*64), iupROUND((a2 - a1)*64));
+ }
+ else
+ XDrawArc(iupmot_display, dc->pixmap, dc->pixmap_gc, x1, y1, x2-x1+1, y2-y1+1, iupROUND(a1*64), iupROUND((a2 - a1)*64));
+}
+
+void iupDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int filled)
+{
+ int i;
+ XPoint* pnt = (XPoint*)malloc(count*sizeof(XPoint)); /* XPoint uses short for coordinates */
+
+ for (i = 0; i < count; i++)
+ {
+ pnt[i].x = (short)points[2*i];
+ pnt[i].y = (short)points[2*i+1];
+ }
+
+ XSetForeground(iupmot_display, dc->pixmap_gc, iupmotColorGetPixel(r, g, b));
+ if (filled)
+ XFillPolygon(iupmot_display, dc->pixmap, dc->pixmap_gc, pnt, count, Complex, CoordModeOrigin);
+ else
+ XDrawLines(iupmot_display, dc->pixmap, dc->pixmap_gc, pnt, count, CoordModeOrigin);
+
+ free(pnt);
+}
+
+void iupDrawSetClipRect(IdrawCanvas* dc, int x1, int y1, int x2, int y2)
+{
+ XRectangle rect;
+ rect.x = (short)x1;
+ rect.y = (short)y1;
+ rect.width = (unsigned short)(x2-x1+1);
+ rect.height = (unsigned short)(y2-y1+1);
+ XSetClipRectangles(iupmot_display, dc->pixmap_gc, 0, 0, &rect, 1, Unsorted);
+}
+
+void iupDrawResetClip(IdrawCanvas* dc)
+{
+ XSetClipMask(iupmot_display, dc->pixmap_gc, None);
+}
+
+void iupDrawText(IdrawCanvas* dc, const char* text, int len, int x, int y, unsigned char r, unsigned char g, unsigned char b)
+{
+ XFontStruct* xfont = (XFontStruct*)IupGetAttribute(dc->ih, "XFONTSTRUCT");
+ XSetForeground(iupmot_display, dc->pixmap_gc, iupmotColorGetPixel(r, g, b));
+ XSetFont(iupmot_display, dc->pixmap_gc, xfont->fid);
+ XDrawString(iupmot_display, dc->pixmap, dc->pixmap_gc, x, y-xfont->ascent, text, len);
+}
+
+void iupDrawImage(IdrawCanvas* dc, const char* name, int make_inactive, int x, int y)
+{
+ int img_w, img_h, bpp;
+ Pixmap pixmap = (Pixmap)iupImageGetImage(name, dc->ih, make_inactive);
+ if (!pixmap)
+ return;
+
+ /* must use this info, since image can be a driver image loaded from resources */
+ iupdrvImageGetInfo((void*)pixmap, &img_w, &img_h, &bpp);
+
+ XCopyArea(iupmot_display, pixmap, dc->pixmap, dc->pixmap_gc, 0, 0, img_w, img_h, x, y);
+}
diff --git a/iup/src/mot/iupmot_drv.h b/iup/src/mot/iupmot_drv.h
index 8a536ef..424ae9f 100755
--- a/iup/src/mot/iupmot_drv.h
+++ b/iup/src/mot/iupmot_drv.h
@@ -65,7 +65,7 @@ void iupmotGetWindowSize(Ihandle *ih, int *width, int *height);
char* iupmotGetXWindowAttrib(Ihandle *ih);
-#define iupmotSetArg(_a, _i, _n, _d) ((_a)[(_i)].name = (_n), (_a)[(_i)].value = (XtArgVal)(_d), (_i)++)
+#define iupMOT_SETARG(_a, _i, _n, _d) ((_a)[(_i)].name = (_n), (_a)[(_i)].value = (XtArgVal)(_d), (_i)++)
#ifdef __cplusplus
diff --git a/iup/src/mot/iupmot_filedlg.c b/iup/src/mot/iupmot_filedlg.c
index 768dd2b..0be6319 100755
--- a/iup/src/mot/iupmot_filedlg.c
+++ b/iup/src/mot/iupmot_filedlg.c
@@ -17,6 +17,7 @@
#include <Xm/DrawingA.h>
#include <Xm/PushB.h>
#include <Xm/Frame.h>
+#include <Xm/List.h>
#include "iup.h"
#include "iupcbs.h"
@@ -28,6 +29,7 @@
#include "iup_dialog.h"
#include "iup_strmessage.h"
#include "iup_drvinfo.h"
+#include "iup_array.h"
#include "iupmot_drv.h"
@@ -87,14 +89,14 @@ static int motFileDlgCheckValue(Ihandle* ih, Widget w)
return 0;
}
}
- else
+ else if (!iupAttribGetBoolean(ih, "MULTIPLEFILES"))
{
if (iupdrvIsDirectory(value)) /* selected a directory */
{
iupStrMessageShowError(ih, "IUP_INVALIDDIR");
return 0;
}
- else if (!iupdrvIsFile(value)) /* new file */
+ else if (!iupdrvIsFile(value)) /* not a file == new file */
{
value = iupAttribGet(ih, "ALLOWNEW");
if (!value)
@@ -132,6 +134,51 @@ static void motFileDlgCBclose(Widget w, XtPointer client_data, XtPointer call_da
iupAttribSetStr(ih, "_IUP_WM_DELETE", "1");
}
+static int motFileDlgGetMultipleFiles(Ihandle* ih, const char* dir, Widget wList)
+{
+ int *pos, sel_count, dir_len;
+ int i, len, cur_len;
+ char *filename, *all_names;
+ Iarray* names_array;
+ XmString* items;
+
+ if (!XmListGetSelectedPos(wList, &pos, &sel_count))
+ return 0;
+
+ names_array = iupArrayCreate(1024, 1); /* just set an initial size, but count is 0 */
+ XtVaGetValues(wList, XmNitems, &items, NULL);
+
+ cur_len = strlen(dir);
+
+ all_names = iupArrayAdd(names_array, cur_len+1);
+ memcpy(all_names, dir, cur_len);
+ all_names[cur_len] = '|';
+ dir_len = cur_len;
+ cur_len++; /* skip separator */
+
+ for (i = 0; i<sel_count; i++)
+ {
+ filename = iupmotConvertString(items[pos[i]-1]); /* XmListGetSelectedPos starts at 1 */
+ len = strlen(filename)-dir_len;
+
+ cur_len = iupArrayCount(names_array);
+ all_names = iupArrayAdd(names_array, len+1);
+ memcpy(all_names+cur_len, filename+dir_len, len);
+ all_names[cur_len+len] = '|';
+ }
+
+ XtFree((char*)pos);
+
+ cur_len = iupArrayCount(names_array);
+ all_names = iupArrayInc(names_array);
+ all_names[cur_len+1] = 0;
+
+ iupAttribStoreStr(ih, "VALUE", all_names);
+
+ iupArrayDestroy(names_array);
+ return 1;
+}
+
static void motFileDlgCallback(Widget w, Ihandle* ih, XmFileSelectionBoxCallbackStruct* call_data)
{
(void)w;
@@ -151,14 +198,38 @@ static void motFileDlgCallback(Widget w, Ihandle* ih, XmFileSelectionBoxCallback
iupAttribSetStr(ih, "STATUS", "0");
iupAttribSetStr(ih, "FILEEXIST", NULL);
}
+ else if (iupAttribGetBoolean(ih, "MULTIPLEFILES"))
+ {
+ Widget wList = XmFileSelectionBoxGetChild(w, XmDIALOG_LIST);
+
+ /* VALUE obtained above contains exactly the DIRECTORY */
+ char* dir = iupAttribGet(ih, "VALUE");
+ int len = strlen(dir);
+ if (dir[len-1]=='/') dir[len-1] = 0; /* remove last '/' */
+ iupAttribStoreStr(ih, "DIRECTORY", dir);
+
+ if (!motFileDlgGetMultipleFiles(ih, iupAttribGet(ih, "DIRECTORY"), wList))
+ {
+ iupStrMessageShowError(ih, "IUP_FILENOTEXIST");
+ return;
+ }
+
+ iupAttribSetStr(ih, "STATUS", "0");
+ iupAttribSetStr(ih, "FILEEXIST", "YES");
+ }
else
{
IFnss file_cb = (IFnss)IupGetCallback(ih, "FILE_CB");
- if (file_cb && file_cb(ih, iupAttribGet(ih, "VALUE"), "OK") == IUP_IGNORE)
+ filename = iupAttribGet(ih, "VALUE");
+ if (file_cb && file_cb(ih, filename, "OK") == IUP_IGNORE)
return;
- if (iupdrvIsFile(iupAttribGet(ih, "VALUE"))) /* check if file exists */
+ if (iupdrvIsFile(filename)) /* check if file exists */
{
+ char* dir = iupStrFileGetPath(filename);
+ iupAttribStoreStr(ih, "DIRECTORY", dir);
+ free(dir);
+
iupAttribSetStr(ih, "FILEEXIST", "YES");
iupAttribSetStr(ih, "STATUS", "0");
}
@@ -188,9 +259,8 @@ static void motFileDlgCallback(Widget w, Ihandle* ih, XmFileSelectionBoxCallback
}
}
-static void motFileDlgHelpCallback(Widget w, XtPointer client_data, XtPointer call_data)
+static void motFileDlgHelpCallback(Widget w, Ihandle *ih, XtPointer call_data)
{
- Ihandle *ih = (Ihandle*)client_data;
Icallback cb = IupGetCallback(ih, "HELP_CB");
if (cb && cb(ih) == IUP_CLOSE)
{
@@ -340,14 +410,15 @@ static void motFileDlgPreviewCanvasExposeCallback(Widget w, Ihandle *ih, XtPoint
static void motFileDlgBrowseSelectionCallback(Widget w, Ihandle* ih, XmListCallbackStruct* list_data)
{
char* filename;
+ IFnss cb;
XmStringGetLtoR(list_data->item, XmSTRING_DEFAULT_CHARSET, &filename);
+ cb = (IFnss)IupGetCallback(ih, "FILE_CB");
if (iupdrvIsFile(filename))
- {
- IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");
cb(ih, filename, "SELECT");
- }
+ else
+ cb(ih, filename, "OTHER");
XtFree(filename);
(void)w;
@@ -417,6 +488,13 @@ static int motFileDlgPopup(Ihandle* ih, int x, int y)
if (dialogtype == IUP_DIALOGDIR)
XtVaSetValues(filebox, XmNfileTypeMask, XmFILE_DIRECTORY, NULL);
+ if (iupAttribGetBoolean(ih, "MULTIPLEFILES"))
+ {
+ Widget wList = XmFileSelectionBoxGetChild(filebox, XmDIALOG_LIST);
+ XtVaSetValues(wList, XmNselectionPolicy, XmEXTENDED_SELECT, NULL);
+ XtAddCallback(wList, XmNextendedSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih);
+ }
+
/* just check for the path inside FILE */
value = iupAttribGet(ih, "FILE");
if (value && value[0] == '/')
@@ -501,8 +579,10 @@ static int motFileDlgPopup(Ihandle* ih, int x, int y)
file_cb = (IFnss)IupGetCallback(ih, "FILE_CB");
if (file_cb)
{
- Widget file_list = XmFileSelectionBoxGetChild(filebox, XmDIALOG_LIST);
- XtAddCallback(file_list, XmNbrowseSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih);
+ Widget list = XmFileSelectionBoxGetChild(filebox, XmDIALOG_LIST);
+ XtAddCallback(list, XmNbrowseSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih);
+ list = XmFileSelectionBoxGetChild(filebox, XmDIALOG_DIR_LIST);
+ XtAddCallback(list, XmNbrowseSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih);
if (iupAttribGetBoolean(ih, "SHOWPREVIEW"))
{
@@ -575,4 +655,6 @@ static int motFileDlgPopup(Ihandle* ih, int x, int y)
void iupdrvFileDlgInitClass(Iclass* ic)
{
ic->DlgPopup = motFileDlgPopup;
+
+ iupClassRegisterAttribute(ic, "MULTIPLEFILES", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT);
}
diff --git a/iup/src/mot/iupmot_font.c b/iup/src/mot/iupmot_font.c
index 8da06dd..42154b6 100755
--- a/iup/src/mot/iupmot_font.c
+++ b/iup/src/mot/iupmot_font.c
@@ -135,19 +135,19 @@ static XmFontList motFontCreateRenderTable(XFontStruct* fontstruct, int is_under
Arg args[10];
int num_args = 0;
- iupmotSetArg(args, num_args, XmNfontType, XmFONT_IS_FONT);
- iupmotSetArg(args, num_args, XmNfont, (XtPointer)fontstruct);
- iupmotSetArg(args, num_args, XmNloadModel, XmLOAD_IMMEDIATE);
+ iupMOT_SETARG(args, num_args, XmNfontType, XmFONT_IS_FONT);
+ iupMOT_SETARG(args, num_args, XmNfont, (XtPointer)fontstruct);
+ iupMOT_SETARG(args, num_args, XmNloadModel, XmLOAD_IMMEDIATE);
if (is_underline)
- iupmotSetArg(args, num_args, XmNunderlineType, XmSINGLE_LINE);
+ iupMOT_SETARG(args, num_args, XmNunderlineType, XmSINGLE_LINE);
else
- iupmotSetArg(args, num_args, XmNunderlineType, XmNO_LINE);
+ iupMOT_SETARG(args, num_args, XmNunderlineType, XmNO_LINE);
if (is_strikeout)
- iupmotSetArg(args, num_args, XmNstrikethruType, XmSINGLE_LINE);
+ iupMOT_SETARG(args, num_args, XmNstrikethruType, XmSINGLE_LINE);
else
- iupmotSetArg(args, num_args, XmNstrikethruType, XmNO_LINE);
+ iupMOT_SETARG(args, num_args, XmNstrikethruType, XmNO_LINE);
rendition = XmRenditionCreate(NULL, "", args, num_args);
diff --git a/iup/src/mot/iupmot_frame.c b/iup/src/mot/iupmot_frame.c
index 39de5d8..cfda44f 100755
--- a/iup/src/mot/iupmot_frame.c
+++ b/iup/src/mot/iupmot_frame.c
@@ -42,22 +42,33 @@ static int motFrameSetBgColorAttrib(Ihandle* ih, const char* value)
{
Pixel color;
- /* ignore given value, must use only from parent */
- value = iupBaseNativeParentGetBgColor(ih);
+ if (!iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
+ {
+ /* ignore given value, must use only from parent */
+ value = iupBaseNativeParentGetBgColor(ih);
+ }
color = iupmotColorGetPixelStr(value);
if (color != (Pixel)-1)
{
Widget title_label, child_manager;
- iupmotSetBgColor(ih->handle, color);
+ if (!iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
+ {
+ iupmotSetBgColor(ih->handle, color);
- child_manager = XtNameToWidget(ih->handle, "*child_manager");
- iupmotSetBgColor(child_manager, color);
+ child_manager = XtNameToWidget(ih->handle, "*child_manager");
+ iupmotSetBgColor(child_manager, color);
- title_label = XtNameToWidget(ih->handle, "*title_label");
- if (!title_label) return 1;
- iupmotSetBgColor(title_label, color);
+ title_label = XtNameToWidget(ih->handle, "*title_label");
+ if (!title_label) return 1;
+ iupmotSetBgColor(title_label, color);
+ }
+ else
+ {
+ child_manager = XtNameToWidget(ih->handle, "*child_manager");
+ iupmotSetBgColor(child_manager, color);
+ }
return 1;
}
@@ -171,22 +182,25 @@ static int motFrameMapMethod(Ihandle* ih)
{
char* value = iupAttribGetStr(ih, "SUNKEN");
if (iupStrBoolean(value))
- iupmotSetArg(args, num_args, XmNshadowType, XmSHADOW_IN);
+ iupMOT_SETARG(args, num_args, XmNshadowType, XmSHADOW_IN);
else
- iupmotSetArg(args, num_args, XmNshadowType, XmSHADOW_ETCHED_IN);
+ iupMOT_SETARG(args, num_args, XmNshadowType, XmSHADOW_ETCHED_IN);
+
+ if (iupAttribGet(ih, "BGCOLOR"))
+ iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1");
}
/* Core */
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
/* Manager */
- iupmotSetArg(args, num_args, XmNshadowThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);
/* Frame */
- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* no shadow margins */
- iupmotSetArg(args, num_args, XmNmarginWidth, 0); /* no shadow margins */
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* no shadow margins */
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); /* no shadow margins */
ih->handle = XtCreateManagedWidget(
iupDialogGetChildIdStr(ih), /* child identifier */
@@ -204,11 +218,11 @@ static int motFrameMapMethod(Ihandle* ih)
Widget title_label;
num_args = 0;
/* Label */
- iupmotSetArg(args, num_args, XmNlabelType, XmSTRING);
- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING);
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
/* Frame Constraint */
- iupmotSetArg(args, num_args, XmNchildType, XmFRAME_TITLE_CHILD);
+ iupMOT_SETARG(args, num_args, XmNchildType, XmFRAME_TITLE_CHILD);
title_label = XtCreateManagedWidget("title_label", xmLabelWidgetClass, ih->handle, args, num_args);
iupmotSetString(title_label, XmNlabelString, title);
}
diff --git a/iup/src/mot/iupmot_key.c b/iup/src/mot/iupmot_key.c
index 835b5d7..9897741 100755
--- a/iup/src/mot/iupmot_key.c
+++ b/iup/src/mot/iupmot_key.c
@@ -393,33 +393,33 @@ void iupmotKeyPressEvent(Widget w, Ihandle *ih, XEvent *evt, Boolean *cont)
void iupmotButtonKeySetStatus(unsigned int state, unsigned int but, char* status, int doubleclick)
{
if (state & ShiftMask)
- iupKEYSETSHIFT(status);
+ iupKEY_SETSHIFT(status);
if (state & ControlMask)
- iupKEYSETCONTROL(status);
+ iupKEY_SETCONTROL(status);
if ((state & Button1Mask) || but==Button1)
- iupKEYSETBUTTON1(status);
+ iupKEY_SETBUTTON1(status);
if ((state & Button2Mask) || but==Button2)
- iupKEYSETBUTTON2(status);
+ iupKEY_SETBUTTON2(status);
if ((state & Button3Mask) || but==Button3)
- iupKEYSETBUTTON3(status);
+ iupKEY_SETBUTTON3(status);
if ((state & Button4Mask) || but==Button4)
- iupKEYSETBUTTON4(status);
+ iupKEY_SETBUTTON4(status);
if ((state & Button5Mask) || but==Button5)
- iupKEYSETBUTTON5(status);
+ iupKEY_SETBUTTON5(status);
if (state & Mod1Mask || state & Mod5Mask) /* Alt */
- iupKEYSETALT(status);
+ iupKEY_SETALT(status);
if (state & Mod4Mask) /* Apple/Win */
- iupKEYSETSYS(status);
+ iupKEY_SETSYS(status);
if (doubleclick)
- iupKEYSETDOUBLE(status);
+ iupKEY_SETDOUBLE(status);
}
diff --git a/iup/src/mot/iupmot_label.c b/iup/src/mot/iupmot_label.c
index 52dfc9a..afff3c3 100755
--- a/iup/src/mot/iupmot_label.c
+++ b/iup/src/mot/iupmot_label.c
@@ -147,8 +147,10 @@ static int motLabelSetPaddingAttrib(Ihandle* ih, const char* value)
{
XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding,
XmNmarginWidth, ih->data->horiz_padding, NULL);
+ return 0;
}
- return 0;
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int motLabelMapMethod(Ihandle* ih)
@@ -165,12 +167,12 @@ static int motLabelMapMethod(Ihandle* ih)
if (iupStrEqualNoCase(value, "HORIZONTAL"))
{
ih->data->type = IUP_LABEL_SEP_HORIZ;
- iupmotSetArg(args, num_args, XmNorientation, XmHORIZONTAL);
+ iupMOT_SETARG(args, num_args, XmNorientation, XmHORIZONTAL);
}
else /* "VERTICAL" */
{
ih->data->type = IUP_LABEL_SEP_VERT;
- iupmotSetArg(args, num_args, XmNorientation, XmVERTICAL);
+ iupMOT_SETARG(args, num_args, XmNorientation, XmVERTICAL);
}
}
else
@@ -180,32 +182,32 @@ static int motLabelMapMethod(Ihandle* ih)
if (value)
{
ih->data->type = IUP_LABEL_IMAGE;
- iupmotSetArg(args, num_args, XmNlabelType, XmPIXMAP);
+ iupMOT_SETARG(args, num_args, XmNlabelType, XmPIXMAP);
}
else
{
ih->data->type = IUP_LABEL_TEXT;
- iupmotSetArg(args, num_args, XmNlabelType, XmSTRING);
+ iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING);
}
}
/* Core */
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
/* Primitive */
- iupmotSetArg(args, num_args, XmNtraversalOn, False);
- iupmotSetArg(args, num_args, XmNhighlightThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
+ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 0);
/* Label */
- iupmotSetArg(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */
- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
- iupmotSetArg(args, num_args, XmNmarginTop, 0); /* no extra margins */
- iupmotSetArg(args, num_args, XmNmarginLeft, 0);
- iupmotSetArg(args, num_args, XmNmarginBottom, 0);
- iupmotSetArg(args, num_args, XmNmarginRight, 0);
+ iupMOT_SETARG(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginTop, 0); /* no extra margins */
+ iupMOT_SETARG(args, num_args, XmNmarginLeft, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginBottom, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginRight, 0);
ih->handle = XtCreateManagedWidget(
iupDialogGetChildIdStr(ih), /* child identifier */
diff --git a/iup/src/mot/iupmot_list.c b/iup/src/mot/iupmot_list.c
index f8e73ed..800e6e9 100755
--- a/iup/src/mot/iupmot_list.c
+++ b/iup/src/mot/iupmot_list.c
@@ -143,15 +143,36 @@ void iupdrvListInsertItem(Ihandle* ih, int pos, const char* value)
motListAddSortedItem(ih, value);
else
motListAddItem(ih, pos, value);
+
+ iupListUpdateOldValue(ih, pos, 0);
}
void iupdrvListRemoveItem(Ihandle* ih, int pos)
{
/* The utility functions use 0=last 1=first */
if (ih->data->is_dropdown || ih->data->has_editbox)
+ {
+ if (ih->data->is_dropdown && !ih->data->has_editbox)
+ {
+ /* must check if removing the current item */
+ int curpos;
+ XtVaGetValues(ih->handle, XmNselectedPosition, &curpos, NULL);
+ if (pos == curpos && iupdrvListGetCount(ih)>1)
+ {
+ if (curpos > 0) curpos--;
+ else curpos++;
+
+ XtRemoveCallback(ih->handle, XmNselectionCallback, (XtCallbackProc)motListComboBoxSelectionCallback, (XtPointer)ih);
+ XtVaSetValues(ih->handle, XmNselectedPosition, curpos, NULL);
+ XtAddCallback(ih->handle, XmNselectionCallback, (XtCallbackProc)motListComboBoxSelectionCallback, (XtPointer)ih);
+ }
+ }
XmComboBoxDeletePos(ih->handle, pos+1);
+ }
else
XmListDeletePos(ih->handle, pos+1);
+
+ iupListUpdateOldValue(ih, pos, 1);
}
void iupdrvListRemoveAllItems(Ihandle* ih)
@@ -174,7 +195,7 @@ void iupdrvListRemoveAllItems(Ihandle* ih)
static char* motListGetIdValueAttrib(Ihandle* ih, const char* name_id)
{
int pos = iupListGetPos(ih, name_id);
- if (pos != -1)
+ if (pos >= 0)
{
XmString* items;
XtVaGetValues(ih->handle, XmNitems, &items, NULL);
@@ -852,8 +873,10 @@ static int motListSetNCAttrib(Ihandle* ih, const char* value)
Widget cbedit;
XtVaGetValues(ih->handle, XmNtextField, &cbedit, NULL);
XtVaSetValues(cbedit, XmNmaxLength, ih->data->nc, NULL);
+ return 0;
}
- return 0;
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int motListSetClipboardAttrib(Ihandle *ih, const char *value)
@@ -1181,32 +1204,32 @@ static int motListMapMethod(Ihandle* ih)
if (ih->data->is_dropdown || ih->data->has_editbox)
{
/* could not set XmNmappedWhenManaged to False because the list and the edit box where not displayed */
- /* iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); */
- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
- iupmotSetArg(args, num_args, XmNmarginHeight, 0);
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+ /* iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); */
+ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
if (iupAttribGetBoolean(ih, "CANFOCUS"))
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
else
- iupmotSetArg(args, num_args, XmNtraversalOn, False);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
- iupmotSetArg(args, num_args, XmNshadowThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
+ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);
if (ih->data->has_editbox)
{
if (ih->data->is_dropdown)
- iupmotSetArg(args, num_args, XmNcomboBoxType, XmDROP_DOWN_COMBO_BOX); /* hidden-list+edit */
+ iupMOT_SETARG(args, num_args, XmNcomboBoxType, XmDROP_DOWN_COMBO_BOX); /* hidden-list+edit */
else
- iupmotSetArg(args, num_args, XmNcomboBoxType, XmCOMBO_BOX); /* visible-list+edit */
+ iupMOT_SETARG(args, num_args, XmNcomboBoxType, XmCOMBO_BOX); /* visible-list+edit */
}
else
- iupmotSetArg(args, num_args, XmNcomboBoxType, XmDROP_DOWN_LIST); /* hidden-list */
+ iupMOT_SETARG(args, num_args, XmNcomboBoxType, XmDROP_DOWN_LIST); /* hidden-list */
ih->handle = XtCreateManagedWidget(
child_id, /* child identifier */
@@ -1220,13 +1243,13 @@ static int motListMapMethod(Ihandle* ih)
/* Create the scrolled window */
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
- iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);
- iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE);
- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */
- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */
- iupmotSetArg(args, num_args, XmNborderWidth, 0);
- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);
+ iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE);
+ iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */
+ iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */
+ iupMOT_SETARG(args, num_args, XmNborderWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
sb_win = XtCreateManagedWidget(
child_id, /* child identifier */
@@ -1243,34 +1266,34 @@ static int motListMapMethod(Ihandle* ih)
/* Create the list */
num_args = 0;
- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
if (iupAttribGetBoolean(ih, "CANFOCUS"))
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
else
- iupmotSetArg(args, num_args, XmNtraversalOn, False);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
- iupmotSetArg(args, num_args, XmNshadowThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
+ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);
- iupmotSetArg(args, num_args, XmNlistMarginHeight, 0); /* default padding */
- iupmotSetArg(args, num_args, XmNlistMarginWidth, 0);
- iupmotSetArg(args, num_args, XmNlistSpacing, 0);
- iupmotSetArg(args, num_args, XmNlistSizePolicy, XmCONSTANT); /* don't grow to fit, add scrollbar */
+ iupMOT_SETARG(args, num_args, XmNlistMarginHeight, 0); /* default padding */
+ iupMOT_SETARG(args, num_args, XmNlistMarginWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNlistSpacing, 0);
+ iupMOT_SETARG(args, num_args, XmNlistSizePolicy, XmCONSTANT); /* don't grow to fit, add scrollbar */
if (ih->data->is_multiple)
- iupmotSetArg(args, num_args, XmNselectionPolicy, XmEXTENDED_SELECT);
+ iupMOT_SETARG(args, num_args, XmNselectionPolicy, XmEXTENDED_SELECT);
else
- iupmotSetArg(args, num_args, XmNselectionPolicy, XmBROWSE_SELECT);
+ iupMOT_SETARG(args, num_args, XmNselectionPolicy, XmBROWSE_SELECT);
if (iupAttribGetBoolean(ih, "AUTOHIDE"))
- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED);
+ iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED);
else
- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC);
+ iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC);
ih->handle = XtCreateManagedWidget(
child_id, /* child identifier */
diff --git a/iup/src/mot/iupmot_loop.c b/iup/src/mot/iupmot_loop.c
index 828ddcd..c1f92ec 100755
--- a/iup/src/mot/iupmot_loop.c
+++ b/iup/src/mot/iupmot_loop.c
@@ -56,7 +56,7 @@ void iupdrvSetIdleFunction(Icallback f)
mot_idle_id = XtAppAddWorkProc(iupmot_appcontext, motIdlecbWorkProc, NULL);
}
-static int motLoopStep(void)
+static int motLoopProcessEvent(void)
{
XtAppProcessEvent(iupmot_appcontext, XtIMAll);
return (mot_exitmainloop)? IUP_CLOSE : IUP_DEFAULT;
@@ -79,7 +79,7 @@ int IupMainLoop(void)
while (!mot_exitmainloop)
{
- if (motLoopStep() == IUP_CLOSE)
+ if (motLoopProcessEvent() == IUP_CLOSE)
break;
}
@@ -88,19 +88,26 @@ int IupMainLoop(void)
return IUP_NOERROR;
}
+int IupLoopStepWait(void)
+{
+ while(!XtAppPending(iupmot_appcontext));
+
+ return motLoopProcessEvent();
+}
+
int IupLoopStep(void)
{
if (!XtAppPending(iupmot_appcontext))
return IUP_DEFAULT;
- return motLoopStep();
+ return motLoopProcessEvent();
}
void IupFlush(void)
{
while (XPending(iupmot_display) != 0)
{
- if (motLoopStep() == IUP_CLOSE)
+ if (motLoopProcessEvent() == IUP_CLOSE)
break;
}
diff --git a/iup/src/mot/iupmot_menu.c b/iup/src/mot/iupmot_menu.c
index be9b953..8f51334 100755
--- a/iup/src/mot/iupmot_menu.c
+++ b/iup/src/mot/iupmot_menu.c
@@ -125,7 +125,10 @@ static void motPopupMenuUnmapCallback(Widget w, Ihandle* ih, XtPointer call_data
static void motMenuUnMapMethod(Ihandle* ih)
{
if (iupMenuIsMenuBar(ih))
+ {
XtDestroyWidget(ih->handle);
+ ih->parent = NULL;
+ }
else
XtDestroyWidget(XtParent(ih->handle)); /* in this case the RowColumn widget is a child of a MenuShell. */
}
@@ -146,7 +149,6 @@ static int motMenuMapMethod(Ihandle* ih)
XmNrowColumnType, XmMENU_BAR,
XmNmarginHeight, 0,
XmNmarginWidth, 0,
- XmNresizeWidth, False,
NULL);
if (!ih->handle)
return IUP_ERROR;
@@ -161,8 +163,8 @@ static int motMenuMapMethod(Ihandle* ih)
if (iupAttribGetBoolean(ih, "RADIO"))
{
- iupmotSetArg(args, num_args, XmNpacking, XmPACK_COLUMN);
- iupmotSetArg(args, num_args, XmNradioBehavior, TRUE);
+ iupMOT_SETARG(args, num_args, XmNpacking, XmPACK_COLUMN);
+ iupMOT_SETARG(args, num_args, XmNradioBehavior, TRUE);
}
ih->handle = XmCreatePulldownMenu(
@@ -183,7 +185,7 @@ static int motMenuMapMethod(Ihandle* ih)
{
/* top level menu used for IupPopup */
- iupmotSetArg(args, num_args, XmNpopupEnabled, XmPOPUP_AUTOMATIC);
+ iupMOT_SETARG(args, num_args, XmNpopupEnabled, XmPOPUP_AUTOMATIC);
ih->handle = XmCreatePopupMenu(
iupmot_appshell,
@@ -307,19 +309,19 @@ static int motItemMapMethod(Ihandle* ih)
if (iupAttribGetBoolean(ih->parent, "RADIO"))
{
- iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);
- iupmotSetArg(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND);
- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX);
- iupmotSetArg(args, num_args, XmNindicatorSize, 13);
- iupmotSetArg(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0));
+ iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);
+ iupMOT_SETARG(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND);
+ iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX);
+ iupMOT_SETARG(args, num_args, XmNindicatorSize, 13);
+ iupMOT_SETARG(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0));
}
else
{
if (iupAttribGetBoolean(ih, "HIDEMARK"))
- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_NONE);
+ iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_NONE);
else
- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK);
- iupmotSetArg(args, num_args, XmNlabelType, iupAttribGet(ih, "TITLEIMAGE")? XmPIXMAP: XmSTRING);
+ iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK);
+ iupMOT_SETARG(args, num_args, XmNlabelType, iupAttribGet(ih, "TITLEIMAGE")? XmPIXMAP: XmSTRING);
}
ih->handle = XtCreateManagedWidget(
diff --git a/iup/src/mot/iupmot_progressbar.c b/iup/src/mot/iupmot_progressbar.c
index 7266d38..82fa178 100755
--- a/iup/src/mot/iupmot_progressbar.c
+++ b/iup/src/mot/iupmot_progressbar.c
@@ -98,25 +98,25 @@ static int motProgressBarMapMethod(Ihandle* ih)
Arg args[30];
/* Core */
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
/* Primitive */
- iupmotSetArg(args, num_args, XmNtraversalOn, False);
- iupmotSetArg(args, num_args, XmNhighlightThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
+ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 0);
/* Scale */
- iupmotSetArg(args, num_args, XmNminimum, 0);
- iupmotSetArg(args, num_args, XmNmaximum, SHRT_MAX);
- iupmotSetArg(args, num_args, XmNslidingMode, XmTHERMOMETER); /* thermometer effect */
- iupmotSetArg(args, num_args, XmNsliderMark, XmNONE);
- iupmotSetArg(args, num_args, XmNeditable, False);
- iupmotSetArg(args, num_args, XmNshowValue, XmNONE);
+ iupMOT_SETARG(args, num_args, XmNminimum, 0);
+ iupMOT_SETARG(args, num_args, XmNmaximum, SHRT_MAX);
+ iupMOT_SETARG(args, num_args, XmNslidingMode, XmTHERMOMETER); /* thermometer effect */
+ iupMOT_SETARG(args, num_args, XmNsliderMark, XmNONE);
+ iupMOT_SETARG(args, num_args, XmNeditable, False);
+ iupMOT_SETARG(args, num_args, XmNshowValue, XmNONE);
if (iupStrEqualNoCase(iupAttribGetStr(ih, "ORIENTATION"), "VERTICAL"))
{
- iupmotSetArg(args, num_args, XmNorientation, XmVERTICAL);
+ iupMOT_SETARG(args, num_args, XmNorientation, XmVERTICAL);
if (ih->currentheight < ih->currentwidth)
{
@@ -126,7 +126,7 @@ static int motProgressBarMapMethod(Ihandle* ih)
}
}
else
- iupmotSetArg(args, num_args, XmNorientation, XmHORIZONTAL);
+ iupMOT_SETARG(args, num_args, XmNorientation, XmHORIZONTAL);
ih->handle = XtCreateManagedWidget(
iupDialogGetChildIdStr(ih), /* child identifier */
diff --git a/iup/src/mot/iupmot_tabs.c b/iup/src/mot/iupmot_tabs.c
index 7c8a6b5..cafc41d 100755
--- a/iup/src/mot/iupmot_tabs.c
+++ b/iup/src/mot/iupmot_tabs.c
@@ -52,8 +52,10 @@ void iupdrvTabsSetCurrentTab(Ihandle* ih, int pos)
{
Ihandle* child = IupGetChild(ih, pos);
Ihandle* prev_child = IupGetChild(ih, iupdrvTabsGetCurrentTab(ih));
- IupSetAttribute(child, "VISIBLE", "YES");
- IupSetAttribute(prev_child, "VISIBLE", "NO");
+ Widget child_manager = (Widget)iupAttribGet(child, "_IUPTAB_CONTAINER");
+ Widget prev_child_manager = (Widget)iupAttribGet(prev_child, "_IUPTAB_CONTAINER");
+ XtMapWidget(child_manager);
+ if (prev_child_manager) XtUnmapWidget(prev_child_manager);
XtVaSetValues(ih->handle, XmNcurrentPageNumber, pos, NULL);
}
@@ -200,7 +202,7 @@ static int motTabsSetTabTypeAttrib(Ihandle* ih, const char* value)
ih->data->type = ITABS_TOP;
if (ih->handle)
- motTabsUpdateTabType(ih);
+ motTabsUpdateTabType(ih); /* for this to work must be updated in map */
return 0;
}
@@ -313,8 +315,10 @@ void motTabsPageChangedCallback(Widget w, Ihandle* ih, XmNotebookCallbackStruct
IFnnn cb;
Ihandle* child = IupGetChild(ih, nptr->page_number);
Ihandle* prev_child = IupGetChild(ih, nptr->prev_page_number);
- IupSetAttribute(child, "VISIBLE", "YES");
- IupSetAttribute(prev_child, "VISIBLE", "NO");
+ Widget child_manager = (Widget)iupAttribGet(child, "_IUPTAB_CONTAINER");
+ Widget prev_child_manager = (Widget)iupAttribGet(prev_child, "_IUPTAB_CONTAINER");
+ XtMapWidget(child_manager);
+ if (prev_child_manager) XtUnmapWidget(prev_child_manager);
cb = (IFnnn)IupGetCallback(ih, "TABCHANGE_CB");
if (cb)
@@ -397,12 +401,12 @@ static void motTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
/* Create tabs */
/* Label */
- iupmotSetArg(args, num_args, XmNlabelType, tabtitle? XmSTRING: XmPIXMAP);
- iupmotSetArg(args, num_args, XmNmarginHeight, 0);
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNlabelType, tabtitle? XmSTRING: XmPIXMAP);
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
/* Notebook Constraint */
- iupmotSetArg(args, num_args, XmNnotebookChildType, XmMAJOR_TAB);
- iupmotSetArg(args, num_args, XmNpageNumber, pos);
+ iupMOT_SETARG(args, num_args, XmNnotebookChildType, XmMAJOR_TAB);
+ iupMOT_SETARG(args, num_args, XmNpageNumber, pos);
tab_button = XtCreateManagedWidget("tab_button", xmPushButtonWidgetClass, ih->handle, args, num_args);
/* Disable Drag Source */
@@ -450,10 +454,8 @@ static void motTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
iupAttribSetStr(child, "_IUPMOT_TABBUTTON", (char*)tab_button);
iupAttribSetInt(child, "_IUPMOT_TABNUMBER", pos);
- if (pos == iupdrvTabsGetCurrentTab(ih))
- IupSetAttribute(child, "VISIBLE", "YES");
- else
- IupSetAttribute(child, "VISIBLE", "NO");
+ if (pos != iupdrvTabsGetCurrentTab(ih))
+ XtUnmapWidget(child_manager);
}
}
@@ -464,20 +466,11 @@ static void motTabsChildRemovedMethod(Ihandle* ih, Ihandle* child)
Widget child_manager = (Widget)iupAttribGet(child, "_IUPTAB_CONTAINER");
if (child_manager)
{
- int cur_pos, pos;
+ int pos;
Widget tab_button = (Widget)iupAttribGet(child, "_IUPMOT_TABBUTTON");
- cur_pos = iupdrvTabsGetCurrentTab(ih);
pos = iupAttribGetInt(child, "_IUPMOT_TABNUMBER"); /* did not work when using XtVaGetValues(child_manager, XmNpageNumber) */
- if (cur_pos == pos)
- {
- if (cur_pos == 0)
- cur_pos = 1;
- else
- cur_pos--;
-
- iupdrvTabsSetCurrentTab(ih, cur_pos);
- }
+ iupTabsTestRemoveTab(ih, pos);
XtDestroyWidget(tab_button);
XtDestroyWidget(child_manager);
@@ -501,22 +494,22 @@ static int motTabsMapMethod(Ihandle* ih)
return IUP_ERROR;
/* Core */
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
/* Manager */
- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
- iupmotSetArg(args, num_args, XmNhighlightThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
+ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 0);
/* Notebook */
- iupmotSetArg(args, num_args, XmNbindingType, XmNONE);
- iupmotSetArg(args, num_args, XmNbindingWidth, 0);
- iupmotSetArg(args, num_args, XmNfirstPageNumber, 0); /* IupTabs index always starts with zero */
- iupmotSetArg(args, num_args, XmNbackPageSize, 0);
- iupmotSetArg(args, num_args, XmNbackPageNumber, 1);
- iupmotSetArg(args, num_args, XmNframeShadowThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNbindingType, XmNONE);
+ iupMOT_SETARG(args, num_args, XmNbindingWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNfirstPageNumber, 0); /* IupTabs index always starts with zero */
+ iupMOT_SETARG(args, num_args, XmNbackPageSize, 0);
+ iupMOT_SETARG(args, num_args, XmNbackPageNumber, 1);
+ iupMOT_SETARG(args, num_args, XmNframeShadowThickness, 2);
ih->handle = XtCreateManagedWidget(
iupDialogGetChildIdStr(ih), /* child identifier */
@@ -589,5 +582,5 @@ void iupdrvTabsInitClass(Iclass* ic)
iupClassRegisterAttribute(ic, "TABORIENTATION", iupTabsGetTabOrientationAttrib, NULL, IUPAF_SAMEASSYSTEM, "HORIZONTAL", IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); /* can not be set, always HORIZONTAL in Motif */
iupClassRegisterAttributeId(ic, "TABTITLE", NULL, motTabsSetTabTitleAttrib, IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, motTabsSetTabImageAttrib, IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, motTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);
+ iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, motTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
}
diff --git a/iup/src/mot/iupmot_text.c b/iup/src/mot/iupmot_text.c
index 4a8f936..d9d2c74 100755
--- a/iup/src/mot/iupmot_text.c
+++ b/iup/src/mot/iupmot_text.c
@@ -142,8 +142,10 @@ static int motTextSetPaddingAttrib(Ihandle* ih, const char* value)
{
XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding,
XmNmarginWidth, ih->data->horiz_padding, NULL);
+ return 0;
}
- return 0;
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int motTextSetReadOnlyAttrib(Ihandle* ih, const char* value)
@@ -164,7 +166,7 @@ static char* motTextGetReadOnlyAttrib(Ihandle* ih)
static int motTextSetInsertAttrib(Ihandle* ih, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
if (!value)
return 0;
@@ -207,12 +209,12 @@ static char* motTextGetSelectedTextAttrib(Ihandle* ih)
static int motTextSetAppendAttrib(Ihandle* ih, const char* value)
{
XmTextPosition pos;
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
pos = XmTextGetLastPosition(ih->handle);
/* disable callbacks */
iupAttribSetStr(ih, "_IUPMOT_DISABLE_TEXT_CB", "1");
- if (ih->data->is_multiline && ih->data->append_newline)
+ if (ih->data->is_multiline && ih->data->append_newline && pos!=0)
XmTextInsert(ih->handle, pos, "\n");
if (value)
XmTextInsert(ih->handle, pos+1, (char*)value);
@@ -482,8 +484,12 @@ static int motTextSetNCAttrib(Ihandle* ih, const char* value)
if (!iupStrToInt(value, &ih->data->nc))
ih->data->nc = INT_MAX;
if (ih->handle)
+ {
XtVaSetValues(ih->handle, XmNmaxLength, ih->data->nc, NULL);
- return 0;
+ return 0;
+ }
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int motTextSetClipboardAttrib(Ihandle *ih, const char *value)
@@ -911,6 +917,10 @@ static void motTextLayoutUpdateMethod(Ihandle* ih)
Widget spinbox = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT");
if (spinbox && XmIsSpinBox(spinbox))
{
+ /* avoid abort in X */
+ if (ih->currentwidth == 0) ih->currentwidth = 1;
+ if (ih->currentheight == 0) ih->currentheight = 1;
+
XtVaSetValues(ih->handle,
XmNwidth, (XtArgVal)ih->currentwidth-ih->currentheight/2,
XmNheight, (XtArgVal)ih->currentheight,
@@ -952,13 +962,13 @@ static int motTextMapMethod(Ihandle* ih)
/* Create the scrolled window */
/******************************/
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
- iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);
- iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE);
- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */
- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */
- iupmotSetArg(args, num_args, XmNborderWidth, 0);
- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);
+ iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE);
+ iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */
+ iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */
+ iupMOT_SETARG(args, num_args, XmNborderWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
sb_win = XtCreateManagedWidget(
child_id, /* child identifier */
@@ -973,9 +983,9 @@ static int motTextMapMethod(Ihandle* ih)
child_id = "text";
num_args = 0;
- iupmotSetArg(args, num_args, XmNeditMode, XmMULTI_LINE_EDIT);
+ iupMOT_SETARG(args, num_args, XmNeditMode, XmMULTI_LINE_EDIT);
if (wordwrap)
- iupmotSetArg(args, num_args, XmNwordWrap, True);
+ iupMOT_SETARG(args, num_args, XmNwordWrap, True);
}
else
{
@@ -986,18 +996,18 @@ static int motTextMapMethod(Ihandle* ih)
Widget spinbox;
num_args = 0;
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between spin and text */
- iupmotSetArg(args, num_args, XmNborderWidth, 0);
- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
- iupmotSetArg(args, num_args, XmNmarginHeight, 0);
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
- iupmotSetArg(args, num_args, XmNarrowSize, 8);
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between spin and text */
+ iupMOT_SETARG(args, num_args, XmNborderWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNarrowSize, 8);
if (iupStrEqualNoCase(iupAttribGetStr(ih, "SPINALIGN"), "LEFT"))
- iupmotSetArg(args, num_args, XmNarrowLayout, XmARROWS_BEGINNING);
+ iupMOT_SETARG(args, num_args, XmNarrowLayout, XmARROWS_BEGINNING);
else
- iupmotSetArg(args, num_args, XmNarrowLayout, XmARROWS_END);
+ iupMOT_SETARG(args, num_args, XmNarrowLayout, XmARROWS_END);
spinbox = XtCreateManagedWidget(
child_id, /* child identifier */
@@ -1019,61 +1029,61 @@ static int motTextMapMethod(Ihandle* ih)
}
num_args = 0;
- iupmotSetArg(args, num_args, XmNeditMode, XmSINGLE_LINE_EDIT);
+ iupMOT_SETARG(args, num_args, XmNeditMode, XmSINGLE_LINE_EDIT);
if (spin)
{
/* Spin Constraints */
- iupmotSetArg(args, num_args, XmNspinBoxChildType, XmNUMERIC);
- iupmotSetArg(args, num_args, XmNminimumValue, 0);
- iupmotSetArg(args, num_args, XmNmaximumValue, 100);
- iupmotSetArg(args, num_args, XmNposition, 0);
+ iupMOT_SETARG(args, num_args, XmNspinBoxChildType, XmNUMERIC);
+ iupMOT_SETARG(args, num_args, XmNminimumValue, 0);
+ iupMOT_SETARG(args, num_args, XmNmaximumValue, 100);
+ iupMOT_SETARG(args, num_args, XmNposition, 0);
if (iupAttribGetBoolean(ih, "SPINWRAP"))
- iupmotSetArg(args, num_args, XmNwrap, TRUE);
+ iupMOT_SETARG(args, num_args, XmNwrap, TRUE);
else
- iupmotSetArg(args, num_args, XmNwrap, FALSE);
+ iupMOT_SETARG(args, num_args, XmNwrap, FALSE);
}
else
{
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
}
}
- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
if (iupAttribGetBoolean(ih, "CANFOCUS"))
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
else
- iupmotSetArg(args, num_args, XmNtraversalOn, False);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
- iupmotSetArg(args, num_args, XmNverifyBell, False);
- iupmotSetArg(args, num_args, XmNspacing, 0);
+ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
+ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNverifyBell, False);
+ iupMOT_SETARG(args, num_args, XmNspacing, 0);
if (iupAttribGetBoolean(ih, "BORDER"))
- iupmotSetArg(args, num_args, XmNshadowThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);
else
- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
if (ih->data->is_multiline)
{
if (ih->data->sb & IUP_SB_HORIZ)
- iupmotSetArg(args, num_args, XmNscrollHorizontal, True);
+ iupMOT_SETARG(args, num_args, XmNscrollHorizontal, True);
else
- iupmotSetArg(args, num_args, XmNscrollHorizontal, False);
+ iupMOT_SETARG(args, num_args, XmNscrollHorizontal, False);
if (ih->data->sb & IUP_SB_VERT)
- iupmotSetArg(args, num_args, XmNscrollVertical, True);
+ iupMOT_SETARG(args, num_args, XmNscrollVertical, True);
else
- iupmotSetArg(args, num_args, XmNscrollVertical, False);
+ iupMOT_SETARG(args, num_args, XmNscrollVertical, False);
}
ih->handle = XtCreateManagedWidget(
diff --git a/iup/src/mot/iupmot_toggle.c b/iup/src/mot/iupmot_toggle.c
index b18f24d..1fda258 100755
--- a/iup/src/mot/iupmot_toggle.c
+++ b/iup/src/mot/iupmot_toggle.c
@@ -236,8 +236,10 @@ static int motToggleSetPaddingAttrib(Ihandle* ih, const char* value)
{
XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding,
XmNmarginWidth, ih->data->horiz_padding, NULL);
+ return 0;
}
- return 0;
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static char* motToggleGetSelectColorAttrib(Ihandle* ih)
@@ -336,40 +338,40 @@ static int motToggleMapMethod(Ihandle* ih)
if (value)
{
ih->data->type = IUP_TOGGLE_IMAGE;
- iupmotSetArg(args, num_args, XmNlabelType, XmPIXMAP);
+ iupMOT_SETARG(args, num_args, XmNlabelType, XmPIXMAP);
}
else
{
ih->data->type = IUP_TOGGLE_TEXT;
- iupmotSetArg(args, num_args, XmNlabelType, XmSTRING);
+ iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING);
}
/* Core */
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
/* Primitive */
if (iupAttribGetBoolean(ih, "CANFOCUS"))
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
else
- iupmotSetArg(args, num_args, XmNtraversalOn, False);
- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
+ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
/* Label */
- iupmotSetArg(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */
- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
- iupmotSetArg(args, num_args, XmNmarginTop, 0); /* no extra margins */
- iupmotSetArg(args, num_args, XmNmarginLeft, 0);
- iupmotSetArg(args, num_args, XmNmarginBottom, 0);
- iupmotSetArg(args, num_args, XmNmarginRight, 0);
+ iupMOT_SETARG(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginTop, 0); /* no extra margins */
+ iupMOT_SETARG(args, num_args, XmNmarginLeft, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginBottom, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginRight, 0);
if (radio)
{
- iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);
- iupmotSetArg(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND);
+ iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);
+ iupMOT_SETARG(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND);
if (!iupAttribGet(radio, "_IUPMOT_LASTTOGGLE"))
{
@@ -380,33 +382,33 @@ static int motToggleMapMethod(Ihandle* ih)
else
{
if (ih->data->type == IUP_TOGGLE_TEXT && iupAttribGetBoolean(ih, "3STATE"))
- iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_INDETERMINATE);
+ iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_INDETERMINATE);
else
- iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);
- iupmotSetArg(args, num_args, XmNindicatorType, XmN_OF_MANY);
+ iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);
+ iupMOT_SETARG(args, num_args, XmNindicatorType, XmN_OF_MANY);
}
if (ih->data->type == IUP_TOGGLE_IMAGE)
{
- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_NONE);
- iupmotSetArg(args, num_args, XmNalignment, XmALIGNMENT_CENTER);
- iupmotSetArg(args, num_args, XmNshadowThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_NONE);
+ iupMOT_SETARG(args, num_args, XmNalignment, XmALIGNMENT_CENTER);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);
}
else
{
- iupmotSetArg(args, num_args, XmNspacing, 3);
- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX);
- iupmotSetArg(args, num_args, XmNalignment, XmALIGNMENT_BEGINNING);
+ iupMOT_SETARG(args, num_args, XmNspacing, 3);
+ iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX);
+ iupMOT_SETARG(args, num_args, XmNalignment, XmALIGNMENT_BEGINNING);
if (radio)
{
- iupmotSetArg(args, num_args, XmNindicatorSize, 13);
- iupmotSetArg(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0));
+ iupMOT_SETARG(args, num_args, XmNindicatorSize, 13);
+ iupMOT_SETARG(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0));
}
else
- iupmotSetArg(args, num_args, XmNindicatorSize, 15);
+ iupMOT_SETARG(args, num_args, XmNindicatorSize, 15);
- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
- iupmotSetArg(args, num_args, XmNdetailShadowThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNdetailShadowThickness, 2);
}
ih->handle = XtCreateManagedWidget(
diff --git a/iup/src/mot/iupmot_tree.c b/iup/src/mot/iupmot_tree.c
index eb230af..fa5ef09 100755
--- a/iup/src/mot/iupmot_tree.c
+++ b/iup/src/mot/iupmot_tree.c
@@ -46,48 +46,20 @@ typedef struct _motTreeItemData
Pixmap image, image_mask;
Pixmap image_expanded, image_expanded_mask;
unsigned char kind;
- void* userdata;
} motTreeItemData;
static void motTreeShowEditField(Ihandle* ih, Widget wItem);
-static int motTreeGetNodeId(Ihandle* ih, Widget wItem);
+static void motTreeRemoveNode(Ihandle* ih, Widget wItem, int del_data, int call_cb);
-typedef int (*motTreeNodeFunc)(Ihandle* ih, Widget wItem, void* userdata);
-
-static int motTreeForEach(Ihandle* ih, Widget wItem, motTreeNodeFunc func, void* userdata)
-{
- WidgetList wItemChildList = NULL;
- int i, numChild;
-
- if (!wItem)
- wItem = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
-
- if (!func(ih, wItem, userdata))
- return 0;
-
- numChild = XmContainerGetItemChildren(ih->handle, wItem, &wItemChildList);
- for (i=0; i<numChild; i++)
- {
- /* Recursively traverse child items */
- if (!motTreeForEach(ih, wItemChildList[i], func, userdata))
- {
- XtFree((char*)wItemChildList);
- return 0;
- }
- }
- if (wItemChildList) XtFree((char*)wItemChildList);
-
- return 1;
-}
/*****************************************************************************/
/* COPYING ITEMS (Branches and its children) */
/*****************************************************************************/
/* Insert the copied item in a new location. Returns the new item. */
-static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos, int full_copy)
+static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos, int is_copy)
{
- Widget wNewItem;
+ Widget wItemNew;
XmString title;
motTreeItemData *itemData;
Pixel fgcolor, bgcolor;
@@ -96,13 +68,13 @@ static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos
Pixmap image = XmUNSPECIFIED_PIXMAP, mask = XmUNSPECIFIED_PIXMAP;
unsigned char state;
- iupmotSetArg(args, num_args, XmNentryParent, wParent);
- iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing);
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
- iupmotSetArg(args, num_args, XmNviewType, XmSMALL_ICON);
- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNentryParent, wParent);
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, ih->data->spacing);
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNviewType, XmSMALL_ICON);
+ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
/* Get values to copy */
XtVaGetValues(wItem, XmNlabelString, &title,
@@ -113,49 +85,73 @@ static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos
XmNoutlineState, &state,
NULL);
- if (full_copy) /* during a full copy the userdata reference is not copied */
+ if (is_copy) /* during a copy the itemdata reference is not reused */
{
/* create a new one */
motTreeItemData* itemDataNew = malloc(sizeof(motTreeItemData));
memcpy(itemDataNew, itemData, sizeof(motTreeItemData));
- itemDataNew->userdata = NULL;
itemData = itemDataNew;
}
- iupmotSetArg(args, num_args, XmNlabelString, title);
- iupmotSetArg(args, num_args, XmNuserData, itemData);
- iupmotSetArg(args, num_args, XmNforeground, fgcolor);
- iupmotSetArg(args, num_args, XmNsmallIconPixmap, image);
- iupmotSetArg(args, num_args, XmNsmallIconMask, mask);
- iupmotSetArg(args, num_args, XmNoutlineState, state);
+ iupMOT_SETARG(args, num_args, XmNlabelString, title);
+ iupMOT_SETARG(args, num_args, XmNuserData, itemData);
+ iupMOT_SETARG(args, num_args, XmNforeground, fgcolor);
+ iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, image);
+ iupMOT_SETARG(args, num_args, XmNsmallIconMask, mask);
+ iupMOT_SETARG(args, num_args, XmNoutlineState, state);
- iupmotSetArg(args, num_args, XmNentryParent, wParent);
- iupmotSetArg(args, num_args, XmNpositionIndex, pos);
+ iupMOT_SETARG(args, num_args, XmNentryParent, wParent);
+ iupMOT_SETARG(args, num_args, XmNpositionIndex, pos);
XtVaGetValues(ih->handle, XmNbackground, &bgcolor, NULL);
- iupmotSetArg(args, num_args, XmNbackground, bgcolor);
+ iupMOT_SETARG(args, num_args, XmNbackground, bgcolor);
+
+ /* Add the new node */
+ wItemNew = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);
+ ih->data->node_count++;
+
+ XtRealizeWidget(wItemNew);
+
+ return wItemNew;
+}
+
+static void motTreeChildRebuildCacheRec(Ihandle* ih, Widget wItem, int *id)
+{
+ WidgetList itemChildList = NULL;
+ int i, numChild;
- wNewItem = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);
+ /* Check whether we have child items */
+ numChild = XmContainerGetItemChildren(ih->handle, wItem, &itemChildList);
+
+ for (i = 0; i < numChild; i++)
+ {
+ (*id)++;
+ ih->data->node_cache[*id].node_handle = itemChildList[i];
- /* Root always expanded */
- XtVaSetValues((Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"), XmNoutlineState, XmEXPANDED, NULL);
+ /* go recursive to children */
+ motTreeChildRebuildCacheRec(ih, itemChildList[i], id);
+ }
- XtRealizeWidget(wNewItem);
+ if (itemChildList) XtFree((char*)itemChildList);
+}
- return wNewItem;
+static void motTreeRebuildNodeCache(Ihandle* ih, int id, Widget wItem)
+{
+ ih->data->node_cache[id].node_handle = wItem;
+ motTreeChildRebuildCacheRec(ih, wItem, &id);
}
-static void motTreeCopyChildren(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int full_copy)
+static void motTreeCopyChildren(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int is_copy)
{
WidgetList wItemChildList = NULL;
int i = 0;
int numChild = XmContainerGetItemChildren(ih->handle, wItemSrc, &wItemChildList);
while(i != numChild)
{
- Widget wNewItem = motTreeCopyItem(ih, wItemChildList[i], wItemDst, i, full_copy); /* Use the same order they where enumerated */
+ Widget wItemNew = motTreeCopyItem(ih, wItemChildList[i], wItemDst, i, is_copy); /* Use the same order they where enumerated */
/* Recursively transfer all the items */
- motTreeCopyChildren(ih, wItemChildList[i], wNewItem, full_copy);
+ motTreeCopyChildren(ih, wItemChildList[i], wItemNew, is_copy);
/* Go to next sibling item */
i++;
@@ -165,12 +161,18 @@ static void motTreeCopyChildren(Ihandle* ih, Widget wItemSrc, Widget wItemDst, i
}
/* Copies all items in a branch to a new location. Returns the new branch node. */
-static Widget motTreeCopyNode(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int full_copy)
+static Widget motTreeCopyMoveNode(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int is_copy)
{
- Widget wNewItem, wParent;
+ Widget wItemNew, wParent;
motTreeItemData *itemDataDst;
unsigned char stateDst;
- int pos;
+ int pos, id_new, count, id_src, id_dst;
+
+ int old_count = ih->data->node_count;
+
+ id_src = iupTreeFindNodeId(ih, wItemSrc);
+ id_dst = iupTreeFindNodeId(ih, wItemDst);
+ id_new = id_dst+1; /* contains the position for a copy operation */
XtVaGetValues(wItemDst, XmNoutlineState, &stateDst,
XmNuserData, &itemDataDst,
@@ -184,17 +186,46 @@ static Widget motTreeCopyNode(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int
}
else
{
+ if (itemDataDst->kind == ITREE_BRANCH)
+ {
+ int child_count = iupdrvTreeTotalChildCount(ih, wItemDst);
+ id_new += child_count;
+ }
+
/* copy as next brother of item or collapsed branch */
XtVaGetValues(wItemDst, XmNentryParent, &wParent, NULL);
XtVaGetValues(wItemDst, XmNpositionIndex, &pos, NULL);
pos++;
}
- wNewItem = motTreeCopyItem(ih, wItemSrc, wParent, pos, full_copy);
+ /* move to the same place does nothing */
+ if (!is_copy && id_new == id_src)
+ return NULL;
+
+ wItemNew = motTreeCopyItem(ih, wItemSrc, wParent, pos, is_copy);
+
+ motTreeCopyChildren(ih, wItemSrc, wItemNew, is_copy);
+
+ count = ih->data->node_count - old_count;
+ iupTreeCopyMoveCache(ih, id_src, id_new, count, is_copy);
- motTreeCopyChildren(ih, wItemSrc, wNewItem, full_copy);
+ if (!is_copy)
+ {
+ /* Deleting the node (and its children) from the old position */
+ /* do not delete the itemdata, we reuse the references in CopyNode */
+ motTreeRemoveNode(ih, wItemSrc, 0, 0);
+
+ /* restore count, because we remove src */
+ ih->data->node_count = old_count;
+
+ /* compensate position for a move */
+ if (id_new > id_src)
+ id_new -= count;
+ }
- return wNewItem;
+ motTreeRebuildNodeCache(ih, id_new, wItemNew);
+
+ return wItemNew;
}
static void motTreeContainerDeselectAll(Ihandle *ih)
@@ -233,229 +264,181 @@ static void motTreeContainerSelectAll(Ihandle *ih)
XtCallActionProc(ih->handle, "ContainerSelectAll", (XEvent*)&ev, 0, 0);
}
-static Widget motTreeGetLastVisibleNode(Ihandle* ih, Widget wItem)
+static int motTreeIsNodeVisible(Widget wItem, Widget *wLastItemParent)
{
- unsigned char itemState;
-
- XtVaGetValues(wItem, XmNoutlineState, &itemState, NULL);
-
- if (itemState == XmEXPANDED)
+ unsigned char itemParentState;
+ Widget wItemParent = NULL;
+ XtVaGetValues(wItem, XmNentryParent, &wItemParent, NULL);
+ if (!wItemParent || wItemParent == *wLastItemParent)
+ return 1;
+ while(wItemParent)
{
- WidgetList wChildrenTree = NULL;
- int numChildren = XmContainerGetItemChildren(ih->handle, wItem, &wChildrenTree);
- if(numChildren)
- wItem = motTreeGetLastVisibleNode(ih, wChildrenTree[numChildren - 1]);
- if (wChildrenTree) XtFree((char*)wChildrenTree);
+ XtVaGetValues(wItemParent, XmNoutlineState, &itemParentState, NULL);
+ if (itemParentState != XmEXPANDED)
+ return 0;
+
+ XtVaGetValues(wItemParent, XmNentryParent, &wItemParent, NULL);
}
- return wItem;
+ /* save last parent */
+ XtVaGetValues(wItem, XmNentryParent, &wItemParent, NULL);
+ *wLastItemParent = wItemParent;
+ return 1;
}
-static Widget motTreeFindVisibleNodeId(Ihandle* ih, WidgetList itemList, int numItems, Widget itemNode)
+static Widget motTreeGetLastVisibleNode(Ihandle* ih)
{
- Widget itemChild;
- WidgetList itemChildList;
- int i = 0;
- int numChild;
- unsigned char itemState;
+ int i;
+ Widget wLastItemParent = NULL;
- while(i != numItems)
+ for (i = ih->data->node_count-1; i >= 0; i--)
{
- /* ID control to traverse items */
- ih->data->id_control++; /* not the real id since it counts only the visible ones */
-
- /* StateID founded! */
- if(itemList[i] == itemNode)
- return itemList[i];
-
- /* Check whether we have child items */
- itemChildList = NULL;
- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
- XtVaGetValues(itemList[i], XmNoutlineState, &itemState, NULL);
-
- /* The itemWidget has child and it is expanded (visible) */
- if (numChild && itemState == XmEXPANDED)
- {
- /* pass the list of children of this item */
- itemChild = motTreeFindVisibleNodeId(ih, itemChildList, numChild, itemNode);
-
- /* StateID founded! */
- if(itemChild)
- {
- XtFree((char*)itemChildList);
- return itemChild;
- }
- }
-
- if (itemChildList) XtFree((char*)itemChildList);
- /* Go to next sibling item */
- i++;
+ if (motTreeIsNodeVisible(ih->data->node_cache[i].node_handle, &wLastItemParent))
+ return ih->data->node_cache[i].node_handle;
}
- return NULL;
+ return ih->data->node_cache[0].node_handle; /* root is always visible */
}
-static Widget motTreeFindVisibleNodeFromId(Ihandle* ih, WidgetList itemList, int numItems)
+static Widget motTreeGetNextVisibleNode(Ihandle* ih, Widget wItem, int count)
{
- Widget itemChild;
- WidgetList itemChildList;
- int i = 0;
- int numChild;
- unsigned char itemState;
+ int i, id;
+ Widget wLastItemParent = NULL;
- while(i != numItems)
- {
- /* ID control to traverse items */
- ih->data->id_control--; /* not the real id since it counts only the visible ones */
+ id = iupTreeFindNodeId(ih, wItem);
+ id += count;
- /* StateID founded! */
- if(ih->data->id_control < 0)
- return itemList[i];
+ for (i = id; i < ih->data->node_count; i++)
+ {
+ if (motTreeIsNodeVisible(ih->data->node_cache[i].node_handle, &wLastItemParent))
+ return ih->data->node_cache[i].node_handle;
+ }
- /* Check whether we have child items */
- itemChildList = NULL;
- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
- XtVaGetValues(itemList[i], XmNoutlineState, &itemState, NULL);
+ return ih->data->node_cache[0].node_handle; /* root is always visible */
+}
- /* The itemWidget has child and it is expanded (visible) */
- if (numChild && itemState == XmEXPANDED)
- {
- /* pass the list of children of this item */
- itemChild = motTreeFindVisibleNodeFromId(ih, itemChildList, numChild);
+static Widget motTreeGetPreviousVisibleNode(Ihandle* ih, Widget wItem, int count)
+{
+ int i, id;
+ Widget wLastItemParent = NULL;
- /* StateID founded! */
- if(ih->data->id_control < 0)
- {
- if (itemChildList) XtFree((char*)itemChildList);
- return itemChild;
- }
- }
+ id = iupTreeFindNodeId(ih, wItem);
+ id -= count;
- if (itemChildList) XtFree((char*)itemChildList);
- /* Go to next sibling item */
- i++;
+ for (i = id; i >= 0; i--)
+ {
+ if (motTreeIsNodeVisible(ih->data->node_cache[i].node_handle, &wLastItemParent))
+ return ih->data->node_cache[i].node_handle;
}
- return NULL;
+ return motTreeGetLastVisibleNode(ih);
}
-static Widget motTreeGetNextVisibleNode(Ihandle* ih, Widget wRoot, Widget wItem)
+static void motTreeChildCountRec(Ihandle* ih, Widget wItem, int *count)
{
- Widget wNext;
+ WidgetList itemChildList = NULL;
+ int i, numChild;
- ih->data->id_control = -1;
- motTreeFindVisibleNodeId(ih, &wRoot, 1, wItem);
- ih->data->id_control++; /* more 1 visible node */
+ /* Check whether we have child items */
+ numChild = XmContainerGetItemChildren(ih->handle, wItem, &itemChildList);
- wNext = motTreeFindVisibleNodeFromId(ih, &wRoot, 1);
+ for (i = 0; i < numChild; i++)
+ {
+ (*count)++;
- if (ih->data->id_control >= 0)
- wNext = motTreeGetLastVisibleNode(ih, wRoot);
+ /* go recursive to children */
+ motTreeChildCountRec(ih, itemChildList[i], count);
+ }
- return wNext;
+ if (itemChildList) XtFree((char*)itemChildList);
}
-static Widget motTreeGetPreviousVisibleNode(Ihandle* ih, Widget wRoot, Widget wItem)
+int iupdrvTreeTotalChildCount(Ihandle* ih, Widget wItem)
{
- ih->data->id_control = -1;
- motTreeFindVisibleNodeId(ih, &wRoot, 1, wItem);
- ih->data->id_control--; /* less 1 visible node */
-
- if (ih->data->id_control < 0)
- ih->data->id_control = 0; /* Begin of tree = Root id */
-
- return motTreeFindVisibleNodeFromId(ih, &wRoot, 1);
+ int count = 0;
+ motTreeChildCountRec(ih, wItem, &count);
+ return count;
}
-static void motTreeUpdateBgColor(Ihandle* ih, WidgetList itemList, int numItems, Pixel bgcolor)
+static void motTreeUpdateBgColor(Ihandle* ih, Pixel bgcolor)
{
- WidgetList itemChildList;
- int i = 0;
- int numChild;
-
- while(i != numItems)
+ int i;
+ for (i = 0; i < ih->data->node_count; i++)
{
- XtVaSetValues(itemList[i], XmNbackground, bgcolor, NULL);
-
- /* Check whether we have child items */
- itemChildList = NULL;
- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
- if(numChild)
- motTreeUpdateBgColor(ih, itemChildList, numChild, bgcolor);
- if (itemChildList) XtFree((char*)itemChildList);
-
- /* Go to next sibling item */
- i++;
+ XtVaSetValues(ih->data->node_cache[i].node_handle, XmNbackground, bgcolor, NULL);
}
}
-static void motTreeUpdateImages(Ihandle* ih, WidgetList itemList, int numItems, int mode)
+static void motTreeUpdateImages(Ihandle* ih, int mode)
{
- motTreeItemData *itemData;
- int i = 0;
-
+ int i;
/* called when one of the default images is changed */
-
- while(i != numItems)
+ for (i = 0; i < ih->data->node_count; i++)
{
- /* Get node attributes */
- XtVaGetValues(itemList[i], XmNuserData, &itemData, NULL);
-
+ motTreeItemData *itemData;
+ Widget wItem = ih->data->node_cache[i].node_handle;
+
+ XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
+
if (itemData->kind == ITREE_BRANCH)
{
unsigned char itemState;
- XtVaGetValues(itemList[i], XmNoutlineState, &itemState, NULL);
+ XtVaGetValues(wItem, XmNoutlineState, &itemState, NULL);
if (itemState == XmEXPANDED)
{
if (mode == ITREE_UPDATEIMAGE_EXPANDED)
{
- XtVaSetValues(itemList[i], XmNsmallIconPixmap, (itemData->image_expanded!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded: (Pixmap)ih->data->def_image_expanded, NULL);
- XtVaSetValues(itemList[i], XmNsmallIconMask, (itemData->image_expanded_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded_mask: (Pixmap)ih->data->def_image_expanded_mask, NULL);
+ XtVaSetValues(wItem, XmNsmallIconPixmap, (itemData->image_expanded!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded: (Pixmap)ih->data->def_image_expanded, NULL);
+ XtVaSetValues(wItem, XmNsmallIconMask, (itemData->image_expanded_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded_mask: (Pixmap)ih->data->def_image_expanded_mask, NULL);
}
}
else
{
if (mode == ITREE_UPDATEIMAGE_COLLAPSED)
{
- XtVaSetValues(itemList[i], XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_collapsed, NULL);
- XtVaSetValues(itemList[i], XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_collapsed_mask, NULL);
+ XtVaSetValues(wItem, XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_collapsed, NULL);
+ XtVaSetValues(wItem, XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_collapsed_mask, NULL);
}
}
-
- /* Recursively traverse child items */
- {
- WidgetList itemChildList;
- int numChild;
- itemChildList = NULL;
- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
- motTreeUpdateImages(ih, itemChildList, numChild, mode);
- if (itemChildList) XtFree((char*)itemChildList);
- }
}
else
{
if (mode == ITREE_UPDATEIMAGE_LEAF)
{
- XtVaSetValues(itemList[i], XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_leaf, NULL);
- XtVaSetValues(itemList[i], XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_leaf_mask, NULL);
+ XtVaSetValues(wItem, XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_leaf, NULL);
+ XtVaSetValues(wItem, XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_leaf_mask, NULL);
}
}
-
- /* Go to next sibling node */
- i++;
}
}
-static int motTreeSelectFunc(Ihandle* ih, Widget wItem, int *select)
+static int motTreeIsNodeSelected(Widget wItem)
+{
+ unsigned char isSelected;
+ XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL);
+ if(isSelected == XmSELECTED)
+ return 1;
+ else
+ return 0;
+}
+
+static void motTreeSelectNode(Widget wItem, int select)
+{
+ if (select == -1)
+ select = !motTreeIsNodeSelected(wItem); /* toggle */
+
+ if (select)
+ XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);
+ else
+ XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
+}
+
+static int motTreeSelectFunc(Ihandle* ih, Widget wItem, int id, int *select)
{
int do_select = *select;
if (do_select == -1)
- {
- unsigned char isSelected;
- XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL);
- do_select = (isSelected == XmSELECTED)? 0: 1; /* toggle */
- }
+ do_select = !motTreeIsNodeSelected(wItem); /* toggle */
if (do_select)
XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);
@@ -463,272 +446,111 @@ static int motTreeSelectFunc(Ihandle* ih, Widget wItem, int *select)
XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
(void)ih;
+ (void)id;
return 1;
}
static void motTreeInvertAllNodeMarking(Ihandle* ih)
{
int select = -1;
- motTreeForEach(ih, NULL, (motTreeNodeFunc)motTreeSelectFunc, &select);
+ iupTreeForEach(ih, (iupTreeNodeFunc)motTreeSelectFunc, &select);
}
-typedef struct _motTreeRange{
- Widget wItem1, wItem2;
- char inside, clear;
-}motTreeRange;
-
-static int motTreeSelectRangeFunc(Ihandle* ih, Widget wItem, motTreeRange* range)
+static void motTreeSelectRange(Ihandle* ih, Widget wItem1, Widget wItem2, int clear)
{
- int end_range = 0;
-
- if (range->inside == 0) /* detect the range start */
- {
- if (range->wItem1 == wItem) range->inside=1;
- else if (range->wItem2 == wItem) range->inside=1;
- }
- else if (range->inside == 1) /* detect the range end */
+ int i;
+ int id1 = iupTreeFindNodeId(ih, wItem1);
+ int id2 = iupTreeFindNodeId(ih, wItem2);
+ if (id1 > id2)
{
- if (range->wItem1 == wItem) end_range=1;
- else if (range->wItem2 == wItem) end_range=1;
+ int tmp = id1;
+ id1 = id2;
+ id2 = tmp;
}
- if (range->inside == 1) /* if inside, select */
- XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);
- else if (range->clear) /* if outside and clear, unselect */
- XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
-
- if (end_range || (range->inside && range->wItem1==range->wItem2))
- range->inside=-1; /* update after selecting the node */
-
- (void)ih;
- return 1;
-}
-
-static void motTreeSelectRange(Ihandle* ih, Widget wItem1, Widget wItem2, int clear)
-{
- motTreeRange range;
- range.wItem1 = wItem1;
- range.wItem2 = wItem2;
- range.inside = 0;
- range.clear = (char)clear;
- motTreeForEach(ih, NULL, (motTreeNodeFunc)motTreeSelectRangeFunc, &range);
-}
-
-void motTreeExpandCollapseAllNodes(Ihandle* ih, WidgetList itemList, int numItems, unsigned char itemState)
-{
- WidgetList itemChildList;
- int numChild;
- int i = 0;
-
- while(i != numItems)
+ for (i = 0; i < ih->data->node_count; i++)
{
- /* Check whether we have child items */
- itemChildList = NULL;
- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
-
- if(numChild)
+ if (i < id1 || i > id2)
{
- XtVaSetValues(itemList[i], XmNoutlineState, itemState, NULL);
- motTreeExpandCollapseAllNodes(ih, itemChildList, numChild, itemState);
+ if (clear)
+ XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
}
-
- if (itemChildList) XtFree((char*)itemChildList);
- /* Go to next sibling item */
- i++;
+ else
+ XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmSELECTED, NULL);
}
}
-static void motTreeDestroyItemData(Ihandle* ih, Widget wItem)
+void motTreeExpandCollapseAllNodes(Ihandle* ih, unsigned char itemState)
{
- motTreeItemData *itemData = NULL;
- XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
- if (itemData)
+ int i;
+ /* called when one of the default images is changed */
+ for (i = 0; i < ih->data->node_count; i++)
{
- IFnis cb = (IFnis)IupGetCallback(ih, "NODEREMOVED_CB");
- if (cb) cb(ih, motTreeGetNodeId(ih, wItem), (char*)itemData->userdata);
- free(itemData);
- XtVaSetValues(wItem, XmNuserData, NULL, NULL);
- }
-}
-
-static void motTreeRemoveChildren(Ihandle* ih, WidgetList itemList, int numItems, int del_userdata)
-{
- WidgetList itemChildList;
- int numChild;
- int i = 0;
+ motTreeItemData *itemData;
+ Widget wItem = ih->data->node_cache[i].node_handle;
- while(i != numItems)
- {
+ XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
+
/* Check whether we have child items */
- itemChildList = NULL;
- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
- if (numChild)
- motTreeRemoveChildren(ih, itemChildList, numChild, del_userdata);
-
- if (del_userdata)
- motTreeDestroyItemData(ih, itemList[i]);
-
- XtDestroyWidget(itemList[i]);
-
- if (itemChildList) XtFree((char*)itemChildList);
- /* Go to next sibling item */
- i++;
+ if (itemData->kind == ITREE_BRANCH)
+ XtVaSetValues(wItem, XmNoutlineState, itemState, NULL);
}
}
-static void motTreeRemoveNode(Ihandle* ih, Widget wItem, int del_userdata)
+static void motTreeDestroyItemData(Ihandle* ih, Widget wItem, int del_data, IFns cb, int id)
{
- WidgetList wChildList = NULL;
- int numChild = XmContainerGetItemChildren(ih->handle, wItem, &wChildList);
- if (numChild)
- motTreeRemoveChildren(ih, wChildList, numChild, del_userdata);
- if (del_userdata)
- motTreeDestroyItemData(ih, wItem);
- XtDestroyWidget(wItem);
- if (wChildList) XtFree((char*)wChildList);
-}
-
-static Widget motTreeFindNodeID(Ihandle* ih, WidgetList itemList, int numItems, Widget itemNode)
-{
- Widget itemChild;
- WidgetList itemChildList;
- int i = 0;
- int numChild;
-
- while(i != numItems)
+ motTreeItemData *itemData = NULL;
+ XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
+ if (itemData)
{
- /* ID control to traverse items */
- ih->data->id_control++;
+ if (cb)
+ cb(ih, (char*)ih->data->node_cache[id].userdata);
- /* StateID founded! */
- if(itemList[i] == itemNode)
- return itemList[i];
-
- /* Check whether we have child items */
- itemChildList = NULL;
- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
- if(numChild)
+ if (del_data)
{
- /* pass the list of children of this item */
- itemChild = motTreeFindNodeID(ih, itemChildList, numChild, itemNode);
-
- /* StateID founded! */
- if(itemChild)
- {
- if (itemChildList) XtFree((char*)itemChildList);
- return itemChild;
- }
+ free(itemData);
+ XtVaSetValues(wItem, XmNuserData, NULL, NULL);
}
-
- if (itemChildList) XtFree((char*)itemChildList);
- /* Go to next sibling item */
- i++;
}
-
- return NULL;
}
-static Widget motTreeFindNodeFromID(Ihandle* ih, WidgetList itemList, int numItems)
+static void motTreeRemoveNodeRec(Ihandle* ih, Widget wItem, int del_data, IFns cb, int *id)
{
- Widget itemChild;
- WidgetList itemChildList;
- int i = 0;
- int numChild;
+ WidgetList itemChildList = NULL;
+ int i, numChild;
+ int old_id = *id;
- while(i != numItems)
+ /* Check whether we have child items */
+ /* remove from children first */
+ numChild = XmContainerGetItemChildren(ih->handle, wItem, &itemChildList);
+ for (i = 0; i < numChild; i++)
{
- /* ID control to traverse items */
- ih->data->id_control--;
-
- /* StateID founded! */
- if(ih->data->id_control < 0)
- return itemList[i];
-
- /* Check whether we have child items */
- itemChildList = NULL;
- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
- if(numChild)
- {
- /* pass the list of children of this item */
- itemChild = motTreeFindNodeFromID(ih, itemChildList, numChild);
-
- /* StateID founded! */
- if(ih->data->id_control < 0)
- {
- if (itemChildList) XtFree((char*)itemChildList);
- return itemChild;
- }
- }
-
- if (itemChildList) XtFree((char*)itemChildList);
- /* Go to next sibling item */
- i++;
+ /* go recursive to children */
+ motTreeRemoveNodeRec(ih, itemChildList[i], del_data, cb, id);
}
+ if (itemChildList) XtFree((char*)itemChildList);
- return NULL;
-}
+ /* actually do it for the node */
+ ih->data->node_count--;
+ (*id)++;
-static int motTreeGetNodeId(Ihandle* ih, Widget wItem)
-{
- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
- ih->data->id_control = -1;
- if (motTreeFindNodeID(ih, &wRoot, 1, wItem))
- return ih->data->id_control;
- else
- return -1;
+ if (del_data || cb)
+ motTreeDestroyItemData(ih, wItem, del_data, cb, old_id);
+
+ XtDestroyWidget(wItem); /* must manually destroy each node, this is NOT recursive */
}
-static Widget motTreeFindUserDataID(Ihandle* ih, WidgetList itemList, int numItems, void* userdata)
+static void motTreeRemoveNode(Ihandle* ih, Widget wItem, int del_data, int call_cb)
{
- Widget itemChild;
- WidgetList itemChildList;
- motTreeItemData *itemData;
- int i = 0;
- int numChild;
-
- while(i != numItems)
- {
- /* ID control to traverse items */
- ih->data->id_control++;
-
- XtVaGetValues(itemList[i], XmNuserData, &itemData, NULL);
-
- /* StateID founded! */
- if(itemData->userdata == userdata)
- return itemList[i];
+ IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL;
+ int old_count = ih->data->node_count;
+ int id = iupTreeFindNodeId(ih, wItem);
+ int old_id = id;
- /* Check whether we have child items */
- itemChildList = NULL;
- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
- if(numChild)
- {
- /* pass the list of children of this item */
- itemChild = motTreeFindUserDataID(ih, itemChildList, numChild, userdata);
-
- /* StateID founded! */
- if (itemChild)
- {
- if (itemChildList) XtFree((char*)itemChildList);
- return itemChild;
- }
- }
+ motTreeRemoveNodeRec(ih, wItem, del_data, cb, &id);
- if (itemChildList) XtFree((char*)itemChildList);
- /* Go to next sibling item */
- i++;
- }
-
- return NULL;
-}
-
-static int motTreeGetUserDataId(Ihandle* ih, void* userdata)
-{
- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
- ih->data->id_control = -1;
- if (motTreeFindUserDataID(ih, &wRoot, 1, userdata))
- return ih->data->id_control;
- else
- return -1;
+ if (call_cb)
+ iupTreeDelFromCache(ih, old_id, old_count-ih->data->node_count);
}
static void motTreeSetFocusNode(Ihandle* ih, Widget wItem)
@@ -737,7 +559,7 @@ static void motTreeSetFocusNode(Ihandle* ih, Widget wItem)
XmProcessTraversal(wItem, XmTRAVERSE_CURRENT);
}
-static Widget motTreeGetFocusNode(Ihandle* ih)
+Widget iupdrvTreeGetFocusNode(Ihandle* ih)
{
Widget wItem = XmGetFocusWidget(ih->handle); /* returns the focus in the dialog */
if (wItem && XtParent(wItem) == ih->handle) /* is a node */
@@ -746,18 +568,6 @@ static Widget motTreeGetFocusNode(Ihandle* ih)
return (Widget)iupAttribGet(ih, "_IUPTREE_LAST_FOCUS");
}
-static Widget motTreeFindNodeFromString(Ihandle* ih, const char* name_id)
-{
- if (name_id[0])
- {
- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
- iupStrToInt(name_id, &ih->data->id_control);
- return motTreeFindNodeFromID(ih, &wRoot, 1);
- }
- else
- return motTreeGetFocusNode(ih);
-}
-
static void motTreeEnterLeaveWindowEvent(Widget w, Ihandle *ih, XEvent *evt, Boolean *cont)
{
if (iupAttribGet(ih, "_IUPTREE_EDITFIELD"))
@@ -812,16 +622,24 @@ static void motTreeFocusChangeEvent(Widget w, Ihandle *ih, XEvent *evt, Boolean
void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* title, int add)
{
- Widget wItemPrev = motTreeFindNodeFromString(ih, name_id);
- Widget wNewItem;
+ Widget wItemPrev = iupTreeGetNodeFromString(ih, name_id);
+ Widget wItemNew;
XmString itemTitle;
- motTreeItemData *itemData, *itemDataPrev;
+ motTreeItemData *itemData;
Pixel bgcolor, fgcolor;
- int kindPrev, num_args = 0;
+ int kindPrev = 0, num_args = 0;
Arg args[30];
if (!wItemPrev)
- return;
+ {
+ /* check if the root was really specified */
+ int id = 0;
+ if (!iupStrToInt(name_id, &id) || id != -1)
+ return;
+ }
+
+ if (!title)
+ title = "";
itemData = calloc(1, sizeof(motTreeItemData));
itemData->image = XmUNSPECIFIED_PIXMAP;
@@ -836,138 +654,103 @@ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t
XtVaGetValues(ih->handle, XmNforeground, &fgcolor, NULL);
XtVaGetValues(ih->handle, XmNbackground, &bgcolor, NULL);
- /* Get the kind of previous item */
- XtVaGetValues(wItemPrev, XmNuserData, &itemDataPrev, NULL);
- kindPrev = itemDataPrev->kind;
-
- if (kindPrev == ITREE_BRANCH && add)
+ if (wItemPrev)
{
- /* wItemPrev is parent of the new item (firstchild of it) */
- iupmotSetArg(args, num_args, XmNentryParent, wItemPrev);
- iupmotSetArg(args, num_args, XmNpositionIndex, 0);
- }
- else
- {
- /* wItemPrev is sibling of the new item (set its parent to the new item) */
- Widget wItemParent;
- int pos;
+ motTreeItemData *itemDataPrev;
- XtVaGetValues(wItemPrev, XmNentryParent, &wItemParent, NULL);
- XtVaGetValues(wItemPrev, XmNpositionIndex, &pos, NULL);
+ /* Get the kind of previous item */
+ XtVaGetValues(wItemPrev, XmNuserData, &itemDataPrev, NULL);
+ kindPrev = itemDataPrev->kind;
+
+ if (kindPrev == ITREE_BRANCH && add)
+ {
+ /* wItemPrev is parent of the new item (firstchild of it) */
+ iupMOT_SETARG(args, num_args, XmNentryParent, wItemPrev);
+ iupMOT_SETARG(args, num_args, XmNpositionIndex, 0);
+ }
+ else
+ {
+ /* wItemPrev is sibling of the new item (set its parent to the new item) */
+ Widget wItemParent;
+ int pos;
- iupmotSetArg(args, num_args, XmNentryParent, wItemParent);
- iupmotSetArg(args, num_args, XmNpositionIndex, pos+1);
+ XtVaGetValues(wItemPrev, XmNentryParent, &wItemParent, NULL);
+ XtVaGetValues(wItemPrev, XmNpositionIndex, &pos, NULL);
+
+ iupMOT_SETARG(args, num_args, XmNentryParent, wItemParent);
+ iupMOT_SETARG(args, num_args, XmNpositionIndex, pos+1);
+ }
}
- iupmotSetArg(args, num_args, XmNuserData, itemData);
- iupmotSetArg(args, num_args, XmNforeground, fgcolor);
- iupmotSetArg(args, num_args, XmNbackground, bgcolor);
- iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing);
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
- iupmotSetArg(args, num_args, XmNviewType, XmSMALL_ICON);
- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
- iupmotSetArg(args, num_args, XmNlabelString, itemTitle);
+ iupMOT_SETARG(args, num_args, XmNuserData, itemData);
+ iupMOT_SETARG(args, num_args, XmNforeground, fgcolor);
+ iupMOT_SETARG(args, num_args, XmNbackground, bgcolor);
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, ih->data->spacing);
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNviewType, XmSMALL_ICON);
+ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNlabelString, itemTitle);
if (kind == ITREE_BRANCH)
{
if (ih->data->add_expanded)
{
- iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_expanded);
- iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_expanded_mask);
+ iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, ih->data->def_image_expanded);
+ iupMOT_SETARG(args, num_args, XmNsmallIconMask, ih->data->def_image_expanded_mask);
}
else
{
- iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_collapsed);
- iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_collapsed_mask);
+ iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, ih->data->def_image_collapsed);
+ iupMOT_SETARG(args, num_args, XmNsmallIconMask, ih->data->def_image_collapsed_mask);
}
}
else
{
- iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_leaf);
- iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_leaf_mask);
+ iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, ih->data->def_image_leaf);
+ iupMOT_SETARG(args, num_args, XmNsmallIconMask, ih->data->def_image_leaf_mask);
}
+ /* Add the new node */
+ wItemNew = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);
+ if (wItemPrev)
+ iupTreeAddToCache(ih, add, kindPrev, wItemPrev, wItemNew);
+ else
+ {
+ iupTreeAddToCache(ih, 0, 0, NULL, wItemNew);
+
+ if (ih->data->node_count == 1)
+ {
+ /* MarkStart node */
+ iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)wItemNew);
- wNewItem = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);
+ /* Set the default VALUE */
+ motTreeSetFocusNode(ih, wItemNew);
+ }
+ }
if (kind == ITREE_BRANCH)
{
+ iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", "1");
if (ih->data->add_expanded)
- {
- iupAttribSetStr(ih, "_IUP_IGNORE_BRANCHOPEN", "1");
- XtVaSetValues(wNewItem, XmNoutlineState, XmEXPANDED, NULL);
- }
+ XtVaSetValues(wItemNew, XmNoutlineState, XmEXPANDED, NULL);
else
- XtVaSetValues(wNewItem, XmNoutlineState, XmCOLLAPSED, NULL);
+ XtVaSetValues(wItemNew, XmNoutlineState, XmCOLLAPSED, NULL);
+ iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", NULL);
}
- /* Root always expanded */
- XtVaSetValues((Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"), XmNoutlineState, XmEXPANDED, NULL);
-
- XtRealizeWidget(wNewItem);
+ XtRealizeWidget(wItemNew);
XmStringFree(itemTitle);
}
-static void motTreeAddRootNode(Ihandle* ih)
-{
- Widget wRootItem;
- motTreeItemData *itemData;
- Pixel bgcolor, fgcolor;
- int num_args = 0;
- Arg args[30];
-
- itemData = calloc(1, sizeof(motTreeItemData));
- itemData->image = XmUNSPECIFIED_PIXMAP;
- itemData->image_expanded = XmUNSPECIFIED_PIXMAP;
- itemData->image_mask = XmUNSPECIFIED_PIXMAP;
- itemData->image_expanded_mask = XmUNSPECIFIED_PIXMAP;
- itemData->kind = ITREE_BRANCH;
-
- /* Get default foreground color */
- XtVaGetValues(ih->handle, XmNforeground, &fgcolor, NULL);
- XtVaGetValues(ih->handle, XmNbackground, &bgcolor, NULL);
-
- iupmotSetArg(args, num_args, XmNentryParent, NULL);
- iupmotSetArg(args, num_args, XmNuserData, itemData);
- iupmotSetArg(args, num_args, XmNforeground, fgcolor);
- iupmotSetArg(args, num_args, XmNbackground, bgcolor);
- iupmotSetArg(args, num_args, XmNoutlineState, XmEXPANDED);
- iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing);
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
- iupmotSetArg(args, num_args, XmNviewType, XmSMALL_ICON);
- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
- iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_expanded);
- iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_expanded_mask);
-
- wRootItem = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);
-
- /* Select the new item */
- XtVaSetValues(wRootItem, XmNvisualEmphasis, XmSELECTED, NULL);
-
- XtRealizeWidget(wRootItem);
-
- /* Save the root node for later use */
- iupAttribSetStr(ih, "_IUPTREE_ROOTITEM", (char*)wRootItem);
-
- /* MarkStart node */
- iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)wRootItem);
-
- /* Set the default VALUE */
- /* In Motif this will set also the current focus */
- motTreeSetFocusNode(ih, wRootItem);
-}
-
/*****************************************************************************/
static int motTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const char* value)
{
motTreeItemData *itemData;
unsigned char itemState;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return 0;
@@ -1003,7 +786,7 @@ static int motTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const
static int motTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* value)
{
motTreeItemData *itemData;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return 0;
@@ -1053,7 +836,6 @@ static int motTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v
static int motTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value)
{
- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
ih->data->def_image_expanded = iupImageGetImage(value, ih, 0);
if (!ih->data->def_image_expanded)
{
@@ -1067,14 +849,13 @@ static int motTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value)
}
/* Update all images, starting at root node */
- motTreeUpdateImages(ih, &wRoot, 1, ITREE_UPDATEIMAGE_EXPANDED);
+ motTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED);
return 1;
}
static int motTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value)
{
- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
ih->data->def_image_collapsed = iupImageGetImage(value, ih, 0);
if (!ih->data->def_image_collapsed)
{
@@ -1088,14 +869,13 @@ static int motTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value)
}
/* Update all images, starting at root node */
- motTreeUpdateImages(ih, &wRoot, 1, ITREE_UPDATEIMAGE_COLLAPSED);
+ motTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED);
return 1;
}
static int motTreeSetImageLeafAttrib(Ihandle* ih, const char* value)
{
- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
ih->data->def_image_leaf = iupImageGetImage(value, ih, 0);
if (!ih->data->def_image_leaf)
{
@@ -1109,7 +889,7 @@ static int motTreeSetImageLeafAttrib(Ihandle* ih, const char* value)
}
/* Update all images, starting at root node */
- motTreeUpdateImages(ih, &wRoot, 1, ITREE_UPDATEIMAGE_LEAF);
+ motTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF);
return 1;
}
@@ -1118,7 +898,7 @@ static char* motTreeGetStateAttrib(Ihandle* ih, const char* name_id)
{
int hasChildren;
unsigned char itemState;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return 0;
@@ -1138,14 +918,21 @@ static char* motTreeGetStateAttrib(Ihandle* ih, const char* name_id)
static int motTreeSetStateAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
- if (!wItem)
+ motTreeItemData *itemData;
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem)
return 0;
- if (iupStrEqualNoCase(value, "EXPANDED"))
- XtVaSetValues(wItem, XmNoutlineState, XmEXPANDED, NULL);
- else
- XtVaSetValues(wItem, XmNoutlineState, XmCOLLAPSED, NULL);
+ XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
+ if (itemData->kind == ITREE_BRANCH)
+ {
+ iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", "1");
+ if (iupStrEqualNoCase(value, "EXPANDED"))
+ XtVaSetValues(wItem, XmNoutlineState, XmEXPANDED, NULL);
+ else
+ XtVaSetValues(wItem, XmNoutlineState, XmCOLLAPSED, NULL);
+ iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", NULL);
+ }
return 0;
}
@@ -1155,7 +942,7 @@ static char* motTreeGetColorAttrib(Ihandle* ih, const char* name_id)
unsigned char r, g, b;
Pixel color;
char* str;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return NULL;
@@ -1170,7 +957,7 @@ static char* motTreeGetColorAttrib(Ihandle* ih, const char* name_id)
static int motTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* value)
{
Pixel color;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return 0;
@@ -1182,36 +969,33 @@ static int motTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v
static char* motTreeGetDepthAttrib(Ihandle* ih, const char* name_id)
{
- Widget wRoot;
- int dep = 0;
- char* depth;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ int depth = -1;
+ char* str;
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return NULL;
- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
-
- while((wRoot != wItem) && (wItem != NULL))
+ while(wItem != NULL)
{
XtVaGetValues(wItem, XmNentryParent, &wItem, NULL);
- dep++;
+ depth++;
}
- depth = iupStrGetMemory(10);
- sprintf(depth, "%d", dep);
- return depth;
+ str = iupStrGetMemory(10);
+ sprintf(str, "%d", depth);
+ return str;
}
static int motTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char* value)
{
Widget wItemDst, wParent, wItemSrc;
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
- wItemSrc = motTreeFindNodeFromString(ih, name_id);
+ wItemSrc = iupTreeGetNodeFromString(ih, name_id);
if (!wItemSrc)
return 0;
- wItemDst = motTreeFindNodeFromString(ih, value);
+ wItemDst = iupTreeGetNodeFromString(ih, value);
if (!wItemDst)
return 0;
@@ -1224,11 +1008,8 @@ static int motTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char
return 0;
}
- /* Copying the node and its children to the new position */
- motTreeCopyNode(ih, wItemSrc, wItemDst, 0); /* not a full copy, preserve user data */
-
- /* Deleting the node (and its children) inserted into the old position */
- motTreeRemoveNode(ih, wItemSrc, 0); /* do not delete the user data, we copy the references in CopyNode */
+ /* Move the node and its children to the new position */
+ motTreeCopyMoveNode(ih, wItemSrc, wItemDst, 0);
return 0;
}
@@ -1237,12 +1018,12 @@ static int motTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char
{
Widget wItemDst, wParent, wItemSrc;
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
- wItemSrc = motTreeFindNodeFromString(ih, name_id);
+ wItemSrc = iupTreeGetNodeFromString(ih, name_id);
if (!wItemSrc)
return 0;
- wItemDst = motTreeFindNodeFromString(ih, value);
+ wItemDst = iupTreeGetNodeFromString(ih, value);
if (!wItemDst)
return 0;
@@ -1255,8 +1036,8 @@ static int motTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char
return 0;
}
- /* Copying the node and its children to the new position */
- motTreeCopyNode(ih, wItemSrc, wItemDst, 1);
+ /* Copy the node and its children to the new position */
+ motTreeCopyMoveNode(ih, wItemSrc, wItemDst, 1);
return 0;
}
@@ -1265,7 +1046,7 @@ static char* motTreeGetParentAttrib(Ihandle* ih, const char* name_id)
{
Widget wItemParent;
char* str;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return NULL;
@@ -1275,7 +1056,7 @@ static char* motTreeGetParentAttrib(Ihandle* ih, const char* name_id)
return NULL;
str = iupStrGetMemory(10);
- sprintf(str, "%d", motTreeGetNodeId(ih, wItemParent));
+ sprintf(str, "%d", iupTreeFindNodeId(ih, wItemParent));
return str;
}
@@ -1283,7 +1064,7 @@ static char* motTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)
{
char* str;
WidgetList wList = NULL;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return NULL;
@@ -1293,30 +1074,10 @@ static char* motTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)
return str;
}
-static int motTreeCount(Ihandle* ih, Widget wItem)
-{
- WidgetList wList = NULL;
- int i, count = 0;
- int childCount = XmContainerGetItemChildren(ih->handle, wItem, &wList);
- count++;
- for (i=0; i<childCount; i++)
- count += motTreeCount(ih, wList[i]);
- if (wList) XtFree((char*)wList);
- return count;
-}
-
-static char* motTreeGetCountAttrib(Ihandle* ih)
-{
- char* str = iupStrGetMemory(10);
- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
- sprintf(str, "%d", motTreeCount(ih, wRoot));
- return str;
-}
-
static char* motTreeGetKindAttrib(Ihandle* ih, const char* name_id)
{
motTreeItemData *itemData;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return NULL;
@@ -1331,15 +1092,64 @@ static char* motTreeGetKindAttrib(Ihandle* ih, const char* name_id)
static char* motTreeGetValueAttrib(Ihandle* ih)
{
char* str;
- Widget wItem = motTreeGetFocusNode(ih);
+ Widget wItem = iupdrvTreeGetFocusNode(ih);
if (!wItem)
- return "0"; /* default VALUE is root */
+ {
+ if (ih->data->node_count)
+ return "0"; /* default VALUE is root */
+ else
+ return "-1";
+ }
str = iupStrGetMemory(10);
- sprintf(str, "%d", motTreeGetNodeId(ih, wItem));
+ sprintf(str, "%d", iupTreeFindNodeId(ih, wItem));
+ return str;
+}
+
+static char* motTreeGetMarkedNodesAttrib(Ihandle* ih)
+{
+ char* str;
+ int i;
+
+ if (ih->data->mark_mode==ITREE_MARK_SINGLE)
+ return NULL;
+
+ str = iupStrGetMemory(ih->data->node_count+1);
+
+ for (i=0; i<ih->data->node_count; i++)
+ {
+ if (motTreeIsNodeSelected(ih->data->node_cache[i].node_handle))
+ str[i] = '+';
+ else
+ str[i] = '-';
+ }
+
+ str[ih->data->node_count] = 0;
return str;
}
+static int motTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value)
+{
+ int count, i;
+
+ if (ih->data->mark_mode==ITREE_MARK_SINGLE || !value)
+ return 0;
+
+ count = strlen(value);
+ if (count > ih->data->node_count)
+ count = ih->data->node_count;
+
+ for (i=0; i<count; i++)
+ {
+ if (value[i] == '+')
+ XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmSELECTED, NULL);
+ else
+ XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
+ }
+
+ return 0;
+}
+
static int motTreeSetMarkAttrib(Ihandle* ih, const char* value)
{
if (ih->data->mark_mode==ITREE_MARK_SINGLE)
@@ -1353,21 +1163,16 @@ static int motTreeSetMarkAttrib(Ihandle* ih, const char* value)
motTreeInvertAllNodeMarking(ih);
else if(iupStrEqualPartial(value, "INVERT"))
{
- unsigned char isSelected;
- Widget wItem = motTreeFindNodeFromString(ih, &value[strlen("INVERT")]);
+ Widget wItem = iupTreeGetNodeFromString(ih, &value[strlen("INVERT")]);
if (!wItem)
return 0;
- XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL);
- if (isSelected == XmSELECTED)
- XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
- else
- XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);
+ motTreeSelectNode(wItem, -1);
}
else if(iupStrEqualNoCase(value, "BLOCK"))
{
Widget wItem = (Widget)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE");
- Widget wFocusItem = motTreeGetFocusNode(ih);
+ Widget wFocusItem = iupdrvTreeGetFocusNode(ih);
if(!wFocusItem || !wItem)
return 0;
motTreeSelectRange(ih, wFocusItem, wItem, 0);
@@ -1379,10 +1184,10 @@ static int motTreeSetMarkAttrib(Ihandle* ih, const char* value)
if (iupStrToStrStr(value, str1, str2, '-')!=2)
return 0;
- wItem1 = motTreeFindNodeFromString(ih, str1);
+ wItem1 = iupTreeGetNodeFromString(ih, str1);
if (!wItem1)
return 0;
- wItem2 = motTreeFindNodeFromString(ih, str2);
+ wItem2 = iupTreeGetNodeFromString(ih, str2);
if (!wItem2)
return 0;
@@ -1394,69 +1199,49 @@ static int motTreeSetMarkAttrib(Ihandle* ih, const char* value)
static int motTreeSetValueAttrib(Ihandle* ih, const char* value)
{
- Widget wRoot, wItem;
+ Widget wItem, wItemParent;
if (motTreeSetMarkAttrib(ih, value))
return 0;
- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
-
- if (iupStrEqualNoCase(value, "ROOT"))
- wItem = wRoot;
+ if (iupStrEqualNoCase(value, "ROOT") || iupStrEqualNoCase(value, "FIRST"))
+ wItem = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
else if(iupStrEqualNoCase(value, "LAST"))
- wItem = motTreeGetLastVisibleNode(ih, wRoot);
+ wItem = motTreeGetLastVisibleNode(ih);
else if(iupStrEqualNoCase(value, "PGUP"))
{
- Widget wItemFocus = motTreeGetFocusNode(ih);
+ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
if(!wItemFocus)
return 0;
- ih->data->id_control = -1;
- motTreeFindVisibleNodeId(ih, &wRoot, 1, wItemFocus);
- ih->data->id_control -= 10; /* less 10 visible nodes */
-
- if(ih->data->id_control < 0)
- ih->data->id_control = 0; /* Begin of tree = Root id */
-
- wItem = motTreeFindVisibleNodeFromId(ih, &wRoot, 1);
+ wItem = motTreeGetPreviousVisibleNode(ih, wItemFocus, 10);
}
else if(iupStrEqualNoCase(value, "PGDN"))
{
- Widget wNext, wItemFocus;
-
- wItemFocus = motTreeGetFocusNode(ih);
+ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
if(!wItemFocus)
return 0;
- ih->data->id_control = -1;
- motTreeFindVisibleNodeId(ih, &wRoot, 1, wItemFocus);
- ih->data->id_control += 10; /* more 10 visible nodes */
-
- wNext = motTreeFindVisibleNodeFromId(ih, &wRoot, 1);
-
- if (ih->data->id_control >= 0)
- wNext = motTreeGetLastVisibleNode(ih, wRoot);
-
- wItem = wNext;
+ wItem = motTreeGetNextVisibleNode(ih, wItemFocus, 10);
}
else if(iupStrEqualNoCase(value, "NEXT"))
{
- Widget wItemFocus = motTreeGetFocusNode(ih);
+ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
if (!wItemFocus)
return 0;
- wItem = motTreeGetNextVisibleNode(ih, wRoot, wItemFocus);
+ wItem = motTreeGetNextVisibleNode(ih, wItemFocus, 1);
}
else if(iupStrEqualNoCase(value, "PREVIOUS"))
{
- Widget wItemFocus = motTreeGetFocusNode(ih);
+ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
if(!wItemFocus)
return 0;
- wItem = motTreeGetPreviousVisibleNode(ih, wRoot, wItemFocus);
+ wItem = motTreeGetPreviousVisibleNode(ih, wItemFocus, 1);
}
else
- wItem = motTreeFindNodeFromString(ih, value);
+ wItem = iupTreeGetNodeFromString(ih, value);
if (!wItem)
return 0;
@@ -1471,17 +1256,26 @@ static int motTreeSetValueAttrib(Ihandle* ih, const char* value)
XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);
}
+
+ /* expand all parents */
+ XtVaGetValues(wItem, XmNentryParent, &wItemParent, NULL);
+ while(wItemParent)
+ {
+ XtVaSetValues(wItemParent, XmNoutlineState, XmEXPANDED, NULL);
+ XtVaGetValues(wItemParent, XmNentryParent, &wItemParent, NULL);
+ }
+
/* set focus (will scroll to visible) */
motTreeSetFocusNode(ih, wItem);
- iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", motTreeGetNodeId(ih, wItem));
+ iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", iupTreeFindNodeId(ih, wItem));
return 0;
}
static int motTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)
{
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return 0;
@@ -1492,14 +1286,11 @@ static int motTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)
static char* motTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)
{
- unsigned char isSelected;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return NULL;
- XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL);
-
- if(isSelected == XmSELECTED)
+ if (motTreeIsNodeSelected(wItem))
return "YES";
else
return "NO";
@@ -1507,7 +1298,7 @@ static char* motTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)
static int motTreeSetMarkedAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return 0;
@@ -1531,7 +1322,7 @@ static char* motTreeGetTitle(Widget wItem)
static char* motTreeGetTitleAttrib(Ihandle* ih, const char* name_id)
{
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return NULL;
return motTreeGetTitle(wItem);
@@ -1539,10 +1330,13 @@ static char* motTreeGetTitleAttrib(Ihandle* ih, const char* name_id)
static int motTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return 0;
+ if (!value)
+ value = "";
+
iupmotSetString(wItem, XmNlabelString, value);
return 0;
@@ -1551,7 +1345,7 @@ static int motTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* v
static int motTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const char* value)
{
XmFontList fontlist = NULL;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return 0;
@@ -1569,7 +1363,7 @@ static int motTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha
static char* motTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id)
{
XmFontList fontlist;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if (!wItem)
return NULL;
@@ -1577,118 +1371,81 @@ static char* motTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id)
return iupmotFindFontList(fontlist);
}
-static char* motTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id)
-{
- int id;
- char* str = (char*)(name_id+1); /* skip ':' */
- void* userdata = NULL;
- if (sscanf(str, "%p", &userdata)!=1)
- return NULL;
- id = motTreeGetUserDataId(ih, userdata);
- if (id == -1)
- return NULL;
- str = iupStrGetMemory(16);
- sprintf(str, "%d", id);
- return str;
-}
-
-static char* motTreeGetUserDataAttrib(Ihandle* ih, const char* name_id)
-{
- motTreeItemData *itemData;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
- if (!wItem)
- return NULL;
-
- XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
-
- return itemData->userdata;
-}
-
-static int motTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value)
-{
- motTreeItemData *itemData;
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
- if (!wItem)
- return 0;
-
- XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
- itemData->userdata = (void*)value;
-
- return 0;
-}
-
static int motTreeSetRenameAttrib(Ihandle* ih, const char* value)
{
if (ih->data->show_rename)
{
- IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");
- Widget wItemFocus = motTreeGetFocusNode(ih);
- if (cbShowRename)
- cbShowRename(ih, motTreeGetNodeId(ih, wItemFocus));
+ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
motTreeShowEditField(ih, wItemFocus);
}
- else
- {
- IFnis cbRenameNode = (IFnis)IupGetCallback(ih, "RENAMENODE_CB");
- if (cbRenameNode)
- {
- Widget wItemFocus = motTreeGetFocusNode(ih);
- cbRenameNode(ih, motTreeGetNodeId(ih, wItemFocus), motTreeGetTitle(wItemFocus));
- }
- }
(void)value;
return 0;
}
+static void motTreeRemoveAllNodes(Ihandle* ih, int call_cb)
+{
+ IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL;
+ int i, old_count = ih->data->node_count;
+ Widget wItem;
+
+ for (i = 0; i < ih->data->node_count; i++)
+ {
+ wItem = ih->data->node_cache[i].node_handle;
+
+ motTreeDestroyItemData(ih, wItem, 1, cb, i);
+
+ XtDestroyWidget(wItem); /* must manually destroy each node, this is NOT recursive */
+ }
+
+ ih->data->node_count = 0;
+
+ if (call_cb)
+ iupTreeDelFromCache(ih, 0, old_count);
+}
+
static int motTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
- if(iupStrEqualNoCase(value, "SELECTED")) /* selected here means the specified one */
+ if (iupStrEqualNoCase(value, "ALL"))
{
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
-
- /* the root node can't be deleted */
- if(!wItem || wItem == wRoot) /* root is the unique child */
+ motTreeRemoveAllNodes(ih, 1);
+ return 0;
+ }
+ if(iupStrEqualNoCase(value, "SELECTED")) /* selected here means the reference node */
+ {
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if(!wItem)
return 0;
- /* deleting the specified node (and it's children) */
- motTreeRemoveNode(ih, wItem, 1);
+ /* deleting the reference node (and it's children) */
+ motTreeRemoveNode(ih, wItem, 1, 1);
}
- else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the specified one */
+ else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the reference node */
{
- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+ int numChild, i;
+ WidgetList wItemList = NULL;
+ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
if(!wItem)
return 0;
- {
- /* deleting the selected node's children only */
- WidgetList wItemList = NULL;
- int numChild = XmContainerGetItemChildren(ih->handle, wItem, &wItemList);
- if(numChild)
- motTreeRemoveChildren(ih, wItemList, numChild, 1);
- if (wItemList) XtFree((char*)wItemList);
- }
+ /* deleting the reference node children only */
+ numChild = XmContainerGetItemChildren(ih->handle, wItem, &wItemList);
+ for(i = 0; i < numChild; i++)
+ motTreeRemoveNode(ih, wItemList[i], 1, 1);
+ if (wItemList) XtFree((char*)wItemList);
}
else if(iupStrEqualNoCase(value, "MARKED")) /* Delete the array of marked nodes */
{
- WidgetList wSelectedItemList = NULL;
- Widget wRoot;
- int countItems, i;
-
- XtVaGetValues(ih->handle, XmNselectedObjects, &wSelectedItemList,
- XmNselectedObjectCount, &countItems, NULL);
-
- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
-
- for(i = 0; i < countItems; i++)
+ int i;
+ for(i = 1; i < ih->data->node_count; /* increment only if not removed */)
{
- int ok = XmIsIconGadget(wSelectedItemList[i]);
- if ((wSelectedItemList[i] != wRoot) && ok) /* the root node can't be deleted */
- motTreeRemoveNode(ih, wSelectedItemList[i], 1);
+ if (motTreeIsNodeSelected(ih->data->node_cache[i].node_handle))
+ motTreeRemoveNode(ih, ih->data->node_cache[i].node_handle, 1, 1);
+ else
+ i++;
}
}
@@ -1714,7 +1471,7 @@ static int motTreeSetIndentationAttrib(Ihandle* ih, const char* value)
static int motTreeSetTopItemAttrib(Ihandle* ih, const char* value)
{
- Widget wItem = motTreeFindNodeFromString(ih, value);
+ Widget wItem = iupTreeGetNodeFromString(ih, value);
Widget sb_win;
Widget wItemParent;
@@ -1735,10 +1492,11 @@ static int motTreeSetTopItemAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int motTreeSpacingFunc(Ihandle* ih, Widget wItem, void *data)
+static int motTreeSpacingFunc(Ihandle* ih, Widget wItem, int id, void *data)
{
XtVaSetValues(wItem, XmNmarginHeight, ih->data->spacing, NULL);
(void)data;
+ (void)id;
return 1;
}
@@ -1752,7 +1510,7 @@ static int motTreeSetSpacingAttrib(Ihandle* ih, const char* value)
if (ih->handle)
{
- motTreeForEach(ih, NULL, (motTreeNodeFunc)motTreeSpacingFunc, 0);
+ iupTreeForEach(ih, (iupTreeNodeFunc)motTreeSpacingFunc, 0);
return 0;
}
else
@@ -1761,17 +1519,10 @@ static int motTreeSetSpacingAttrib(Ihandle* ih, const char* value)
static int motTreeSetExpandAllAttrib(Ihandle* ih, const char* value)
{
- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
-
if (iupStrBoolean(value))
- motTreeExpandCollapseAllNodes(ih, &wRoot, 1, XmEXPANDED);
+ motTreeExpandCollapseAllNodes(ih, XmEXPANDED);
else
- {
- motTreeExpandCollapseAllNodes(ih, &wRoot, 1, XmCOLLAPSED);
-
- /* The root node is always expanded */
- XtVaSetValues((Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"), XmNoutlineState, XmEXPANDED, NULL);
- }
+ motTreeExpandCollapseAllNodes(ih, XmCOLLAPSED);
return 0;
}
@@ -1801,16 +1552,13 @@ static int motTreeSetBgColorAttrib(Ihandle* ih, const char* value)
color = iupmotColorGetPixelStr(value);
if (color != (Pixel)-1)
{
- Widget wRoot;
Widget clipwin = NULL;
XtVaGetValues(sb_win, XmNclipWindow, &clipwin, NULL);
if (clipwin) iupmotSetBgColor(clipwin, color);
- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
-
/* Update all children, starting at root node */
- motTreeUpdateBgColor(ih, &wRoot, 1, color);
+ motTreeUpdateBgColor(ih, color);
}
iupdrvBaseSetBgColorAttrib(ih, value); /* use given value for contents */
@@ -1871,10 +1619,14 @@ static void motTreeSetRenameSelectionPos(Widget cbEdit, const char* value)
static int motTreeCallBranchCloseCb(Ihandle* ih, Widget wItem)
{
- IFni cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB");
+ IFni cbBranchClose;
+
+ if (iupAttribGet(ih, "_IUP_IGNORE_BRANCH_CB"))
+ return IUP_DEFAULT;
- if(cbBranchClose)
- return cbBranchClose(ih, motTreeGetNodeId(ih, wItem));
+ cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB");
+ if (cbBranchClose)
+ return cbBranchClose(ih, iupTreeFindNodeId(ih, wItem));
return IUP_DEFAULT;
}
@@ -1883,59 +1635,136 @@ static int motTreeCallBranchOpenCb(Ihandle* ih, Widget wItem)
{
IFni cbBranchOpen;
- if (iupAttribGet(ih, "_IUP_IGNORE_BRANCHOPEN"))
- {
- iupAttribSetStr(ih, "_IUP_IGNORE_BRANCHOPEN", NULL);
+ if (iupAttribGet(ih, "_IUP_IGNORE_BRANCH_CB"))
return IUP_DEFAULT;
- }
cbBranchOpen = (IFni)IupGetCallback(ih, "BRANCHOPEN_CB");
if (cbBranchOpen)
- return cbBranchOpen(ih, motTreeGetNodeId(ih, wItem));
+ return cbBranchOpen(ih, iupTreeFindNodeId(ih, wItem));
return IUP_DEFAULT;
}
+static void motTreeFindRange(Ihandle* ih, WidgetList wSelectedItemList, int countItems, int *id1, int *id2)
+{
+ int i = 0, id;
+
+ *id1 = ih->data->node_count;
+ *id2 = -1;
+
+ for(i = 0; i < countItems; i++)
+ {
+ int is_icon = XmIsIconGadget(wSelectedItemList[i]); /* this line generates a warning in some compilers */
+ if (is_icon)
+ {
+ id = iupTreeFindNodeId(ih, wSelectedItemList[i]);
+ if (id < *id1)
+ *id1 = id;
+ if (id > *id2)
+ *id2 = id;
+ }
+ }
+
+ /* interactive selection of several nodes will NOT select hidden nodes,
+ so make sure that they are selected. */
+ for(i = *id1; i <= *id2; i++)
+ {
+ if (!motTreeIsNodeSelected(ih->data->node_cache[i].node_handle))
+ XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmSELECTED, NULL);
+ }
+
+ /* if last selected item is a branch, then select its children */
+ iupTreeSelectLastCollapsedBranch(ih, id2);
+}
+
+static Iarray* motTreeGetSelectedArrayId(Ihandle* ih, WidgetList wSelectedItemList, int countItems)
+{
+ Iarray* selarray = iupArrayCreate(1, sizeof(int));
+ int i;
+
+ for(i = 0; i < countItems; i++)
+ {
+ int is_icon = XmIsIconGadget(wSelectedItemList[i]); /* this line generates a warning in some compilers */
+ if (is_icon)
+ {
+ int* id_hitem = (int*)iupArrayInc(selarray);
+ int j = iupArrayCount(selarray);
+ id_hitem[j-1] = iupTreeFindNodeId(ih, wSelectedItemList[i]);
+ }
+ }
+
+ return selarray;
+}
+
+static void motTreeCallMultiUnSelectionCb(Ihandle* ih)
+{
+ IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTIUNSELECTION_CB");
+ IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");
+ if (cbSelec || cbMulti)
+ {
+ WidgetList wSelectedItemList = NULL;
+ int countItems = 0;
+
+ XtVaGetValues(ih->handle, XmNselectedObjects, &wSelectedItemList,
+ XmNselectedObjectCount, &countItems, NULL);
+ if (countItems > 1)
+ {
+ Iarray* markedArray = motTreeGetSelectedArrayId(ih, wSelectedItemList, countItems);
+ int* id_hitem = (int*)iupArrayGetData(markedArray);
+ int i, count = iupArrayCount(markedArray);
+
+ if (cbMulti)
+ cbMulti(ih, id_hitem, iupArrayCount(markedArray));
+ else
+ {
+ for (i=0; i<count; i++)
+ cbSelec(ih, id_hitem[i], 0);
+ }
+
+ iupArrayDestroy(markedArray);
+ }
+ }
+}
+
static void motTreeCallMultiSelectionCb(Ihandle* ih)
{
IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTISELECTION_CB");
IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");
WidgetList wSelectedItemList = NULL;
- Widget wRoot;
- int countItems;
-
- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+ int countItems, id1, id2, i;
XtVaGetValues(ih->handle, XmNselectedObjects, &wSelectedItemList,
XmNselectedObjectCount, &countItems, NULL);
if (countItems == 0)
return;
- if (cbMulti || cbSelec)
+ /* Must be a continuous range of selection ids */
+ motTreeFindRange(ih, wSelectedItemList, countItems, &id1, &id2);
+ countItems = id2-id1+1;
+
+ if (cbMulti)
{
int* id_rowItem = malloc(sizeof(int) * countItems);
- int i = 0;
for(i = 0; i < countItems; i++)
- id_rowItem[i] = motTreeGetNodeId(ih, wSelectedItemList[i]);
+ id_rowItem[i] = id1+i;
- if (cbMulti)
- cbMulti(ih, id_rowItem, countItems);
- else
- {
- for (i=0; i<countItems; i++)
- cbSelec(ih, id_rowItem[i], 1);
- }
+ cbMulti(ih, id_rowItem, countItems);
free(id_rowItem);
}
+ else if (cbSelec)
+ {
+ for (i=0; i<countItems; i++)
+ cbSelec(ih, id1+i, 1);
+ }
}
static int motTreeConvertXYToPos(Ihandle* ih, int x, int y)
{
Widget wItem = XmObjectAtPoint(ih->handle, (Position)x, (Position)y);
if (wItem)
- return motTreeGetNodeId(ih, wItem);
+ return iupTreeFindNodeId(ih, wItem);
return -1;
}
@@ -1965,7 +1794,7 @@ static void motTreeCallRenameCb(Ihandle* ih)
cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB");
if (cbRename)
{
- if (cbRename(ih, motTreeGetNodeId(ih, wItem), title) == IUP_IGNORE)
+ if (cbRename(ih, iupTreeFindNodeId(ih, wItem), title) == IUP_IGNORE)
ignore = 1;
}
@@ -1993,8 +1822,8 @@ static int motTreeCallDragDropCb(Ihandle* ih, Widget wItemDrag, Widget wItemDrop
if (cbDragDrop)
{
- int drag_id = motTreeGetNodeId(ih, wItemDrag);
- int drop_id = motTreeGetNodeId(ih, wItemDrop);
+ int drag_id = iupTreeFindNodeId(ih, wItemDrag);
+ int drop_id = iupTreeFindNodeId(ih, wItemDrop);
return cbDragDrop(ih, drag_id, drop_id, is_shift, *is_ctrl);
}
@@ -2069,6 +1898,10 @@ static void motTreeShowEditField(Ihandle* ih, Widget wItem)
XmFontList fontlist;
Widget sb_win = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT");
+ IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");
+ if (cbShowRename && cbShowRename(ih, iupTreeFindNodeId(ih, wItem))==IUP_IGNORE)
+ return;
+
XtVaGetValues(wItem, XmNx, &x,
XmNy, &y,
XmNwidth, &w,
@@ -2083,16 +1916,16 @@ static void motTreeShowEditField(Ihandle* ih, Widget wItem)
iupdrvImageGetInfo((void*)image, &w_img, NULL, NULL);
w_img += 3; /* add some room for borders */
- iupmotSetArg(args, num_args, XmNx, x+w_img); /* x-position */
- iupmotSetArg(args, num_args, XmNy, y); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, w-w_img); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, h); /* default height to avoid 0 */
- iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing); /* default padding */
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
- iupmotSetArg(args, num_args, XmNforeground, color);
- iupmotSetArg(args, num_args, XmNrenderTable, fontlist);
- iupmotSetArg(args, num_args, XmNvalue, iupmotConvertString(title));
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+ iupMOT_SETARG(args, num_args, XmNx, x+w_img); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, y); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, w-w_img); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, h); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, ih->data->spacing); /* default padding */
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNforeground, color);
+ iupMOT_SETARG(args, num_args, XmNrenderTable, fontlist);
+ iupMOT_SETARG(args, num_args, XmNvalue, iupmotConvertString(title));
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
cbEdit = XtCreateManagedWidget(
child_id, /* child identifier */
@@ -2134,8 +1967,6 @@ static void motTreeSelectionCallback(Widget w, Ihandle* ih, XmContainerSelectCal
(void)w;
(void)nptr;
-printf("SelectionCallback(%d)\n", nptr->selected_item_count);
-
if (ih->data->mark_mode == ITREE_MARK_MULTIPLE)
{
char key[5];
@@ -2149,11 +1980,13 @@ printf("SelectionCallback(%d)\n", nptr->selected_item_count);
{
if (IupGetCallback(ih, "MULTISELECTION_CB"))
{
+ /* current selection same as the initial selection */
if (nptr->auto_selection_type==XmAUTO_NO_CHANGE)
motTreeCallMultiSelectionCb(ih);
}
else
{
+ /* current selection is caused by button drag */
if (nptr->auto_selection_type==XmAUTO_MOTION)
motTreeCallMultiSelectionCb(ih);
}
@@ -2164,14 +1997,10 @@ printf("SelectionCallback(%d)\n", nptr->selected_item_count);
cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");
if (cbSelec)
{
- Widget wItemFocus = motTreeGetFocusNode(ih);
- int curpos = motTreeGetNodeId(ih, wItemFocus);
+ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
+ int curpos = iupTreeFindNodeId(ih, wItemFocus);
if (is_ctrl)
- {
- unsigned char isSelected;
- XtVaGetValues(wItemFocus, XmNvisualEmphasis, &isSelected, NULL);
- cbSelec(ih, curpos, isSelected == XmSELECTED? 1: 0);
- }
+ cbSelec(ih, curpos, motTreeIsNodeSelected(wItemFocus));
else
{
int oldpos = iupAttribGetInt(ih, "_IUPTREE_OLDVALUE");
@@ -2218,7 +2047,7 @@ static void motTreeDefaultActionCallback(Widget w, Ihandle* ih, XmContainerSelec
{
IFni cbExecuteLeaf = (IFni)IupGetCallback(ih, "EXECUTELEAF_CB");
if (cbExecuteLeaf)
- cbExecuteLeaf(ih, motTreeGetNodeId(ih, wItem));
+ cbExecuteLeaf(ih, iupTreeFindNodeId(ih, wItem));
}
}
@@ -2295,15 +2124,14 @@ static void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean
iupmotHelpCallback(w, ih, NULL);
else if ((motcode == XK_Down || motcode == XK_Up) && (evt->state & ControlMask))
{
- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
Widget wItem;
- Widget wItemFocus = motTreeGetFocusNode(ih);
+ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
/* Ctrl+Arrows move only focus */
if (motcode == XK_Down)
- wItem = motTreeGetNextVisibleNode(ih, wRoot, wItemFocus);
+ wItem = motTreeGetNextVisibleNode(ih, wItemFocus, 1);
else
- wItem = motTreeGetPreviousVisibleNode(ih, wRoot, wItemFocus);
+ wItem = motTreeGetPreviousVisibleNode(ih, wItemFocus, 1);
motTreeSetFocusNode(ih, wItem);
*cont = False;
@@ -2317,8 +2145,8 @@ static void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean
if (motcode == XK_Home)
wItem = wRoot;
- else
- wItem = motTreeGetLastVisibleNode(ih, wRoot);
+ else /* motcode == XK_End */
+ wItem = motTreeGetLastVisibleNode(ih);
/* Ctrl+Arrows move only focus */
if (!(evt->state & ControlMask))
@@ -2326,7 +2154,7 @@ static void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean
/* Shift+Arrows select block */
if (evt->state & ShiftMask)
{
- Widget wItemFocus = motTreeGetFocusNode(ih);
+ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
if (!wItemFocus)
return;
motTreeSelectRange(ih, wItemFocus, wItem, 1);
@@ -2346,16 +2174,9 @@ static void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean
}
else if(motcode == XK_space && (evt->state & ControlMask))
{
- Widget wItemFocus = motTreeGetFocusNode(ih);
+ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
if (wItemFocus)
- {
- unsigned char isSelected;
- XtVaGetValues(wItemFocus, XmNvisualEmphasis, &isSelected, NULL);
- if (isSelected == XmSELECTED)
- XtVaSetValues(wItemFocus, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
- else
- XtVaSetValues(wItemFocus, XmNvisualEmphasis, XmSELECTED, NULL);
- }
+ motTreeSelectNode(wItemFocus, -1);
}
}
@@ -2378,7 +2199,7 @@ static void motTreeButtonEvent(Widget w, Ihandle* ih, XButtonEvent* evt, Boolean
if (evt->button==Button1)
{
- Widget wItemFocus = motTreeGetFocusNode(ih);
+ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
static Widget wLastItem = NULL;
static Time last = 0;
int clicktwice = 0, doubleclicktime = XtGetMultiClickTime(iupmot_display);
@@ -2395,6 +2216,11 @@ static void motTreeButtonEvent(Widget w, Ihandle* ih, XButtonEvent* evt, Boolean
*cont = False;
}
wLastItem = wItemFocus;
+
+ if (ih->data->mark_mode==ITREE_MARK_MULTIPLE &&
+ !(evt->state & ShiftMask) &&
+ !(evt->state & ControlMask))
+ motTreeCallMultiUnSelectionCb(ih);
}
else if (evt->button==Button3)
motTreeCallRightClickCb(ih, evt->x, evt->y);
@@ -2436,21 +2262,18 @@ static void motTreeTransferProc(Widget drop_context, XtPointer client_data, Atom
if (motTreeCallDragDropCb(ih, wItemDrag, wItemDrop, &is_ctrl) == IUP_CONTINUE)
{
- /* Copy the dragged item to the new position. */
- Widget wNewItem = motTreeCopyNode(ih, wItemDrag, wItemDrop, is_ctrl);
+ /* Copy or move the dragged item to the new position. */
+ Widget wItemNew = motTreeCopyMoveNode(ih, wItemDrag, wItemDrop, is_ctrl);
- if (!is_ctrl)
+ /* Set focus and selection */
+ if (wItemNew)
{
- /* do not delete the user data, we copy the references in CopyNode */
- motTreeRemoveNode(ih, wItemDrag, 0);
- }
-
- /* Select the dragged item */
- XtVaSetValues(ih->handle, XmNselectedObjects, NULL, NULL);
- XtVaSetValues(ih->handle, XmNselectedObjectCount, 0, NULL);
- XtVaSetValues(wNewItem, XmNvisualEmphasis, XmSELECTED, NULL);
+ XtVaSetValues(ih->handle, XmNselectedObjects, NULL, NULL);
+ XtVaSetValues(ih->handle, XmNselectedObjectCount, 0, NULL);
+ XtVaSetValues(wItemNew, XmNvisualEmphasis, XmSELECTED, NULL);
- motTreeSetFocusNode(ih, wNewItem);
+ motTreeSetFocusNode(ih, wItemNew);
+ }
}
}
@@ -2475,8 +2298,8 @@ static void motTreeDropProc(Widget w, XtPointer client_data, XmDropProcCallbackS
drop_context = drop_data->dragContext;
/* retrieve the data targets */
- iupmotSetArg(args, num_args, XmNexportTargets, &exportTargets);
- iupmotSetArg(args, num_args, XmNnumExportTargets, &numExportTargets);
+ iupMOT_SETARG(args, num_args, XmNexportTargets, &exportTargets);
+ iupMOT_SETARG(args, num_args, XmNnumExportTargets, &numExportTargets);
XtGetValues(drop_context, args, num_args);
for (i = 0; i < (int)numExportTargets; i++)
@@ -2495,17 +2318,17 @@ static void motTreeDropProc(Widget w, XtPointer client_data, XmDropProcCallbackS
num_args = 0;
if ((!found) || (drop_data->dropAction != XmDROP) || (drop_data->operation != XmDROP_COPY && drop_data->operation != XmDROP_MOVE))
{
- iupmotSetArg(args, num_args, XmNtransferStatus, XmTRANSFER_FAILURE);
- iupmotSetArg(args, num_args, XmNnumDropTransfers, 0);
+ iupMOT_SETARG(args, num_args, XmNtransferStatus, XmTRANSFER_FAILURE);
+ iupMOT_SETARG(args, num_args, XmNnumDropTransfers, 0);
}
else
{
/* set up transfer requests for drop site */
transferList[0].target = atomTreeItem;
transferList[0].client_data = (XtPointer)wItemDrop;
- iupmotSetArg(args, num_args, XmNdropTransfers, transferList);
- iupmotSetArg(args, num_args, XmNnumDropTransfers, 1);
- iupmotSetArg(args, num_args, XmNtransferProc, motTreeTransferProc);
+ iupMOT_SETARG(args, num_args, XmNdropTransfers, transferList);
+ iupMOT_SETARG(args, num_args, XmNnumDropTransfers, 1);
+ iupMOT_SETARG(args, num_args, XmNtransferProc, motTreeTransferProc);
}
XmDropTransferStart(drop_context, args, num_args);
@@ -2584,23 +2407,23 @@ static void motTreeStartDrag(Widget w, XButtonEvent* evt, String* params, Cardin
XmNforeground, &fg,
NULL);
- iupmotSetArg(args, num_args, XmNpixmap, pixmap);
- iupmotSetArg(args, num_args, XmNmask, mask);
+ iupMOT_SETARG(args, num_args, XmNpixmap, pixmap);
+ iupMOT_SETARG(args, num_args, XmNmask, mask);
drag_icon = XmCreateDragIcon(w, "drag_icon", args, num_args);
exportList[0] = atomTreeItem;
/* specify resources for DragContext for the transfer */
num_args = 0;
- iupmotSetArg(args, num_args, XmNcursorBackground, bg);
- iupmotSetArg(args, num_args, XmNcursorForeground, fg);
- /* iupmotSetArg(args, num_args, XmNsourcePixmapIcon, drag_icon); works, but only outside the dialog, inside disapears */
- iupmotSetArg(args, num_args, XmNsourceCursorIcon, drag_icon); /* does not work, shows the default cursor */
- iupmotSetArg(args, num_args, XmNexportTargets, exportList);
- iupmotSetArg(args, num_args, XmNnumExportTargets, 1);
- iupmotSetArg(args, num_args, XmNdragOperations, XmDROP_MOVE|XmDROP_COPY);
- iupmotSetArg(args, num_args, XmNconvertProc, motTreeConvertProc);
- iupmotSetArg(args, num_args, XmNclientData, wItemDrag);
+ iupMOT_SETARG(args, num_args, XmNcursorBackground, bg);
+ iupMOT_SETARG(args, num_args, XmNcursorForeground, fg);
+ /* iupMOT_SETARG(args, num_args, XmNsourcePixmapIcon, drag_icon); works, but only outside the dialog, inside disapears */
+ iupMOT_SETARG(args, num_args, XmNsourceCursorIcon, drag_icon); /* does not work, shows the default cursor */
+ iupMOT_SETARG(args, num_args, XmNexportTargets, exportList);
+ iupMOT_SETARG(args, num_args, XmNnumExportTargets, 1);
+ iupMOT_SETARG(args, num_args, XmNdragOperations, XmDROP_MOVE|XmDROP_COPY);
+ iupMOT_SETARG(args, num_args, XmNconvertProc, motTreeConvertProc);
+ iupMOT_SETARG(args, num_args, XmNclientData, wItemDrag);
/* start the drag and register a callback to clean up when done */
drop_context = XmDragStart(w, (XEvent*)evt, args, num_args);
@@ -2628,10 +2451,10 @@ static void motTreeEnableDragDrop(Widget w)
XtOverrideTranslations(w, XtParseTranslationTable(dragTranslations));
importList[0] = atomTreeItem;
- iupmotSetArg(args, num_args, XmNimportTargets, importList);
- iupmotSetArg(args, num_args, XmNnumImportTargets, 1);
- iupmotSetArg(args, num_args, XmNdropSiteOperations, XmDROP_MOVE|XmDROP_COPY);
- iupmotSetArg(args, num_args, XmNdropProc, motTreeDropProc);
+ iupMOT_SETARG(args, num_args, XmNimportTargets, importList);
+ iupMOT_SETARG(args, num_args, XmNnumImportTargets, 1);
+ iupMOT_SETARG(args, num_args, XmNdropSiteOperations, XmDROP_MOVE|XmDROP_COPY);
+ iupMOT_SETARG(args, num_args, XmNdropProc, motTreeDropProc);
XmDropSiteUpdate(w, args, num_args);
XtVaSetValues(XmGetXmDisplay(iupmot_display), XmNenableDragIcon, True, NULL);
@@ -2648,13 +2471,13 @@ static int motTreeMapMethod(Ihandle* ih)
/******************************/
/* Create the scrolled window */
/******************************/
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
- iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAUTOMATIC);
- iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE);
- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED);
- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */
- iupmotSetArg(args, num_args, XmNborderWidth, 0);
- iupmotSetArg(args, num_args, XmNshadowThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAUTOMATIC);
+ iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE);
+ iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED);
+ iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */
+ iupMOT_SETARG(args, num_args, XmNborderWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);
sb_win = XtCreateManagedWidget(
child_id, /* child identifier */
@@ -2672,37 +2495,37 @@ static int motTreeMapMethod(Ihandle* ih)
num_args = 0;
- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */
- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */
+ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
if (iupAttribGetBoolean(ih, "CANFOCUS"))
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
else
- iupmotSetArg(args, num_args, XmNtraversalOn, False);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
+ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
+ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
- iupmotSetArg(args, num_args, XmNlayoutType, XmOUTLINE);
- iupmotSetArg(args, num_args, XmNentryViewType, XmSMALL_ICON);
- iupmotSetArg(args, num_args, XmNselectionPolicy, XmSINGLE_SELECT);
- iupmotSetArg(args, num_args, XmNoutlineIndentation, 20);
+ iupMOT_SETARG(args, num_args, XmNlayoutType, XmOUTLINE);
+ iupMOT_SETARG(args, num_args, XmNentryViewType, XmSMALL_ICON);
+ iupMOT_SETARG(args, num_args, XmNselectionPolicy, XmSINGLE_SELECT);
+ iupMOT_SETARG(args, num_args, XmNoutlineIndentation, 20);
if (iupAttribGetBoolean(ih, "HIDELINES"))
- iupmotSetArg(args, num_args, XmNoutlineLineStyle, XmNO_LINE);
+ iupMOT_SETARG(args, num_args, XmNoutlineLineStyle, XmNO_LINE);
else
- iupmotSetArg(args, num_args, XmNoutlineLineStyle, XmSINGLE);
+ iupMOT_SETARG(args, num_args, XmNoutlineLineStyle, XmSINGLE);
if (iupAttribGetBoolean(ih, "HIDEBUTTONS"))
- iupmotSetArg(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_ABSENT);
+ iupMOT_SETARG(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_ABSENT);
else
- iupmotSetArg(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_PRESENT);
+ iupMOT_SETARG(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_PRESENT);
ih->handle = XtCreateManagedWidget(
child_id, /* child identifier */
@@ -2788,17 +2611,30 @@ static int motTreeMapMethod(Ihandle* ih)
if (!ih->data->def_image_expanded_mask) ih->data->def_image_expanded_mask = (void*)XmUNSPECIFIED_PIXMAP;
}
- motTreeAddRootNode(ih);
+ if (iupAttribGetInt(ih, "ADDROOT"))
+ iupdrvTreeAddNode(ih, "-1", ITREE_BRANCH, "", 0);
IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)motTreeConvertXYToPos);
+ iupdrvTreeUpdateMarkMode(ih);
+
return IUP_NOERROR;
}
+static void motTreeUnMapMethod(Ihandle* ih)
+{
+ motTreeRemoveAllNodes(ih, 0);
+
+ ih->data->node_count = 0;
+
+ iupdrvBaseUnMapMethod(ih);
+}
+
void iupdrvTreeInitClass(Iclass* ic)
{
/* Driver Dependent Class functions */
ic->Map = motTreeMapMethod;
+ ic->UnMap = motTreeUnMapMethod;
/* Visual */
iupClassRegisterAttribute(ic, "BGCOLOR", NULL, motTreeSetBgColorAttrib, "TXTBGCOLOR", NULL, IUPAF_DEFAULT);
@@ -2807,7 +2643,6 @@ void iupdrvTreeInitClass(Iclass* ic)
/* IupTree Attributes - GENERAL */
iupClassRegisterAttribute(ic, "EXPANDALL", NULL, motTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY||IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "INDENTATION", motTreeGetIndentationAttrib, motTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT);
- iupClassRegisterAttribute(ic, "COUNT", motTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, motTreeSetSpacingAttrib, NULL, NULL, IUPAF_NOT_MAPPED);
iupClassRegisterAttribute(ic, "TOPITEM", NULL, motTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
@@ -2827,7 +2662,6 @@ void iupdrvTreeInitClass(Iclass* ic)
iupClassRegisterAttributeId(ic, "COLOR", motTreeGetColorAttrib, motTreeSetColorAttrib, IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "NAME", motTreeGetTitleAttrib, motTreeSetTitleAttrib, IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "TITLE", motTreeGetTitleAttrib, motTreeSetTitleAttrib, IUPAF_NO_INHERIT);
- iupClassRegisterAttributeId(ic, "USERDATA", motTreeGetUserDataAttrib, motTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "CHILDCOUNT", motTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "TITLEFONT", motTreeGetTitleFontAttrib, motTreeSetTitleFontAttrib, IUPAF_NO_INHERIT);
@@ -2836,6 +2670,7 @@ void iupdrvTreeInitClass(Iclass* ic)
iupClassRegisterAttribute (ic, "MARK", NULL, motTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttribute (ic, "STARTING", NULL, motTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
iupClassRegisterAttribute (ic, "MARKSTART", NULL, motTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute (ic, "MARKEDNODES", motTreeGetMarkedNodesAttrib, motTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
iupClassRegisterAttribute (ic, "VALUE", motTreeGetValueAttrib, motTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
@@ -2844,5 +2679,4 @@ void iupdrvTreeInitClass(Iclass* ic)
iupClassRegisterAttribute(ic, "RENAME", NULL, motTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "MOVENODE", NULL, motTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "COPYNODE", NULL, motTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
- iupClassRegisterAttributeId(ic, "FINDUSERDATA", motTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
}
diff --git a/iup/src/mot/iupmot_val.c b/iup/src/mot/iupmot_val.c
index 200d2b4..ce9eba7 100755
--- a/iup/src/mot/iupmot_val.c
+++ b/iup/src/mot/iupmot_val.c
@@ -383,41 +383,41 @@ static int motValMapMethod(Ihandle* ih)
int show_ticks;
/* Core */
- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
+ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
+ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
/* Primitive */
if (iupAttribGetBoolean(ih, "CANFOCUS"))
- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
else
- iupmotSetArg(args, num_args, XmNtraversalOn, False);
- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
+ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
+ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
+ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
/* Scale */
- iupmotSetArg(args, num_args, XmNminimum, 0);
- iupmotSetArg(args, num_args, XmNmaximum, SHRT_MAX);
- iupmotSetArg(args, num_args, XmNslidingMode, XmSLIDER);
- iupmotSetArg(args, num_args, XmNsliderMark, XmETCHED_LINE);
- iupmotSetArg(args, num_args, XmNsliderSize, 16);
- iupmotSetArg(args, num_args, XmNshowValue, XmNONE);
+ iupMOT_SETARG(args, num_args, XmNminimum, 0);
+ iupMOT_SETARG(args, num_args, XmNmaximum, SHRT_MAX);
+ iupMOT_SETARG(args, num_args, XmNslidingMode, XmSLIDER);
+ iupMOT_SETARG(args, num_args, XmNsliderMark, XmETCHED_LINE);
+ iupMOT_SETARG(args, num_args, XmNsliderSize, 16);
+ iupMOT_SETARG(args, num_args, XmNshowValue, XmNONE);
if (ih->data->type == IVAL_HORIZONTAL)
{
- iupmotSetArg(args, num_args, XmNorientation, XmHORIZONTAL);
+ iupMOT_SETARG(args, num_args, XmNorientation, XmHORIZONTAL);
if (ih->data->inverted)
- iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_LEFT);
+ iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_LEFT);
else
- iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_RIGHT);
+ iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_RIGHT);
}
else
{
- iupmotSetArg(args, num_args, XmNorientation, XmVERTICAL);
+ iupMOT_SETARG(args, num_args, XmNorientation, XmVERTICAL);
if (ih->data->inverted)
- iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_TOP);
+ iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_TOP);
else
- iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_BOTTOM);
+ iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_BOTTOM);
}
ih->handle = XtCreateManagedWidget(
diff --git a/iup/src/mot/iupunix_info.c b/iup/src/mot/iupunix_info.c
index b522638..f09573c 100755
--- a/iup/src/mot/iupunix_info.c
+++ b/iup/src/mot/iupunix_info.c
@@ -282,7 +282,7 @@ char *iupdrvGetSystemName(void)
char *iupdrvGetSystemVersion(void)
{
struct utsname un;
- char *str = iupStrGetMemory(60);
+ char *str = iupStrGetMemory(100);
uname(&un);
strcpy(str, un.release);
diff --git a/iup/src/win/iupwin_button.c b/iup/src/win/iupwin_button.c
index 7f780e3..3b05ba7 100755
--- a/iup/src/win/iupwin_button.c
+++ b/iup/src/win/iupwin_button.c
@@ -27,6 +27,7 @@
#include "iupwin_drv.h"
#include "iupwin_handle.h"
#include "iupwin_draw.h"
+#include "iupwin_info.h"
#ifndef CDIS_SHOWKEYBOARDCUES
@@ -308,18 +309,22 @@ static void winButtonDrawText(Ihandle* ih, HDC hDC, int rect_width, int rect_hei
static void winButtonDrawItem(Ihandle* ih, DRAWITEMSTRUCT *drawitem)
{
+ HDC hDC;
iupwinBitmapDC bmpDC;
int border, draw_border;
int width = drawitem->rcItem.right - drawitem->rcItem.left;
int height = drawitem->rcItem.bottom - drawitem->rcItem.top;
- HDC hDC = iupwinDrawCreateBitmapDC(&bmpDC, drawitem->hDC, width, height);
+ hDC = iupwinDrawCreateBitmapDC(&bmpDC, drawitem->hDC, width, height);
iupwinDrawParentBackground(ih, hDC, &drawitem->rcItem);
if ((drawitem->itemState & ODS_FOCUS) && !(drawitem->itemState & ODS_HOTLIGHT))
drawitem->itemState |= ODS_DEFAULT;
+ if (iupAttribGet(ih, "_IUPWINBUT_SELECTED"))
+ drawitem->itemState |= ODS_SELECTED;
+
border = winButtonGetBorder();
if (ih->data->type & IUP_BUTTON_IMAGE && iupAttribGet(ih, "IMPRESS") && !iupAttribGetStr(ih, "IMPRESSBORDER"))
@@ -365,7 +370,7 @@ static int winButtonSetImageAttrib(Ihandle* ih, const char* value)
(void)value;
if (ih->data->type != IUP_BUTTON_TEXT)
{
- iupdrvDisplayUpdate(ih);
+ iupdrvPostRedraw(ih);
return 1;
}
else
@@ -377,7 +382,7 @@ static int winButtonSetImInactiveAttrib(Ihandle* ih, const char* value)
(void)value;
if (ih->data->type != IUP_BUTTON_TEXT)
{
- iupdrvDisplayUpdate(ih);
+ iupdrvPostRedraw(ih);
return 1;
}
else
@@ -389,7 +394,7 @@ static int winButtonSetImPressAttrib(Ihandle* ih, const char* value)
(void)value;
if (ih->data->type != IUP_BUTTON_TEXT)
{
- iupdrvDisplayUpdate(ih);
+ iupdrvPostRedraw(ih);
return 1;
}
else
@@ -400,7 +405,7 @@ static int winButtonSetActiveAttrib(Ihandle* ih, const char* value)
{
/* redraw IMINACTIVE image if any */
if (ih->data->type != IUP_BUTTON_TEXT)
- iupdrvDisplayUpdate(ih);
+ iupdrvPostRedraw(ih);
return iupBaseSetActiveAttrib(ih, value);
}
@@ -425,7 +430,7 @@ static int winButtonSetAlignmentAttrib(Ihandle* ih, const char* value)
else /* "ACENTER" */
ih->data->vert_alignment = IUP_ALIGN_ACENTER;
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
return 1;
}
@@ -443,7 +448,7 @@ static int winButtonSetPaddingAttrib(Ihandle* ih, const char* value)
{
iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');
if (ih->handle)
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
return 0;
}
@@ -454,7 +459,7 @@ static int winButtonSetBgColorAttrib(Ihandle* ih, const char* value)
{
iupAttribSetStr(ih, "BGCOLOR", value);
iupImageUpdateParent(ih);
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
}
return 1;
}
@@ -486,7 +491,9 @@ static int winButtonSetFgColorAttrib(Ihandle* ih, const char* value)
if (iupStrToRGB(value, &r, &g, &b))
{
ih->data->fgcolor = RGB(r,g,b);
- iupdrvDisplayRedraw(ih);
+
+ if (ih->handle)
+ iupdrvRedrawNow(ih);
}
return 1;
}
@@ -499,7 +506,7 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
{
/* redraw IMPRESS image if any */
if ((msg == WM_LBUTTONDOWN || msg == WM_LBUTTONUP) && iupAttribGet(ih, "IMPRESS"))
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
}
switch (msg)
@@ -514,6 +521,13 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
case WM_RBUTTONDOWN:
{
iupwinButtonDown(ih, msg, wp, lp);
+
+ /* Feedback will NOT be done when not receiving the focus */
+ if (msg==WM_LBUTTONDOWN && !iupAttribGetBoolean(ih, "FOCUSONCLICK"))
+ {
+ iupAttribSetStr(ih, "_IUPWINBUT_SELECTED", "1");
+ iupdrvRedrawNow(ih);
+ }
break;
}
case WM_XBUTTONUP:
@@ -526,11 +540,24 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
/* BN_CLICKED will NOT be notified when not receiving the focus */
if (msg==WM_LBUTTONUP && !iupAttribGetBoolean(ih, "FOCUSONCLICK"))
{
- Icallback cb = IupGetCallback(ih, "ACTION");
+ Icallback cb;
+
+ iupAttribSetStr(ih, "_IUPWINBUT_SELECTED", NULL);
+ iupdrvRedrawNow(ih);
+
+ cb = IupGetCallback(ih, "ACTION");
if (cb && cb(ih) == IUP_CLOSE)
IupExitLoop();
}
+ if (!iupwinIsVistaOrNew())
+ {
+ /* TIPs desapear forever after a button click in XP,
+ so we force an update. */
+ char* tip = iupAttribGet(ih, "TIP");
+ if (tip)
+ iupdrvBaseSetTipAttrib(ih, tip);
+ }
break;
}
case WM_KEYDOWN:
@@ -549,7 +576,12 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
if (!iupwin_comctl32ver6)
{
iupAttribSetStr(ih, "_IUPWINBUT_ENTERWIN", NULL);
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
+ }
+ if (!iupAttribGetBoolean(ih, "FOCUSONCLICK"))
+ {
+ iupAttribSetStr(ih, "_IUPWINBUT_SELECTED", NULL);
+ iupdrvRedrawNow(ih);
}
break;
case WM_MOUSEMOVE:
@@ -558,7 +590,7 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
if (!iupAttribGet(ih, "_IUPWINBUT_ENTERWIN"))
{
iupAttribSetStr(ih, "_IUPWINBUT_ENTERWIN", "1");
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
}
}
break;
@@ -635,7 +667,7 @@ static int winButtonWmCommand(Ihandle* ih, WPARAM wp, LPARAM lp)
static int winButtonMapMethod(Ihandle* ih)
{
char* value;
- DWORD dwStyle = WS_CHILD |
+ DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS |
BS_NOTIFY; /* necessary because of the base messages */
if (!ih->parent)
@@ -661,7 +693,7 @@ static int winButtonMapMethod(Ihandle* ih)
ih->data->type = IUP_BUTTON_IMAGE;
value = iupAttribGet(ih, "TITLE");
- if (value)
+ if (value && *value!=0)
ih->data->type |= IUP_BUTTON_TEXT;
}
else
diff --git a/iup/src/win/iupwin_canvas.c b/iup/src/win/iupwin_canvas.c
index bb88b8a..b865160 100755
--- a/iup/src/win/iupwin_canvas.c
+++ b/iup/src/win/iupwin_canvas.c
@@ -45,7 +45,7 @@ static void winCanvasSetScrollInfo(HWND hWnd, int imin, int imax, int ipos, int
static int winCanvasSetBgColorAttrib(Ihandle *ih, const char *value)
{
(void)value;
- iupdrvDisplayUpdate(ih);
+ iupdrvPostRedraw(ih);
return 1;
}
@@ -220,7 +220,7 @@ static void winCanvasUpdateHorScroll(Ihandle* ih, WORD winop)
xmax = iupAttribGetFloat(ih,"XMAX");
xmin = iupAttribGetFloat(ih,"XMIN");
- winCanvasGetScrollInfo(ih->handle, &iposx, &ipagex, SB_HORZ, winop==SB_THUMBTRACK? 1: 0);
+ winCanvasGetScrollInfo(ih->handle, &iposx, &ipagex, SB_HORZ, winop==SB_THUMBTRACK||winop==SB_THUMBPOSITION? 1: 0);
if (!iupAttribGet(ih,"LINEX"))
{
@@ -296,7 +296,7 @@ static void winCanvasUpdateVerScroll(Ihandle* ih, WORD winop)
ymax = iupAttribGetFloat(ih,"YMAX");
ymin = iupAttribGetFloat(ih,"YMIN");
- winCanvasGetScrollInfo(ih->handle, &iposy, &ipagey, SB_VERT, winop==SB_THUMBTRACK? 1: 0);
+ winCanvasGetScrollInfo(ih->handle, &iposy, &ipagey, SB_VERT, winop==SB_THUMBTRACK||winop==SB_THUMBPOSITION? 1: 0);
if (!iupAttribGet(ih, "LINEY"))
{
@@ -372,6 +372,10 @@ static int winCanvasProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
GetClientRect(ih->handle, &rect);
FillRect(hdc, &rect, iupwinBrushGet(color));
}
+ else
+ InvalidateRect(ih->handle,NULL,FALSE); /* This will invalidate all area.
+ Necessary in XP, or overlapping windows will have the effect of partial redrawing. */
+
/* always return non zero value */
*result = 1;
return 1;
@@ -382,7 +386,7 @@ static int winCanvasProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(ih->handle, &ps);
- iupAttribSetStr(ih, "HDC_WMPAINT", (char*)&hdc);
+ iupAttribSetStr(ih, "HDC_WMPAINT", (char*)hdc);
iupAttribSetStrf(ih, "CLIPRECT", "%d %d %d %d", ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right-ps.rcPaint.left, ps.rcPaint.bottom-ps.rcPaint.top);
cb(ih, ih->data->posx, ih->data->posy);
@@ -542,27 +546,13 @@ static int winCanvasProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
return iupwinBaseProc(ih, msg, wp, lp, result);
}
-static void winCanvasRegisterClass(void)
-{
- WNDCLASS wndclass;
- ZeroMemory(&wndclass, sizeof(WNDCLASS));
-
- wndclass.hInstance = iupwin_hinstance;
- wndclass.lpszClassName = "IupCanvas";
- wndclass.lpfnWndProc = (WNDPROC)iupwinBaseWinProc;
- wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
- wndclass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; /* using CS_OWNDC will minimize the work of cdActivate in the CD library */
- wndclass.hbrBackground = NULL; /* remove the background to optimize redraw */
-
- RegisterClass(&wndclass);
-}
-
static int winCanvasMapMethod(Ihandle* ih)
{
CLIENTCREATESTRUCT clientstruct;
void *clientdata = NULL;
char *classname;
- DWORD dwStyle = WS_CHILD, dwExStyle = 0;
+ DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS,
+ dwExStyle = 0;
if (!ih->parent)
return IUP_ERROR;
@@ -574,14 +564,7 @@ static int winCanvasMapMethod(Ihandle* ih)
}
if (ih->firstchild) /* can be a container */
- {
- dwStyle |= WS_CLIPSIBLINGS;
-
- if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))
- dwExStyle |= WS_EX_COMPOSITED;
- else
- dwStyle |= WS_CLIPCHILDREN;
- }
+ iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);
if (iupAttribGetBoolean(ih, "MDICLIENT"))
{
@@ -693,6 +676,21 @@ static void winCanvasReleaseMethod(Iclass* ic)
UnregisterClass("IupCanvas", iupwin_hinstance);
}
+static void winCanvasRegisterClass(void)
+{
+ WNDCLASS wndclass;
+ ZeroMemory(&wndclass, sizeof(WNDCLASS));
+
+ wndclass.hInstance = iupwin_hinstance;
+ wndclass.lpszClassName = "IupCanvas";
+ wndclass.lpfnWndProc = (WNDPROC)iupwinBaseWinProc;
+ wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
+ wndclass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; /* using CS_OWNDC will minimize the work of cdActivate in the CD library */
+ wndclass.hbrBackground = NULL; /* remove the background to optimize redraw */
+
+ RegisterClass(&wndclass);
+}
+
void iupdrvCanvasInitClass(Iclass* ic)
{
if (!iupwinClassExist("IupCanvas"))
diff --git a/iup/src/win/iupwin_common.c b/iup/src/win/iupwin_common.c
index a1a7c0f..ba68b78 100755
--- a/iup/src/win/iupwin_common.c
+++ b/iup/src/win/iupwin_common.c
@@ -94,16 +94,17 @@ void iupdrvBaseLayoutUpdateMethod(Ihandle *ih)
SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOOWNERZORDER);
}
-void iupdrvDisplayRedraw(Ihandle *ih)
+void iupdrvRedrawNow(Ihandle *ih)
{
/* REDRAW Now */
- RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_NOCHILDREN|RDW_UPDATENOW);
+ RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_UPDATENOW);
}
-void iupdrvDisplayUpdate(Ihandle *ih)
+void iupdrvPostRedraw(Ihandle *ih)
{
/* Post a REDRAW */
- RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_NOCHILDREN);
+ /* can NOT use RDW_NOCHILDREN because IupList has internal children that needs to be redraw */
+ RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT);
}
void iupdrvScreenToClient(Ihandle* ih, int *x, int *y)
@@ -534,6 +535,8 @@ int iupdrvBaseSetZorderAttrib(Ihandle* ih, const char* value)
void iupdrvSetVisible(Ihandle* ih, int visible)
{
+ if (iupStrEqual(ih->iclass->name, "colorbar"))
+ ih=ih;
ShowWindow(ih->handle, visible? SW_SHOWNORMAL: SW_HIDE);
}
@@ -618,6 +621,18 @@ char* iupdrvBaseGetClientSizeAttrib(Ihandle* ih)
#define IDC_HELP MAKEINTRESOURCE(32651)
#endif
+static HCURSOR winLoadComCtlCursor(LPCTSTR lpCursorName)
+{
+ HCURSOR cur = NULL;
+ HINSTANCE hinstDll = LoadLibrary("comctl32.dll");
+ if (hinstDll)
+ {
+ cur = LoadCursor(hinstDll, lpCursorName);
+ FreeLibrary(hinstDll);
+ }
+ return cur;
+}
+
static HCURSOR winGetCursor(Ihandle* ih, const char* name)
{
static struct {
@@ -649,7 +664,7 @@ static HCURSOR winGetCursor(Ihandle* ih, const char* name)
{"APPSTARTING", IDC_APPSTARTING}
};
- HCURSOR cur;
+ HCURSOR cur = NULL;
char str[50];
int i, count = sizeof(table)/sizeof(table[0]);
@@ -676,14 +691,22 @@ static HCURSOR winGetCursor(Ihandle* ih, const char* name)
if (i == count)
{
/* check other system cursors */
- /* cursor PEN is handled here */
+
if (iupStrEqualNoCase(name, "PEN"))
- name = "CURSOR_PEN";
+ name = "CURSOR_PEN"; /* name in "iup.rc" */
/* check for an name defined cursor */
cur = iupImageGetCursor(name);
}
+ if (!cur)
+ {
+ if (iupStrEqualNoCase(name, "SPLITTER_VERT"))
+ cur = winLoadComCtlCursor(MAKEINTRESOURCE(107));
+ else if (iupStrEqualNoCase(name, "SPLITTER_HORIZ"))
+ cur = winLoadComCtlCursor(MAKEINTRESOURCE(135));
+ }
+
iupAttribSetStr(ih, str, (char*)cur);
return cur;
}
@@ -758,29 +781,29 @@ int iupwinButtonUp(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp)
if (msg==WM_LBUTTONUP)
{
b = IUP_BUTTON1;
- iupKEYSETBUTTON1(status);
+ iupKEY_SETBUTTON1(status);
}
else if (msg==WM_MBUTTONUP)
{
b = IUP_BUTTON2;
- iupKEYSETBUTTON2(status);
+ iupKEY_SETBUTTON2(status);
}
else if (msg==WM_RBUTTONUP)
{
b = IUP_BUTTON3;
- iupKEYSETBUTTON3(status);
+ iupKEY_SETBUTTON3(status);
}
else if (msg==WM_XBUTTONUP)
{
if (HIWORD(wp) == XBUTTON1)
{
b = IUP_BUTTON4;
- iupKEYSETBUTTON4(status);
+ iupKEY_SETBUTTON4(status);
}
else
{
b = IUP_BUTTON5;
- iupKEYSETBUTTON5(status);
+ iupKEY_SETBUTTON5(status);
}
}
@@ -807,6 +830,14 @@ int iupwinMouseMove(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp)
return 0;
}
+void iupwinGetNativeParentStyle(Ihandle* ih, DWORD *dwExStyle, DWORD *dwStyle)
+{
+ *dwStyle |= WS_CLIPCHILDREN;
+
+ if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))
+ *dwExStyle |= WS_EX_COMPOSITED;
+}
+
int iupwinCreateWindowEx(Ihandle* ih, LPCSTR lpClassName, DWORD dwExStyle, DWORD dwStyle)
{
ih->serial = iupDialogGetChildId(ih);
diff --git a/iup/src/win/iupwin_dialog.c b/iup/src/win/iupwin_dialog.c
index 39fdc0c..c13b88d 100755
--- a/iup/src/win/iupwin_dialog.c
+++ b/iup/src/win/iupwin_dialog.c
@@ -102,9 +102,9 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
else
{
int has_titlebar = iupAttribGetBoolean(ih, "MAXBOX") ||
- iupAttribGetBoolean(ih, "MINBOX") ||
- iupAttribGetBoolean(ih, "MENUBOX") ||
- IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */
+ iupAttribGetBoolean(ih, "MINBOX") ||
+ iupAttribGetBoolean(ih, "MENUBOX") ||
+ IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */
*caption = 0;
if (has_titlebar)
@@ -118,14 +118,17 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
*border = 0;
if (iupAttribGetBoolean(ih, "RESIZE"))
{
+ /* has_border */
*border = GetSystemMetrics(SM_CXFRAME); /* Thickness of the sizing border around the perimeter of a window */
} /* that can be resized, in pixels. */
else if (has_titlebar)
{
+ /* has_border */
*border = GetSystemMetrics(SM_CXFIXEDFRAME); /* Thickness of the frame around the perimeter of a window */
} /* that has a caption but is not sizable, in pixels. */
else if (iupAttribGetBoolean(ih, "BORDER"))
{
+ /* has_border */
*border = GetSystemMetrics(SM_CXBORDER);
}
}
@@ -712,28 +715,27 @@ static int winDialogMapMethod(Ihandle* ih)
}
if (iupAttribGetBoolean(ih, "RESIZE"))
+ {
dwStyle |= WS_THICKFRAME;
+ has_border = 1;
+ }
else
iupAttribSetStr(ih, "MAXBOX", "NO"); /* Must also remove this to RESIZE=NO work */
-
if (iupAttribGetBoolean(ih, "MAXBOX"))
{
dwStyle |= WS_MAXIMIZEBOX;
has_titlebar = 1;
}
-
if (iupAttribGetBoolean(ih, "MINBOX"))
{
dwStyle |= WS_MINIMIZEBOX;
has_titlebar = 1;
}
-
if (iupAttribGetBoolean(ih, "MENUBOX"))
{
dwStyle |= WS_SYSMENU;
has_titlebar = 1;
}
-
if (iupAttribGetBoolean(ih, "BORDER") || has_titlebar)
has_border = 1;
@@ -815,10 +817,7 @@ static int winDialogMapMethod(Ihandle* ih)
if (iupAttribGetBoolean(ih, "DIALOGFRAME") && native_parent)
dwExStyle |= WS_EX_DLGMODALFRAME; /* this will hide the MENUBOX but not the close button */
- if (iupAttribGetBoolean(ih, "COMPOSITED"))
- dwExStyle |= WS_EX_COMPOSITED;
- else
- dwStyle |= WS_CLIPCHILDREN;
+ iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);
if (iupAttribGetBoolean(ih, "HELPBUTTON"))
dwExStyle |= WS_EX_CONTEXTHELP;
@@ -878,7 +877,6 @@ static int winDialogMapMethod(Ihandle* ih)
/* Reset attributes handled during creation that */
/* also can be changed later, and can be consulted from the native system. */
iupAttribSetStr(ih, "TITLE", NULL);
- iupAttribSetStr(ih, "BORDER", NULL);
/* Ignore VISIBLE before mapping */
iupAttribSetStr(ih, "VISIBLE", NULL);
@@ -956,7 +954,7 @@ static int winDialogSetBgColorAttrib(Ihandle* ih, const char* value)
{
iupAttribStoreStr(ih, "_IUPWIN_BACKGROUND_COLOR", value);
iupAttribSetStr(ih, "_IUPWIN_BACKGROUND_BITMAP", NULL);
- RedrawWindow(ih->handle, NULL, NULL, RDW_ERASE|RDW_ERASENOW); /* force a WM_ERASEBKGND now */
+ RedrawWindow(ih->handle, NULL, NULL, RDW_INVALIDATE|RDW_ERASE|RDW_ALLCHILDREN); /* post WM_ERASEBKGND and WM_PAINT */
return 1;
}
return 0;
@@ -973,7 +971,7 @@ static int winDialogSetBackgroundAttrib(Ihandle* ih, const char* value)
{
iupAttribSetStr(ih, "_IUPWIN_BACKGROUND_COLOR", NULL);
iupAttribSetStr(ih, "_IUPWIN_BACKGROUND_BITMAP", (char*)hBitmap);
- RedrawWindow(ih->handle, NULL, NULL, RDW_ERASE|RDW_ERASENOW); /* force a WM_ERASEBKGND now */
+ RedrawWindow(ih->handle, NULL, NULL, RDW_INVALIDATE|RDW_ERASE|RDW_ALLCHILDREN); /* post WM_ERASEBKGND and WM_PAINT */
return 1;
}
}
diff --git a/iup/src/win/iupwin_draw.c b/iup/src/win/iupwin_draw.c
index 4a810e6..f663d20 100755
--- a/iup/src/win/iupwin_draw.c
+++ b/iup/src/win/iupwin_draw.c
@@ -14,12 +14,16 @@
#include <stdio.h>
#include <string.h>
#include <memory.h>
+#include <math.h>
#include "iup.h"
#include "iup_attrib.h"
#include "iup_class.h"
#include "iup_str.h"
+#include "iup_object.h"
+#include "iup_image.h"
+#include "iup_draw.h"
#include "iupwin_drv.h"
#include "iupwin_info.h"
@@ -38,6 +42,11 @@
#endif
+/******************************************************************************
+ Themes
+*******************************************************************************/
+
+
typedef HTHEME (STDAPICALLTYPE *_winThemeOpenData)(HWND hwnd, LPCWSTR pszClassList);
typedef HRESULT (STDAPICALLTYPE *_winThemeCloseData)(HTHEME hTheme);
typedef HRESULT (STDAPICALLTYPE *_winThemeDrawBackground)(HTHEME hTheme, HDC hDC, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect);
@@ -61,58 +70,6 @@ static int winDrawThemeEnabled(void)
return winThemeOpenData? 1: 0;
}
-void iupwinDrawText(HDC hDC, const char* text, int x, int y, int width, int height, HFONT hFont, COLORREF fgcolor, int style)
-{
- COLORREF oldcolor;
- RECT rect;
- HFONT hOldFont = SelectObject(hDC, hFont);
-
- rect.left = x;
- rect.top = y;
- rect.right = x+width;
- rect.bottom = y+height;
-
- SetTextAlign(hDC, TA_TOP|TA_LEFT);
- SetBkMode(hDC, TRANSPARENT);
- oldcolor = SetTextColor(hDC, fgcolor);
-
- DrawText(hDC, text, -1, &rect, style|DT_NOCLIP);
-
- SelectObject(hDC, hOldFont);
- SetTextColor(hDC, oldcolor);
- SetBkMode(hDC, OPAQUE);
-}
-
-void iupwinDrawBitmap(HDC hDC, HBITMAP hBitmap, HBITMAP hMask, int x, int y, int width, int height, int bpp)
-{
- HDC hMemDC = CreateCompatibleDC(hDC);
- SelectObject(hMemDC, hBitmap);
-
- if (bpp == 32 && winAlphaBlend)
- {
- BLENDFUNCTION blendfunc;
- blendfunc.BlendOp = AC_SRC_OVER;
- blendfunc.BlendFlags = 0;
- blendfunc.SourceConstantAlpha = 0xFF;
- blendfunc.AlphaFormat = AC_SRC_ALPHA;
-
- winAlphaBlend(hDC, x, y, width, height,
- hMemDC, 0, 0, width, height,
- blendfunc);
- }
- else if (bpp == 8 && hMask)
- MaskBlt(hDC, x, y, width, height,
- hMemDC, 0, 0,
- hMask, 0, 0, MAKEROP4(SRCCOPY, 0xAA0000));
- else
- BitBlt(hDC, x, y, width, height,
- hMemDC, 0, 0,
- SRCCOPY);
-
-
- DeleteDC(hMemDC);
-}
-
void iupwinDrawInit(void)
{
if (!winAlphaBlend)
@@ -201,7 +158,7 @@ int iupwinDrawGetThemeTabsBgColor(HWND hWnd, COLORREF *color)
if (!hTheme)
return 0;
- if (iupwinIsVista())
+ if (iupwinIsVistaOrNew())
ret = winThemeGetColor(hTheme, TABP_AEROWIZARDBODY, TIS_NORMAL, TMT_FILLCOLORHINT, color);
else
ret = winThemeGetColor(hTheme, TABP_BODY, TIS_NORMAL, TMT_FILLCOLORHINT, color);
@@ -246,6 +203,79 @@ int iupwinDrawGetThemeFrameFgColor(HWND hWnd, COLORREF *color)
return (ret == S_OK)? 1: 0;
}
+void iupwinDrawRemoveTheme(HWND hwnd)
+{
+ typedef HRESULT (STDAPICALLTYPE *winSetWindowTheme)(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList);
+ static winSetWindowTheme mySetWindowTheme = NULL;
+ if (!mySetWindowTheme)
+ {
+ HMODULE hinstDll = LoadLibrary("uxtheme.dll");
+ if (hinstDll)
+ mySetWindowTheme = (winSetWindowTheme)GetProcAddress(hinstDll, "SetWindowTheme");
+ }
+
+ if (mySetWindowTheme)
+ mySetWindowTheme(hwnd, L"", L"");
+}
+
+
+/******************************************************************************
+ Utilities
+*******************************************************************************/
+
+
+void iupwinDrawText(HDC hDC, const char* text, int x, int y, int width, int height, HFONT hFont, COLORREF fgcolor, int style)
+{
+ COLORREF oldcolor;
+ RECT rect;
+ HFONT hOldFont = SelectObject(hDC, hFont);
+
+ rect.left = x;
+ rect.top = y;
+ rect.right = x+width;
+ rect.bottom = y+height;
+
+ SetTextAlign(hDC, TA_TOP|TA_LEFT);
+ SetBkMode(hDC, TRANSPARENT);
+ oldcolor = SetTextColor(hDC, fgcolor);
+
+ DrawText(hDC, text, -1, &rect, style|DT_NOCLIP);
+
+ SelectObject(hDC, hOldFont);
+ SetTextColor(hDC, oldcolor);
+ SetBkMode(hDC, OPAQUE);
+}
+
+void iupwinDrawBitmap(HDC hDC, HBITMAP hBitmap, HBITMAP hMask, int x, int y, int width, int height, int bpp)
+{
+ HDC hMemDC = CreateCompatibleDC(hDC);
+ SelectObject(hMemDC, hBitmap);
+
+ if (bpp == 32 && winAlphaBlend)
+ {
+ BLENDFUNCTION blendfunc;
+ blendfunc.BlendOp = AC_SRC_OVER;
+ blendfunc.BlendFlags = 0;
+ blendfunc.SourceConstantAlpha = 0xFF;
+ blendfunc.AlphaFormat = AC_SRC_ALPHA;
+
+ winAlphaBlend(hDC, x, y, width, height,
+ hMemDC, 0, 0, width, height,
+ blendfunc);
+ }
+ else if (bpp == 8 && hMask)
+ MaskBlt(hDC, x, y, width, height,
+ hMemDC, 0, 0,
+ hMask, 0, 0, MAKEROP4(SRCCOPY, 0xAA0000));
+ else
+ BitBlt(hDC, x, y, width, height,
+ hMemDC, 0, 0,
+ SRCCOPY);
+
+
+ DeleteDC(hMemDC);
+}
+
static int winDrawGetStateId(int itemState)
{
if (itemState & ODS_DISABLED)
@@ -282,21 +312,6 @@ void iupdrvDrawFocusRect(Ihandle* ih, void* gc, int x, int y, int w, int h)
DrawFocusRect(hDC, &rect);
}
-void iupwinDrawRemoveTheme(HWND hwnd)
-{
- typedef HRESULT (STDAPICALLTYPE *winSetWindowTheme)(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList);
- static winSetWindowTheme mySetWindowTheme = NULL;
- if (!mySetWindowTheme)
- {
- HMODULE hinstDll = LoadLibrary("uxtheme.dll");
- if (hinstDll)
- mySetWindowTheme = (winSetWindowTheme)GetProcAddress(hinstDll, "SetWindowTheme");
- }
-
- if (mySetWindowTheme)
- mySetWindowTheme(hwnd, L"", L"");
-}
-
void iupwinDrawParentBackground(Ihandle* ih, HDC hDC, RECT* rect)
{
unsigned char r=0, g=0, b=0;
@@ -326,3 +341,226 @@ void iupwinDrawDestroyBitmapDC(iupwinBitmapDC *bmpDC)
DeleteDC(bmpDC->hBitmapDC);
}
+
+/******************************************************************************
+ Simple Draw
+*******************************************************************************/
+
+struct _IdrawCanvas{
+ Ihandle* ih;
+ int w, h;
+
+ int release_dc;
+ HBITMAP hBitmap, hOldBitmap;
+ HDC hBitmapDC, hDC;
+};
+
+IdrawCanvas* iupDrawCreateCanvas(Ihandle* ih)
+{
+ IdrawCanvas* dc = calloc(1, sizeof(IdrawCanvas));
+ RECT rect;
+
+ /* valid only inside the ACTION callback of an IupCanvas */
+ dc->hDC = (HDC)IupGetAttribute(ih, "HDC_WMPAINT");
+ if (!dc->hDC)
+ {
+ dc->hDC = GetDC(ih->handle);
+ dc->release_dc = 1;
+ }
+
+ GetClientRect(ih->handle, &rect);
+ dc->w = rect.right - rect.left;
+ dc->h = rect.bottom - rect.top;
+
+ dc->hBitmap = CreateCompatibleBitmap(dc->hDC, dc->w, dc->h);
+ dc->hBitmapDC = CreateCompatibleDC(dc->hDC);
+ dc->hOldBitmap = SelectObject(dc->hBitmapDC, dc->hBitmap);
+
+ SetBkMode(dc->hBitmapDC, TRANSPARENT);
+ SetTextAlign(dc->hBitmapDC, TA_TOP|TA_LEFT);
+
+ return dc;
+}
+
+void iupDrawKillCanvas(IdrawCanvas* dc)
+{
+ SelectObject(dc->hBitmapDC, dc->hOldBitmap);
+ DeleteObject(dc->hBitmap);
+ DeleteDC(dc->hBitmapDC);
+ if (dc->release_dc)
+ DeleteDC(dc->hDC);
+
+ free(dc);
+}
+
+void iupDrawUpdateSize(IdrawCanvas* dc)
+{
+ int w, h;
+ RECT rect;
+ GetClientRect(dc->ih->handle, &rect);
+ w = rect.right - rect.left;
+ h = rect.bottom - rect.top;
+
+ if (w != dc->w || h != dc->h)
+ {
+ SelectObject(dc->hBitmapDC, dc->hOldBitmap);
+ DeleteObject(dc->hBitmap);
+ DeleteDC(dc->hBitmapDC);
+
+ dc->hBitmap = CreateCompatibleBitmap(dc->hDC, dc->w, dc->h);
+ dc->hBitmapDC = CreateCompatibleDC(dc->hDC);
+ dc->hOldBitmap = SelectObject(dc->hBitmapDC, dc->hBitmap);
+
+ SetBkMode(dc->hBitmapDC, TRANSPARENT);
+ SetTextAlign(dc->hBitmapDC, TA_TOP|TA_LEFT);
+ }
+}
+
+void iupDrawFlush(IdrawCanvas* dc)
+{
+ BitBlt(dc->hDC, 0, 0, dc->w, dc->h, dc->hBitmapDC, 0, 0, SRCCOPY);
+}
+
+void iupDrawGetSize(IdrawCanvas* dc, int *w, int *h)
+{
+ if (w) *w = dc->w;
+ if (h) *h = dc->h;
+}
+
+void iupDrawParentBackground(IdrawCanvas* dc)
+{
+ unsigned char r=0, g=0, b=0;
+ char* color = iupBaseNativeParentGetBgColorAttrib(dc->ih);
+ iupStrToRGB(color, &r, &g, &b);
+ iupDrawRectangle(dc, 0, 0, dc->w-1, dc->h-1, r, g, b, 1);
+}
+
+void iupDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int filled)
+{
+ RECT rect;
+ rect.left = x1; rect.top = y1; rect.right = x2+1; rect.bottom = y2+1;
+ SetDCBrushColor(dc->hBitmapDC, RGB(r,g,b));
+ if (filled)
+ FillRect(dc->hBitmapDC, &rect, (HBRUSH)GetStockObject(DC_BRUSH));
+ else
+ FrameRect(dc->hBitmapDC, &rect, (HBRUSH)GetStockObject(DC_BRUSH));
+}
+
+void iupDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b)
+{
+ POINT line_poly[2];
+ HPEN hPen = CreatePen(PS_SOLID, 1, RGB(r, g, b));
+ HPEN hPenOld = SelectObject(dc->hBitmapDC, hPen);
+ line_poly[0].x = x1;
+ line_poly[0].y = y1;
+ line_poly[1].x = x2;
+ line_poly[1].y = y2;
+ Polyline(dc->hBitmapDC, line_poly, 2);
+ SelectObject(dc->hBitmapDC, hPenOld);
+ DeleteObject(hPen);
+}
+
+#define IUP_DEG2RAD 0.01745329252 /* degrees to radians (rad = CD_DEG2RAD * deg) */
+
+static int winDrawCalcArc(int c1, int c2, double a, int start)
+{
+ double proj, off;
+ if (start)
+ proj = cos(IUP_DEG2RAD * a);
+ else
+ proj = sin(IUP_DEG2RAD * a);
+ off = (c2+c1)/2.0 + (c2-c1+1)*proj/2.0;
+ return iupROUND(off);
+}
+
+void iupDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int filled)
+{
+ int XStartArc = winDrawCalcArc(x1, x2, a1, 1);
+ int XEndArc = winDrawCalcArc(x1, x2, a2, 0);
+ int YStartArc = winDrawCalcArc(y1, y2, a1, 1);
+ int YEndArc = winDrawCalcArc(y1, y2, a2, 0);
+
+ if (filled)
+ {
+ HBRUSH hBrush = CreateSolidBrush(RGB(r,g,b));
+ HPEN hBrushOld = SelectObject(dc->hBitmapDC, hBrush);
+ BeginPath(dc->hBitmapDC);
+ Pie(dc->hBitmapDC, x1, y1, x2+1, y2+1, XStartArc, YStartArc, XEndArc, YEndArc);
+ EndPath(dc->hBitmapDC);
+ FillPath(dc->hBitmapDC);
+ SelectObject(dc->hBitmapDC, hBrushOld);
+ DeleteObject(hBrush);
+ }
+ else
+ {
+ HPEN hPen = CreatePen(PS_SOLID, 1, RGB(r, g, b));
+ HPEN hPenOld = SelectObject(dc->hBitmapDC, hPen);
+ Arc(dc->hBitmapDC, x1, y1, x2+1, y2+1, XStartArc, YStartArc, XEndArc, YEndArc);
+ SelectObject(dc->hBitmapDC, hPenOld);
+ DeleteObject(hPen);
+ }
+}
+
+void iupDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int filled)
+{
+ if (filled)
+ {
+ HBRUSH hBrush = CreateSolidBrush(RGB(r,g,b));
+ HPEN hBrushOld = SelectObject(dc->hBitmapDC, hBrush);
+ BeginPath(dc->hBitmapDC);
+ Polygon(dc->hBitmapDC, (POINT*)points, count);
+ EndPath(dc->hBitmapDC);
+ FillPath(dc->hBitmapDC);
+ SelectObject(dc->hBitmapDC, hBrushOld);
+ DeleteObject(hBrush);
+ }
+ else
+ {
+ HPEN hPen = CreatePen(PS_SOLID, 1, RGB(r, g, b));
+ HPEN hPenOld = SelectObject(dc->hBitmapDC, hPen);
+ Polyline(dc->hBitmapDC, (POINT*)points, count);
+ SelectObject(dc->hBitmapDC, hPenOld);
+ DeleteObject(hPen);
+ }
+}
+
+void iupDrawSetClipRect(IdrawCanvas* dc, int x1, int y1, int x2, int y2)
+{
+ HRGN clip_hrgn = CreateRectRgn(x1, y1, x2, y2);
+ SelectClipRgn(dc->hBitmapDC, clip_hrgn);
+ DeleteObject(clip_hrgn);
+}
+
+void iupDrawResetClip(IdrawCanvas* dc)
+{
+ SelectClipRgn(dc->hBitmapDC, NULL);
+}
+
+void iupDrawText(IdrawCanvas* dc, const char* text, int len, int x, int y, unsigned char r, unsigned char g, unsigned char b)
+{
+ HFONT hOldFont, hFont = (HFONT)IupGetAttribute(dc->ih, "HFONT");
+ SetTextColor(dc->hBitmapDC, RGB(r, g, b));
+ hOldFont = SelectObject(dc->hBitmapDC, hFont);
+ TextOut(dc->hBitmapDC, x, y, text, len);
+ SelectObject(dc->hBitmapDC, hOldFont);
+}
+
+void iupDrawImage(IdrawCanvas* dc, const char* name, int make_inactive, int x, int y)
+{
+ int img_w, img_h, bpp;
+ HBITMAP hMask = NULL;
+ HBITMAP hBitmap = iupImageGetImage(name, dc->ih, make_inactive);
+ if (!hBitmap)
+ return;
+
+ /* must use this info, since image can be a driver image loaded from resources */
+ iupdrvImageGetInfo(hBitmap, &img_w, &img_h, &bpp);
+
+ if (bpp == 8)
+ hMask = iupdrvImageCreateMask(IupGetHandle(name));
+
+ iupwinDrawBitmap(dc->hBitmapDC, hBitmap, hMask, x, y, img_w, img_h, bpp);
+
+ if (hMask)
+ DeleteObject(hMask);
+}
diff --git a/iup/src/win/iupwin_drv.h b/iup/src/win/iupwin_drv.h
index 3372c1a..7407a7a 100755
--- a/iup/src/win/iupwin_drv.h
+++ b/iup/src/win/iupwin_drv.h
@@ -77,6 +77,7 @@ int iupwinBaseContainerProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT
/* Creates the Window with native parent and child ID, associate HWND with Ihandle*,
and replace the WinProc by iupwinBaseWinProc */
int iupwinCreateWindowEx(Ihandle* ih, LPCSTR lpClassName, DWORD dwExStyle, DWORD dwStyle);
+void iupwinGetNativeParentStyle(Ihandle* ih, DWORD *dwExStyle, DWORD *dwStyle);
int iupwinClassExist(const char* name);
int iupwinGetColorRef(Ihandle *ih, char *name, COLORREF *color);
@@ -97,8 +98,8 @@ char* iupwinGetClipboardText(Ihandle* ih);
int iupwinGetScreenRes(void);
/* 1 point = 1/72 inch */
/* pixel = (point/72)*(pixel/inch) */
-#define IUPWIN_PT2PIXEL(_pt, _res) MulDiv(_pt, _res, 72) /* (((_pt)*(_res))/72) */
-#define IUPWIN_PIXEL2PT(_pixel, _res) MulDiv(_pixel, 72, _res) /* (((_pixel)*72)/(_res)) */
+#define iupWIN_PT2PIXEL(_pt, _res) MulDiv(_pt, _res, 72) /* (((_pt)*(_res))/72) */
+#define iupWIN_PIXEL2PT(_pixel, _res) MulDiv(_pixel, 72, _res) /* (((_pixel)*72)/(_res)) */
/* child window identifier of the first MDI child window created,
diff --git a/iup/src/win/iupwin_filedlg.c b/iup/src/win/iupwin_filedlg.c
index da66b4b..26994e5 100755
--- a/iup/src/win/iupwin_filedlg.c
+++ b/iup/src/win/iupwin_filedlg.c
@@ -63,7 +63,7 @@ static INT CALLBACK winFileDlgBrowseCallback(HWND hWnd, UINT uMsg, LPARAM lParam
}
else if (uMsg == BFFM_SELCHANGED)
{
- char* buffer = iupStrGetMemory(MAX_FILENAME_SIZE);
+ char buffer[MAX_FILENAME_SIZE];
ITEMIDLIST* selecteditem = (ITEMIDLIST*)lParam;
buffer[0] = 0;
SHGetPathFromIDList(selecteditem, buffer);
@@ -90,7 +90,7 @@ static void winFileDlgGetFolder(Ihandle *ih)
browseinfo.pszDisplayName = buffer;
browseinfo.lpfn = winFileDlgBrowseCallback;
browseinfo.lParam = (LPARAM)ih;
- browseinfo.ulFlags = BIF_NEWDIALOGSTYLE;
+ browseinfo.ulFlags = IupGetGlobal("_IUPWIN_COINIT_MULTITHREADED")? 0: BIF_NEWDIALOGSTYLE;
browseinfo.hwndOwner = parent;
selecteditem = SHBrowseForFolder(&browseinfo);
@@ -112,6 +112,37 @@ static void winFileDlgGetFolder(Ihandle *ih)
/************************************************************************************************/
+static int winFileDlgGetSelectedFile(Ihandle* ih, HWND hWnd, char* filename)
+{
+ int ret = CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE);
+ if (ret < 0)
+ return 0;
+
+ if (iupAttribGetBoolean(ih, "MULTIPLEFILES"))
+ {
+ /* check if there are more than 1 files and return only the first one */
+ int found = 0;
+ while(*filename != 0)
+ {
+ if (*filename == '"')
+ {
+ if (!found)
+ found = 1;
+ else
+ {
+ *(filename-1) = 0;
+ return 1;
+ }
+ }
+ if (found)
+ *filename = *(filename+1);
+ filename++;
+ }
+ }
+
+ return 1;
+}
+
static UINT_PTR CALLBACK winFileDlgSimpleHook(HWND hWnd, UINT uiMsg, WPARAM wParam, LPARAM lParam)
{
(void)wParam;
@@ -152,16 +183,15 @@ static UINT_PTR CALLBACK winFileDlgSimpleHook(HWND hWnd, UINT uiMsg, WPARAM wPar
IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");
if (cb)
{
- char* filename = iupStrGetMemory(MAX_FILENAME_SIZE);
- if (CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE) <= MAX_FILENAME_SIZE)
+ char filename[MAX_FILENAME_SIZE];
+ if (winFileDlgGetSelectedFile(ih, hWnd, filename))
{
int ret;
char* file_msg;
if (!iupdrvIsFile(filename))
- break;
-
- if (pofn->hdr.code == CDN_FILEOK)
+ file_msg = "OTHER";
+ else if (pofn->hdr.code == CDN_FILEOK)
file_msg = "OK";
else
file_msg = "SELECT";
@@ -267,9 +297,9 @@ static UINT_PTR CALLBACK winFileDlgPreviewHook(HWND hWnd, UINT uiMsg, WPARAM wPa
LPDRAWITEMSTRUCT lpDrawItem = (LPDRAWITEMSTRUCT)lParam;
Ihandle* ih = (Ihandle*)GetWindowLongPtr(hWnd, DWLP_USER);
IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");
- char* filename = iupStrGetMemory(MAX_FILENAME_SIZE);
+ char filename[MAX_FILENAME_SIZE];
iupAttribSetStr(ih, "PREVIEWDC", (char*)lpDrawItem->hDC);
- if (CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE) <= MAX_FILENAME_SIZE)
+ if (winFileDlgGetSelectedFile(ih, hWnd, filename))
{
if (iupdrvIsFile(filename))
cb(ih, filename, "PAINT");
@@ -324,16 +354,15 @@ static UINT_PTR CALLBACK winFileDlgPreviewHook(HWND hWnd, UINT uiMsg, WPARAM wPa
case CDN_SELCHANGE:
{
HWND hWndPreview = GetDlgItem(hWnd, IUP_PREVIEWCANVAS);
- char* filename = iupStrGetMemory(MAX_FILENAME_SIZE);
- if (CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE) <= MAX_FILENAME_SIZE)
+ char filename[MAX_FILENAME_SIZE];
+ if (winFileDlgGetSelectedFile(ih, hWnd, filename))
{
int ret;
char* file_msg;
if (!iupdrvIsFile(filename))
- break;
-
- if (pofn->hdr.code == CDN_FILEOK)
+ file_msg = "OTHER";
+ else if (pofn->hdr.code == CDN_FILEOK)
file_msg = "OK";
else
file_msg = "SELECT";
@@ -520,9 +549,14 @@ static int winFileDlgPopup(Ihandle *ih, int x, int y)
if (iupAttribGetBoolean(ih, "MULTIPLEFILES"))
{
int i = 0;
-
+
+ char* dir = iupStrFileGetPath(openfilename.lpstrFile); /* the first part is the directory already */
+ iupAttribStoreStr(ih, "DIRECTORY", dir);
+ free(dir);
+
/* If there is more than one file, replace terminator by the separator */
- if (openfilename.lpstrFile && openfilename.lpstrFile[openfilename.nFileOffset-1] == 0 && openfilename.nFileOffset>0)
+ if (openfilename.lpstrFile[openfilename.nFileOffset-1] == 0 &&
+ openfilename.nFileOffset>0)
{
while (openfilename.lpstrFile[i] != 0 || openfilename.lpstrFile[i+1] != 0)
{
@@ -534,12 +568,16 @@ static int winFileDlgPopup(Ihandle *ih, int x, int y)
}
iupAttribSetStr(ih, "STATUS", "0");
- iupAttribSetStr(ih, "FILEEXIST", NULL);
+ iupAttribSetStr(ih, "FILEEXIST", "YES");
}
else
{
if (iupdrvIsFile(openfilename.lpstrFile)) /* check if file exists */
{
+ char* dir = iupStrFileGetPath(openfilename.lpstrFile);
+ iupAttribStoreStr(ih, "DIRECTORY", dir);
+ free(dir);
+
iupAttribSetStr(ih, "FILEEXIST", "YES");
iupAttribSetStr(ih, "STATUS", "0");
}
diff --git a/iup/src/win/iupwin_focus.c b/iup/src/win/iupwin_focus.c
index 63da02d..2328dea 100755
--- a/iup/src/win/iupwin_focus.c
+++ b/iup/src/win/iupwin_focus.c
@@ -32,7 +32,7 @@
/* Since Windows XP, the focus feedback only appears after the user press a key.
Except for the IupText where the feedback is the caret.
- Before that if you click in a control the focus feedback will be hidden.
+ Before a key is pressed if you click in a control the focus feedback will be hidden.
We manually send WM_CHANGEUISTATE because we do not use IsDialogMessage anymore,
and the focus feedback was not shown even after the used press a key.
@@ -43,19 +43,28 @@
void iupdrvSetFocus(Ihandle *ih)
{
SetFocus(ih->handle);
- SendMessage(ih->handle, WM_CHANGEUISTATE, UIS_CLEAR|UISF_HIDEFOCUS, 0);
+
+ /* See comments above */
+ SendMessage(ih->handle, WM_CHANGEUISTATE, UIS_CLEAR|UISF_HIDEFOCUS, 0); /* clear+hidefocus=showfocus */
}
void iupwinWmSetFocus(Ihandle *ih)
{
Ihandle* dialog = IupGetDialog(ih);
if (ih != dialog)
- iupAttribSetStr(dialog, "_IUPWIN_LASTFOCUS", (char*)ih); /* used by IupMenu */
+ iupAttribSetStr(dialog, "_IUPWIN_LASTFOCUS", (char*)ih); /* used by IupMenu and here. */
else
{
/* if a control inside that dialog had the focus, then reset to it when the dialog gets the focus */
Ihandle* lastfocus = (Ihandle*)iupAttribGet(dialog, "_IUPWIN_LASTFOCUS");
- if (lastfocus) IupSetFocus(lastfocus);
+ if (lastfocus)
+ {
+ /* call the callback and update current focus before changing it again */
+ iupCallGetFocusCb(ih);
+
+ IupSetFocus(lastfocus);
+ return;
+ }
}
iupCallGetFocusCb(ih);
diff --git a/iup/src/win/iupwin_font.c b/iup/src/win/iupwin_font.c
index 659e2d9..c10befb 100755
--- a/iup/src/win/iupwin_font.c
+++ b/iup/src/win/iupwin_font.c
@@ -70,7 +70,7 @@ static IwinFont* winFindFont(const char *standardfont)
if (height < 0)
height_pixels = height; /* already in pixels */
else
- height_pixels = -IUPWIN_PT2PIXEL(height, res);
+ height_pixels = -iupWIN_PT2PIXEL(height, res);
if (height_pixels == 0)
return NULL;
@@ -119,7 +119,7 @@ static void winFontFromLogFont(LOGFONT* logfont, char * font)
int is_strikeout = logfont->lfStrikeOut;
int height_pixels = logfont->lfHeight; /* negative value */
int res = iupwinGetScreenRes();
- int height = IUPWIN_PIXEL2PT(-height_pixels, res); /* return in points */
+ int height = iupWIN_PIXEL2PT(-height_pixels, res); /* return in points */
sprintf(font, "%s, %s%s%s%s %d", logfont->lfFaceName,
is_bold?"Bold ":"",
diff --git a/iup/src/win/iupwin_fontdlg.c b/iup/src/win/iupwin_fontdlg.c
index 0602441..ce27cf2 100755
--- a/iup/src/win/iupwin_fontdlg.c
+++ b/iup/src/win/iupwin_fontdlg.c
@@ -68,7 +68,7 @@ static int winFontDlgPopup(Ihandle* ih, int x, int y)
standardfont = iupAttribGet(ih, "VALUE");
if (!standardfont)
- return IUP_ERROR;
+ standardfont = IupGetGlobal("DEFAULTFONT");
/* parse the old format first */
if (!iupFontParseWin(standardfont, typeface, &height, &is_bold, &is_italic, &is_underline, &is_strikeout))
@@ -81,7 +81,7 @@ static int winFontDlgPopup(Ihandle* ih, int x, int y)
if (height < 0)
height_pixels = height; /* already in pixels */
else
- height_pixels = -IUPWIN_PT2PIXEL(height, res);
+ height_pixels = -iupWIN_PT2PIXEL(height, res);
if (height_pixels == 0)
return IUP_ERROR;
@@ -134,7 +134,7 @@ static int winFontDlgPopup(Ihandle* ih, int x, int y)
if (height < 0) /* not an error, use old value as a reference for the units */
height = height_pixels; /* return in pixels */
else
- height = IUPWIN_PIXEL2PT(-height_pixels, res); /* return in points */
+ height = iupWIN_PIXEL2PT(-height_pixels, res); /* return in points */
iupAttribSetStrf(ih, "VALUE", "%s, %s%s%s%s %d", logfont.lfFaceName,
is_bold?"Bold ":"",
diff --git a/iup/src/win/iupwin_frame.c b/iup/src/win/iupwin_frame.c
index 0949b5d..3f56aed 100755
--- a/iup/src/win/iupwin_frame.c
+++ b/iup/src/win/iupwin_frame.c
@@ -47,6 +47,27 @@ void iupdrvFrameGetDecorOffset(Ihandle* ih, int *x, int *y)
}
}
+static char* winFrameGetBgColorAttrib(Ihandle* ih)
+{
+ if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
+ return NULL;
+ else
+ return iupBaseNativeParentGetBgColorAttrib(ih);
+}
+
+static int winFrameSetBgColorAttrib(Ihandle* ih, const char* value)
+{
+ (void)value;
+
+ if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
+ {
+ IupUpdate(ih); /* post a redraw */
+ return 1;
+ }
+ else
+ return 0;
+}
+
static void winFrameDrawText(HDC hDC, const char* text, int x, int y, COLORREF fgcolor)
{
COLORREF oldcolor;
@@ -126,6 +147,16 @@ static void winFrameDrawItem(Ihandle* ih, DRAWITEMSTRUCT *drawitem)
DrawEdge(hDC, &drawitem->rcItem, EDGE_SUNKEN, BF_RECT);
else
DrawEdge(hDC, &drawitem->rcItem, EDGE_ETCHED, BF_RECT);
+
+ if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
+ {
+ unsigned char r=0, g=0, b=0;
+ char* color = iupAttribGetStr(ih, "BGCOLOR");
+ iupStrToRGB(color, &r, &g, &b);
+ SetDCBrushColor(hDC, RGB(r,g,b));
+ InflateRect(&drawitem->rcItem, -2, -2);
+ FillRect(hDC, &drawitem->rcItem, (HBRUSH)GetStockObject(DC_BRUSH));
+ }
}
iupwinDrawDestroyBitmapDC(&bmpDC);
@@ -169,11 +200,13 @@ static int winFrameMapMethod(Ihandle* ih)
title = iupAttribGet(ih, "TITLE");
if (title)
iupAttribSetStr(ih, "_IUPFRAME_HAS_TITLE", "1");
-
- if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))
- dwExStyle |= WS_EX_COMPOSITED;
else
- dwStyle |= WS_CLIPCHILDREN;
+ {
+ if (iupAttribGet(ih, "BGCOLOR"))
+ iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1");
+ }
+
+ iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);
if (!iupwinCreateWindowEx(ih, "BUTTON", dwExStyle, dwStyle))
return IUP_ERROR;
@@ -195,7 +228,7 @@ void iupdrvFrameInitClass(Iclass* ic)
/* Driver Dependent Attribute functions */
/* Visual */
- iupClassRegisterAttribute(ic, "BGCOLOR", iupBaseNativeParentGetBgColorAttrib, NULL, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);
+ iupClassRegisterAttribute(ic, "BGCOLOR", winFrameGetBgColorAttrib, winFrameSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);
/* Special */
iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_NOT_MAPPED);
diff --git a/iup/src/win/iupwin_globalattrib.c b/iup/src/win/iupwin_globalattrib.c
index a176925..bcd6355 100755
--- a/iup/src/win/iupwin_globalattrib.c
+++ b/iup/src/win/iupwin_globalattrib.c
@@ -148,6 +148,11 @@ int iupdrvSetGlobal(const char *name, const char *value)
winGlobalSendKey(key, 0x03);
return 0;
}
+ if (iupStrEqual(name, "DLL_HINSTANCE"))
+ {
+ iupwin_dll_hinstance = (HINSTANCE)value;
+ return 0;
+ }
return 1;
}
@@ -239,5 +244,7 @@ char *iupdrvGetGlobal(const char *name)
return "YES";
return "NO";
}
+ if (iupStrEqual(name, "DLL_HINSTANCE"))
+ return (char*)iupwin_dll_hinstance;
return NULL;
}
diff --git a/iup/src/win/iupwin_info.c b/iup/src/win/iupwin_info.c
index 8ea7dd4..4d57289 100755
--- a/iup/src/win/iupwin_info.c
+++ b/iup/src/win/iupwin_info.c
@@ -18,7 +18,7 @@
#include "iupwin_info.h"
-int iupwinIsVista(void)
+int iupwinIsVistaOrNew(void)
{
OSVERSIONINFO osvi;
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
diff --git a/iup/src/win/iupwin_info.h b/iup/src/win/iupwin_info.h
index d39bae0..8d461fb 100755
--- a/iup/src/win/iupwin_info.h
+++ b/iup/src/win/iupwin_info.h
@@ -16,7 +16,7 @@ int iupwinGetSystemMajorVersion(void);
int iupwinGetComCtl32Version(void);
char* iupwinGetSystemLanguage(void);
int iupwinIsAppThemed(void);
-int iupwinIsVista(void);
+int iupwinIsVistaOrNew(void);
/* color */
void iupwinGetSysColor(char* color, int wincolor);
diff --git a/iup/src/win/iupwin_key.c b/iup/src/win/iupwin_key.c
index 921ed94..899e837 100755
--- a/iup/src/win/iupwin_key.c
+++ b/iup/src/win/iupwin_key.c
@@ -317,32 +317,32 @@ int iupwinKeyEvent(Ihandle* ih, int wincode, int press)
void iupwinButtonKeySetStatus(WORD keys, char* status, int doubleclick)
{
if (keys & MK_SHIFT)
- iupKEYSETSHIFT(status);
+ iupKEY_SETSHIFT(status);
if (keys & MK_CONTROL)
- iupKEYSETCONTROL(status);
+ iupKEY_SETCONTROL(status);
if (keys & MK_LBUTTON)
- iupKEYSETBUTTON1(status);
+ iupKEY_SETBUTTON1(status);
if (keys & MK_MBUTTON)
- iupKEYSETBUTTON2(status);
+ iupKEY_SETBUTTON2(status);
if (keys & MK_RBUTTON)
- iupKEYSETBUTTON3(status);
+ iupKEY_SETBUTTON3(status);
if (doubleclick)
- iupKEYSETDOUBLE(status);
+ iupKEY_SETDOUBLE(status);
if (GetKeyState(VK_MENU) & 0x8000)
- iupKEYSETALT(status);
+ iupKEY_SETALT(status);
if ((GetKeyState(VK_LWIN) & 0x8000) || (GetKeyState(VK_RWIN) & 0x8000))
- iupKEYSETSYS(status);
+ iupKEY_SETSYS(status);
if (keys & MK_XBUTTON1)
- iupKEYSETBUTTON4(status);
+ iupKEY_SETBUTTON4(status);
if (keys & MK_XBUTTON2)
- iupKEYSETBUTTON5(status);
+ iupKEY_SETBUTTON5(status);
}
diff --git a/iup/src/win/iupwin_label.c b/iup/src/win/iupwin_label.c
index d5a1f53..95dd10c 100755
--- a/iup/src/win/iupwin_label.c
+++ b/iup/src/win/iupwin_label.c
@@ -173,7 +173,7 @@ static int winLabelSetAlignmentAttrib(Ihandle* ih, const char* value)
else /* "ATOP" */
ih->data->vert_alignment = IUP_ALIGN_ATOP;
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
}
return 0;
}
@@ -197,7 +197,7 @@ static int winLabelSetPaddingAttrib(Ihandle* ih, const char* value)
iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');
if (ih->handle && ih->data->type != IUP_LABEL_SEP_HORIZ && ih->data->type != IUP_LABEL_SEP_VERT)
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
return 0;
}
@@ -211,7 +211,7 @@ static int winLabelSetWordWrapAttrib(Ihandle* ih, const char* value)
else
ih->data->text_style &= ~DT_WORDBREAK;
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
}
return 1;
@@ -226,7 +226,7 @@ static int winLabelSetEllipsisAttrib(Ihandle* ih, const char* value)
else
ih->data->text_style &= ~DT_END_ELLIPSIS;
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
}
return 1;
@@ -240,12 +240,24 @@ static int winLabelSetFgColorAttrib(Ihandle* ih, const char* value)
if (iupStrToRGB(value, &r, &g, &b))
{
ih->data->fgcolor = RGB(r,g,b);
- iupdrvDisplayRedraw(ih);
+
+ if (ih->handle)
+ iupdrvRedrawNow(ih);
}
}
return 1;
}
+static int winLabelSetUpdateAttrib(Ihandle* ih, const char* value)
+{
+ (void)value;
+
+ if (ih->handle)
+ iupdrvPostRedraw(ih); /* Post a redraw */
+
+ return 1;
+}
+
static int winLabelProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *result)
{
switch (msg)
@@ -257,6 +269,7 @@ static int winLabelProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *re
*result = WVR_HREDRAW|WVR_VREDRAW;
return 1;
}
+ break;
}
}
@@ -266,7 +279,7 @@ static int winLabelProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *re
static int winLabelMapMethod(Ihandle* ih)
{
char* value;
- DWORD dwStyle = WS_CHILD |
+ DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS |
SS_NOTIFY; /* SS_NOTIFY is necessary because of the base messages */
if (!ih->parent)
@@ -330,7 +343,7 @@ void iupdrvLabelInitClass(Iclass* ic)
/* IupLabel only */
iupClassRegisterAttribute(ic, "ALIGNMENT", winLabelGetAlignmentAttrib, winLabelSetAlignmentAttrib, IUPAF_SAMEASSYSTEM, "ALEFT:ACENTER", IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "IMAGE", NULL, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "IMAGE", NULL, winLabelSetUpdateAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "PADDING", iupLabelGetPaddingAttrib, winLabelSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);
/* IupLabel Windows and GTK only */
diff --git a/iup/src/win/iupwin_list.c b/iup/src/win/iupwin_list.c
index 8fdadb6..cb510b5 100755
--- a/iup/src/win/iupwin_list.c
+++ b/iup/src/win/iupwin_list.c
@@ -154,6 +154,8 @@ void iupdrvListInsertItem(Ihandle* ih, int pos, const char* value)
SendMessage(ih->handle, WIN_INSERTSTRING(ih), pos, (LPARAM)value);
SendMessage(ih->handle, WIN_SETITEMDATA(ih), pos, (LPARAM)iupdrvFontGetStringWidth(ih, value));
winListUpdateScrollWidth(ih);
+
+ iupListUpdateOldValue(ih, pos, 0);
}
void iupdrvListRemoveItem(Ihandle* ih, int pos)
@@ -164,8 +166,14 @@ void iupdrvListRemoveItem(Ihandle* ih, int pos)
int curpos = SendMessage(ih->handle, WIN_GETCURSEL(ih), 0, 0);
if (pos == curpos)
{
- if (curpos > 0) curpos--;
- else curpos++;
+ if (curpos > 0)
+ curpos--;
+ else
+ {
+ curpos=1;
+ if (iupdrvListGetCount(ih)==1)
+ curpos = -1; /* remove the selection */
+ }
SendMessage(ih->handle, WIN_SETCURSEL(ih), curpos, 0);
}
@@ -173,6 +181,8 @@ void iupdrvListRemoveItem(Ihandle* ih, int pos)
SendMessage(ih->handle, WIN_DELETESTRING(ih), pos, 0L);
winListUpdateScrollWidth(ih);
+
+ iupListUpdateOldValue(ih, pos, 1);
}
void iupdrvListRemoveAllItems(Ihandle* ih)
@@ -220,18 +230,29 @@ static void winListUpdateItemWidth(Ihandle* ih)
}
}
+static int winListSetBgColorAttrib(Ihandle *ih, const char *value)
+{
+ (void)value;
+ if (ih->handle)
+ iupdrvPostRedraw(ih);
+ return 1;
+}
+
static int winListSetStandardFontAttrib(Ihandle* ih, const char* value)
{
iupdrvSetStandardFontAttrib(ih, value);
- winListUpdateItemWidth(ih);
- winListUpdateScrollWidth(ih);
+ if (ih->handle)
+ {
+ winListUpdateItemWidth(ih);
+ winListUpdateScrollWidth(ih);
+ }
return 1;
}
static char* winListGetIdValueAttrib(Ihandle* ih, const char* name_id)
{
int pos = iupListGetPos(ih, name_id);
- if (pos != -1)
+ if (pos >= 0)
{
int len = SendMessage(ih->handle, WIN_GETTEXTLEN(ih), (WPARAM)pos, 0);
char* str = iupStrGetMemory(len+1);
@@ -514,8 +535,10 @@ static int winListSetNCAttrib(Ihandle* ih, const char* value)
{
HWND cbedit = (HWND)iupAttribGet(ih, "_IUPWIN_EDITBOX");
SendMessage(cbedit, EM_LIMITTEXT, ih->data->nc, 0L);
+ return 0;
}
- return 0;
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int winListSetSelectionAttrib(Ihandle* ih, const char* value)
@@ -995,13 +1018,27 @@ static int winListEditProc(Ihandle* ih, HWND cbedit, UINT msg, WPARAM wp, LPARAM
if (msg==WM_KEYDOWN) /* process K_ANY before text callbacks */
{
ret = iupwinBaseProc(ih, msg, wp, lp, result);
- if (ret) return 1;
+ if (ret)
+ {
+ iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", "1");
+ *result = 0;
+ return 1;
+ }
+ else
+ iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL);
}
switch (msg)
{
case WM_CHAR:
{
+ if (iupAttribGet(ih, "_IUPWIN_IGNORE_CHAR"))
+ {
+ iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL);
+ *result = 0;
+ return 1;
+ }
+
if ((char)wp == '\b')
{
if (!winListCallEditCb(ih, cbedit, NULL, 0, -1))
@@ -1301,7 +1338,7 @@ static void winListLayoutUpdateMethod(Ihandle *ih)
static int winListMapMethod(Ihandle* ih)
{
char* class_name;
- DWORD dwStyle = WS_CHILD,
+ DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS,
dwExStyle = WS_EX_CLIENTEDGE;
if (!ih->parent)
@@ -1426,7 +1463,7 @@ void iupdrvListInitClass(Iclass* ic)
iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, winListSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NOT_MAPPED);
/* Visual */
- iupClassRegisterAttribute(ic, "BGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_NOT_MAPPED);
+ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winListSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_NOT_MAPPED);
/* Special */
iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "TXTFGCOLOR", IUPAF_NOT_MAPPED);
diff --git a/iup/src/win/iupwin_loop.c b/iup/src/win/iupwin_loop.c
index 7c5dbe7..fd25537 100755
--- a/iup/src/win/iupwin_loop.c
+++ b/iup/src/win/iupwin_loop.c
@@ -106,6 +106,18 @@ int IupMainLoop(void)
return IUP_NOERROR;
}
+int IupLoopStepWait(void)
+{
+ MSG msg;
+ int ret = GetMessage(&msg, NULL, 0, 0);
+ if (ret == -1) /* error */
+ return IUP_ERROR;
+ if (ret == 0 || /* WM_QUIT */
+ winLoopProcessMessage(&msg) == IUP_CLOSE) /* ret != 0 */
+ return IUP_CLOSE;
+ return IUP_DEFAULT;
+}
+
int IupLoopStep(void)
{
MSG msg;
diff --git a/iup/src/win/iupwin_menu.c b/iup/src/win/iupwin_menu.c
index 74a8b52..06ad93e 100755
--- a/iup/src/win/iupwin_menu.c
+++ b/iup/src/win/iupwin_menu.c
@@ -385,7 +385,10 @@ static int winMenuMapMethod(Ihandle* ih)
static void winMenuUnMapMethod(Ihandle* ih)
{
if (iupMenuIsMenuBar(ih))
+ {
SetMenu(ih->parent->handle, NULL);
+ ih->parent = NULL;
+ }
DestroyMenu((HMENU)ih->handle); /* DestroyMenu is recursive */
}
diff --git a/iup/src/win/iupwin_open.c b/iup/src/win/iupwin_open.c
index 7357cde..3629ce4 100755
--- a/iup/src/win/iupwin_open.c
+++ b/iup/src/win/iupwin_open.c
@@ -76,8 +76,9 @@ int iupdrvOpen(int *argc, char ***argv)
iupwin_hinstance = GetModuleHandle(NULL);
IupSetGlobal("HINSTANCE", (char*)iupwin_hinstance);
}
-
- CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
+
+ if (CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)==RPC_E_CHANGED_MODE)
+ IupSetGlobal("_IUPWIN_COINIT_MULTITHREADED", "1");
{
INITCOMMONCONTROLSEX InitCtrls;
diff --git a/iup/src/win/iupwin_progressbar.c b/iup/src/win/iupwin_progressbar.c
index 9038d79..4a52cc4 100755
--- a/iup/src/win/iupwin_progressbar.c
+++ b/iup/src/win/iupwin_progressbar.c
@@ -106,7 +106,7 @@ static int winProgressBarSetFgColorAttrib(Ihandle* ih, const char* value)
static int winProgressBarMapMethod(Ihandle* ih)
{
- DWORD dwStyle = WS_CHILD;
+ DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS;
if (!ih->parent)
return IUP_ERROR;
diff --git a/iup/src/win/iupwin_tabs.c b/iup/src/win/iupwin_tabs.c
index 682f451..b39f7fe 100755
--- a/iup/src/win/iupwin_tabs.c
+++ b/iup/src/win/iupwin_tabs.c
@@ -232,10 +232,7 @@ static HWND winTabCreatePageWindow(Ihandle* ih)
DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS,
dwExStyle = 0;
- if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))
- dwExStyle |= WS_EX_COMPOSITED;
- else
- dwStyle |= WS_CLIPCHILDREN;
+ iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);
hWnd = CreateWindowEx(dwExStyle, "IupTabsPage", NULL, dwStyle,
0, 0, CW_USEDEFAULT, CW_USEDEFAULT,
@@ -255,9 +252,12 @@ static int winTabsSetPaddingAttrib(Ihandle* ih, const char* value)
iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');
if (ih->handle)
+ {
SendMessage(ih->handle, TCM_SETPADDING, 0, MAKELPARAM(ih->data->horiz_padding, ih->data->vert_padding));
-
- return 0;
+ return 0;
+ }
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int winTabsSetMultilineAttrib(Ihandle* ih, const char* value)
@@ -368,6 +368,13 @@ static char* winTabsGetBgColorAttrib(Ihandle* ih)
return IupGetGlobal("DLGBGCOLOR");
}
+static int winTabsSetBgColorAttrib(Ihandle *ih, const char *value)
+{
+ (void)value;
+ iupdrvPostRedraw(ih);
+ return 1;
+}
+
/* ------------------------------------------------------------------------- */
/* winTabs - Calls the user callback to change of tab */
@@ -397,6 +404,7 @@ static int winTabsWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
int prev_pos = SendMessage(ih->handle, TCM_GETCURSEL, 0, 0);
iupAttribSetInt(ih, "_IUPTABS_PREV_CHILD_POS", prev_pos);
+ /* save the previous handle if callback exists */
if (cb)
{
Ihandle* prev_child = IupGetChild(ih, prev_pos);
@@ -420,7 +428,9 @@ static int winTabsWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
Ihandle* prev_child = (Ihandle*)iupAttribGet(ih, "_IUPTABS_PREV_CHILD");
iupAttribSetStr(ih, "_IUPTABS_PREV_CHILD", NULL);
- cb(ih, child, prev_child);
+ /* avoid duplicate calls when a Tab is inside another Tab. */
+ if (prev_child)
+ cb(ih, child, prev_child);
}
}
@@ -522,7 +532,7 @@ static void winTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
}
}
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
}
}
}
@@ -535,12 +545,11 @@ static void winTabsChildRemovedMethod(Ihandle* ih, Ihandle* child)
if (tab_page)
{
int pos = winTabsGetPageWindowPos(ih, tab_page);
+ iupTabsTestRemoveTab(ih, pos);
+
SendMessage(ih->handle, TCM_DELETEITEM, pos, 0);
DestroyWindow(tab_page);
- if (pos==0) pos++;
- iupdrvTabsSetCurrentTab(ih, pos-1);
-
iupAttribSetStr(child, "_IUPTAB_CONTAINER", NULL);
}
}
@@ -564,19 +573,14 @@ static int winTabsMapMethod(Ihandle* ih)
if (ih->data->is_multiline)
dwStyle |= TCS_MULTILINE;
- if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))
- {
- dwExStyle |= WS_EX_COMPOSITED;
+ iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);
- if (!ih->data->is_multiline && iupwinIsVista())
- {
- /* workaround for composite bug in Vista */
- ih->data->is_multiline = 1;
- dwStyle |= TCS_MULTILINE;
- }
+ if (dwExStyle & WS_EX_COMPOSITED && !ih->data->is_multiline && iupwinIsVistaOrNew())
+ {
+ /* workaround for composite bug in Vista */
+ ih->data->is_multiline = 1;
+ dwStyle |= TCS_MULTILINE;
}
- else
- dwStyle |= WS_CLIPCHILDREN;
if (!iupwinCreateWindowEx(ih, WC_TABCONTROL, dwExStyle, dwStyle))
return IUP_ERROR;
@@ -665,7 +669,7 @@ void iupdrvTabsInitClass(Iclass* ic)
/* Driver Dependent Attribute functions */
/* Visual */
- iupClassRegisterAttribute(ic, "BGCOLOR", winTabsGetBgColorAttrib, NULL, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);
+ iupClassRegisterAttribute(ic, "BGCOLOR", winTabsGetBgColorAttrib, winTabsSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);
/* Special */
iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_NOT_MAPPED);
@@ -676,5 +680,9 @@ void iupdrvTabsInitClass(Iclass* ic)
iupClassRegisterAttribute(ic, "MULTILINE", winTabsGetMultilineAttrib, winTabsSetMultilineAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "TABTITLE", NULL, winTabsSetTabTitleAttrib, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, winTabsSetTabImageAttrib, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, winTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);
+ iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, winTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+
+ /* necessary because transparent background does not work when not using visual styles */
+ if (!iupwin_comctl32ver6) /* Used by iupdrvImageCreateImage */
+ iupClassRegisterAttribute(ic, "FLAT_ALPHA", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
}
diff --git a/iup/src/win/iupwin_text.c b/iup/src/win/iupwin_text.c
index dfe489a..2a61724 100755
--- a/iup/src/win/iupwin_text.c
+++ b/iup/src/win/iupwin_text.c
@@ -432,8 +432,8 @@ static int winTextSetLinColToPosition(Ihandle *ih, int lin, int col)
col--;
linmax = SendMessage(ih->handle, EM_GETLINECOUNT, 0, 0L);
- if (lin > linmax)
- lin = linmax;
+ if (lin > linmax-1)
+ lin = linmax-1;
lineindex = SendMessage(ih->handle, EM_LINEINDEX, (WPARAM)lin, 0L);
@@ -639,8 +639,12 @@ static int winTextSetPaddingAttrib(Ihandle* ih, const char* value)
iupStrToIntInt(value, &(ih->data->horiz_padding), &(ih->data->vert_padding), 'x');
ih->data->vert_padding = 0;
if (ih->handle)
+ {
SendMessage(ih->handle, EM_SETMARGINS, EC_LEFTMARGIN|EC_RIGHTMARGIN, MAKELPARAM(ih->data->horiz_padding, ih->data->horiz_padding));
- return 0;
+ return 0;
+ }
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int winTextSetSelectedTextAttrib(Ihandle* ih, const char* value)
@@ -713,8 +717,11 @@ static int winTextSetNCAttrib(Ihandle* ih, const char* value)
SendMessage(ih->handle, EM_EXLIMITTEXT, 0, ih->data->nc); /* so it can be larger than 64k */
else
SendMessage(ih->handle, EM_LIMITTEXT, ih->data->nc, 0L);
+
+ return 0;
}
- return 0;
+ else
+ return 1; /* store until not mapped, when mapped will be set again */
}
static int winTextSetSelectionAttrib(Ihandle* ih, const char* value)
@@ -845,7 +852,7 @@ static char* winTextGetSelectionPosAttrib(Ihandle* ih)
static int winTextSetInsertAttrib(Ihandle* ih, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
if (value)
{
@@ -867,9 +874,9 @@ static int winTextSetInsertAttrib(Ihandle* ih, const char* value)
static int winTextSetAppendAttrib(Ihandle* ih, const char* value)
{
- int len;
+ int pos;
char* str;
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
if (!value) value = "";
str = (char*)value;
@@ -881,9 +888,9 @@ static int winTextSetAppendAttrib(Ihandle* ih, const char* value)
str = iupStrToDos(str);
}
- len = GetWindowTextLength(ih->handle)+1;
- SendMessage(ih->handle, EM_SETSEL, (WPARAM)len, (LPARAM)len);
- if (ih->data->is_multiline && ih->data->append_newline)
+ pos = GetWindowTextLength(ih->handle)+1;
+ SendMessage(ih->handle, EM_SETSEL, (WPARAM)pos, (LPARAM)pos);
+ if (ih->data->is_multiline && ih->data->append_newline && pos!=1)
{
if (ih->data->has_formatting)
SendMessage(ih->handle, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)"\r");
@@ -920,7 +927,7 @@ static int winTextSetTabSizeAttrib(Ihandle* ih, const char* value)
iupStrToInt(value, &tabsize);
tabsize *= 4;
SendMessage(ih->handle, EM_SETTABSTOPS, (WPARAM)1L, (LPARAM)&tabsize);
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
return 1;
}
@@ -1120,6 +1127,7 @@ static int winTextSetBgColorAttrib(Ihandle *ih, const char *value)
SendMessage(ih->handle, EM_SETBKGNDCOLOR, 0, (LPARAM)color);
}
}
+ iupdrvPostRedraw(ih);
return 1;
}
@@ -1529,15 +1537,27 @@ static int winTextProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
ret = iupwinBaseProc(ih, msg, wp, lp, result);
if (ret)
{
+ iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", "1");
*result = 0;
return 1;
}
+ else
+ iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL);
}
switch (msg)
{
case WM_CHAR:
{
+ /* even aborting WM_KEYDOWN, a WM_CHAR will be sent, so ignore it also */
+ /* if a dialog was shown, the loop will be processed, so ignore out of focus WM_CHAR messages */
+ if (GetFocus() != ih->handle || iupAttribGet(ih, "_IUPWIN_IGNORE_CHAR"))
+ {
+ iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL);
+ *result = 0;
+ return 1;
+ }
+
if ((char)wp == '\b')
{
if (!winTextCallActionCb(ih, NULL, 0, -1))
@@ -1736,7 +1756,7 @@ static int winTextProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
static void winTextCreateSpin(Ihandle* ih)
{
HWND hSpin;
- DWORD dwStyle = WS_CHILD|UDS_ARROWKEYS|UDS_HOTTRACK|UDS_NOTHOUSANDS;
+ DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS|UDS_ARROWKEYS|UDS_HOTTRACK|UDS_NOTHOUSANDS;
int serial = iupDialogGetChildId(ih);
if (iupStrEqualNoCase(iupAttribGetStr(ih, "SPINALIGN"), "LEFT"))
@@ -1826,7 +1846,7 @@ static void winTextLayoutUpdateMethod(Ihandle* ih)
static int winTextMapMethod(Ihandle* ih)
{
- DWORD dwStyle = WS_CHILD,
+ DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS,
dwExStyle = 0;
char* winclass = "EDIT", *value;
@@ -1873,7 +1893,7 @@ static int winTextMapMethod(Ihandle* ih)
}
else
{
- dwStyle |= ES_AUTOHSCROLL|ES_NOHIDESEL;
+ dwStyle |= ES_AUTOHSCROLL;
if (iupAttribGetBoolean(ih, "PASSWORD"))
dwStyle |= ES_PASSWORD;
@@ -1950,8 +1970,8 @@ void iupdrvTextInitClass(Iclass* ic)
iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, winTextSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NOT_MAPPED);
/* Overwrite Visual */
- iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winTextSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_NOT_MAPPED);
- iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, winTextSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winTextSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_DEFAULT);
+ iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, winTextSetVisibleAttrib, "YES", "NO", IUPAF_DEFAULT);
/* Special */
iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "TXTFGCOLOR", IUPAF_NOT_MAPPED); /* usually black */
diff --git a/iup/src/win/iupwin_toggle.c b/iup/src/win/iupwin_toggle.c
index fcaa438..c17f594 100755
--- a/iup/src/win/iupwin_toggle.c
+++ b/iup/src/win/iupwin_toggle.c
@@ -35,7 +35,9 @@
void iupdrvToggleAddCheckBox(int *x, int *y)
{
- (*x) += 16+6;
+ (*x) += 16+8;
+ if (!iupwin_comctl32ver6)
+ (*x) += 4;
if ((*y) < 16) (*y) = 16; /* minimum height */
}
@@ -229,7 +231,7 @@ static int winToggleSetImageAttrib(Ihandle* ih, const char* value)
iupAttribSetStr(ih, "IMAGE", (char*)value);
if (iupwin_comctl32ver6)
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
else
{
int check = SendMessage(ih->handle, BM_GETCHECK, 0L, 0L);
@@ -249,7 +251,7 @@ static int winToggleSetImInactiveAttrib(Ihandle* ih, const char* value)
iupAttribSetStr(ih, "IMINACTIVE", (char*)value);
if (iupwin_comctl32ver6)
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
else
{
int check = SendMessage(ih->handle, BM_GETCHECK, 0L, 0L);
@@ -269,7 +271,7 @@ static int winToggleSetImPressAttrib(Ihandle* ih, const char* value)
iupAttribSetStr(ih, "IMPRESS", (char*)value);
if (iupwin_comctl32ver6)
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
else
{
int check = SendMessage(ih->handle, BM_GETCHECK, 0L, 0L);
@@ -339,7 +341,7 @@ static int winToggleSetActiveAttrib(Ihandle* ih, const char* value)
if (iupwin_comctl32ver6)
{
iupBaseSetActiveAttrib(ih, value);
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
return 0;
}
else
@@ -382,11 +384,21 @@ static int winToggleSetPaddingAttrib(Ihandle* ih, const char* value)
iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');
if (ih->handle && iupwin_comctl32ver6 && ih->data->type == IUP_TOGGLE_IMAGE)
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
return 0;
}
+static int winToggleSetUpdateAttrib(Ihandle* ih, const char* value)
+{
+ (void)value;
+
+ if (ih->handle)
+ iupdrvPostRedraw(ih); /* Post a redraw */
+
+ return 1;
+}
+
static int winToggleSetBgColorAttrib(Ihandle* ih, const char* value)
{
(void)value;
@@ -395,7 +407,7 @@ static int winToggleSetBgColorAttrib(Ihandle* ih, const char* value)
/* update internal image cache for controls that have the IMAGE attribute */
iupAttribSetStr(ih, "BGCOLOR", value);
iupImageUpdateParent(ih);
- iupdrvDisplayRedraw(ih);
+ iupdrvRedrawNow(ih);
}
return 1;
}
@@ -591,7 +603,7 @@ static int winToggleMapMethod(Ihandle* ih)
{
Ihandle* radio = iupRadioFindToggleParent(ih);
char* value;
- DWORD dwStyle = WS_CHILD |
+ DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS |
BS_NOTIFY; /* necessary because of the base messages */
if (!ih->parent)
@@ -673,11 +685,11 @@ void iupdrvToggleInitClass(Iclass* ic)
iupClassRegisterAttribute(ic, "BGCOLOR", winToggleGetBgColorAttrib, winToggleSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);
/* Special */
- iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, "DLGFGCOLOR", NULL, IUPAF_NOT_MAPPED); /* force the new default value */
+ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, winToggleSetUpdateAttrib, "DLGFGCOLOR", NULL, IUPAF_NOT_MAPPED); /* force the new default value */
iupClassRegisterAttribute(ic, "TITLE", iupdrvBaseGetTitleAttrib, winToggleSetTitleAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
/* IupToggle only */
- iupClassRegisterAttribute(ic, "ALIGNMENT", NULL, NULL, IUPAF_SAMEASSYSTEM, "ACENTER:ACENTER", IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "ALIGNMENT", NULL, winToggleSetUpdateAttrib, IUPAF_SAMEASSYSTEM, "ACENTER:ACENTER", IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "IMAGE", NULL, winToggleSetImageAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "IMINACTIVE", NULL, winToggleSetImInactiveAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "IMPRESS", NULL, winToggleSetImPressAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
diff --git a/iup/src/win/iupwin_tree.c b/iup/src/win/iupwin_tree.c
index e6877dc..4a5f8be 100755
--- a/iup/src/win/iupwin_tree.c
+++ b/iup/src/win/iupwin_tree.c
@@ -31,17 +31,19 @@
#include "iupwin_draw.h"
#include "iupwin_info.h"
+
typedef struct _winTreeItemData
{
COLORREF color;
unsigned char kind;
- void* userdata;
HFONT hFont;
short image;
short image_expanded;
} winTreeItemData;
-#ifndef TVN_ITEMCHANGING /* Vista Only */
+/* Vista Only */
+
+#ifndef TVN_ITEMCHANGING
typedef struct tagNMTVITEMCHANGE {
NMHDR hdr;
UINT uChanged;
@@ -54,257 +56,125 @@ typedef struct tagNMTVITEMCHANGE {
#define TVN_ITEMCHANGINGW (TVN_FIRST-17)
#endif
-static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem);
-typedef int (*winTreeNodeFunc)(Ihandle* ih, HTREEITEM hItem, void* userdata);
-
-static int winTreeForEach(Ihandle* ih, HTREEITEM hItem, winTreeNodeFunc func, void* userdata)
-{
- HTREEITEM hItemChild;
-
- if (!hItem)
- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
+#ifndef TVS_EX_DOUBLEBUFFER
+#define TVS_EX_DOUBLEBUFFER 0x0004
+#endif
- while(hItem != NULL)
- {
- if (!func(ih, hItem, userdata))
- return 0;
+#ifndef TVM_SETEXTENDEDSTYLE
+#define TVM_SETEXTENDEDSTYLE (TV_FIRST + 44)
+#endif
- hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
- if (hItemChild)
- {
- /* Recursively traverse child items */
- if (!winTreeForEach(ih, hItemChild, func, userdata))
- return 0;
- }
- /* Go to next sibling item */
- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
- }
+static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem);
- return 1;
-}
/*****************************************************************************/
/* FINDING ITEMS */
/*****************************************************************************/
-static HTREEITEM winTreeFindNodeID(Ihandle* ih, HTREEITEM hItem, HTREEITEM hNode)
-{
- TVITEM item;
- winTreeItemData* itemData;
-
- while(hItem != NULL)
- {
- /* ID control to traverse items */
- ih->data->id_control++;
-
- /* StateID founded! */
- if(hItem == hNode)
- return hItem;
- /* Get hItem attributes */
- item.hItem = hItem;
- item.mask = TVIF_HANDLE|TVIF_PARAM;
- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
- itemData = (winTreeItemData*)item.lParam;
-
- /* Check whether we have child items */
- if (itemData->kind == ITREE_BRANCH)
- {
- /* Recursively traverse child items */
- HTREEITEM hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
- hItemChild = winTreeFindNodeID(ih, hItemChild, hNode);
-
- /* StateID founded! */
- if(hItemChild)
- return hItemChild;
- }
- /* Go to next sibling item */
- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
- }
-
- return NULL;
+InodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih)
+{
+ return (InodeHandle*)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CARET, 0);
}
-static int winTreeGetNodeId(Ihandle* ih, HTREEITEM hItem)
+static HTREEITEM winTreeFindNodeXY(Ihandle* ih, int x, int y)
{
- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
- ih->data->id_control = -1;
- if (winTreeFindNodeID(ih, hItemRoot, hItem))
- return ih->data->id_control;
- else
- return -1;
+ TVHITTESTINFO info;
+ info.pt.x = x;
+ info.pt.y = y;
+ return (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)(LPTVHITTESTINFO)&info);
}
-static HTREEITEM winTreeFindUserDataID(Ihandle* ih, HTREEITEM hItem, void* userdata)
+static HTREEITEM winTreeFindNodePointed(Ihandle* ih)
{
- TVITEM item;
- winTreeItemData* itemData;
-
- while(hItem != NULL)
- {
- /* ID control to traverse items */
- ih->data->id_control++;
-
- /* Get hItem attributes */
- item.hItem = hItem;
- item.mask = TVIF_HANDLE|TVIF_PARAM;
- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
- itemData = (winTreeItemData*)item.lParam;
-
- /* userdata founded! */
- if(itemData->userdata == userdata)
- return hItem;
-
- /* Check whether we have child items */
- if (itemData->kind == ITREE_BRANCH)
- {
- /* Recursively traverse child items */
- HTREEITEM hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
- hItemChild = winTreeFindUserDataID(ih, hItemChild, userdata);
-
- /* userdata founded! */
- if (hItemChild)
- return hItemChild;
- }
-
- /* Go to next sibling item */
- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
- }
-
- return NULL;
+ TVHITTESTINFO info;
+ DWORD pos = GetMessagePos();
+ info.pt.x = LOWORD(pos);
+ info.pt.y = HIWORD(pos);
+ ScreenToClient(ih->handle, &info.pt);
+ return (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)(LPTVHITTESTINFO)&info);
}
-static int winTreeGetUserDataId(Ihandle* ih, void* userdata)
+int iupwinGetColor(const char* value, COLORREF *color)
{
- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
- ih->data->id_control = -1;
- if (winTreeFindUserDataID(ih, hItemRoot, userdata))
- return ih->data->id_control;
- else
- return -1;
+ unsigned char r, g, b;
+ if (iupStrToRGB(value, &r, &g, &b))
+ {
+ *color = RGB(r,g,b);
+ return 1;
+ }
+ return 0;
}
-static HTREEITEM winTreeFindNodeFromID(Ihandle* ih, HTREEITEM hItem)
+static void winTreeChildCountRec(Ihandle* ih, HTREEITEM hItem, int *count)
{
- TVITEM item;
- winTreeItemData* itemData;
-
+ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
while(hItem != NULL)
{
- /* ID control to traverse items */
- ih->data->id_control--;
-
- /* StateID founded! */
- if(ih->data->id_control < 0)
- return hItem;
-
- /* Get hItem attributes */
- item.hItem = hItem;
- item.mask = TVIF_HANDLE|TVIF_PARAM;
- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
- itemData = (winTreeItemData*)item.lParam;
-
- /* Check whether we have child items */
- if (itemData->kind == ITREE_BRANCH)
- {
- /* Recursively traverse child items */
- HTREEITEM hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
- hItemChild = winTreeFindNodeFromID(ih, hItemChild);
+ (*count)++;
- /* StateID founded! */
- if(ih->data->id_control < 0)
- return hItemChild;
- }
+ /* go recursive to children */
+ winTreeChildCountRec(ih, hItem, count);
/* Go to next sibling item */
hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
}
-
- return hItem;
}
-static HTREEITEM winTreeFindNodeFromString(Ihandle* ih, const char* name_id)
+int iupdrvTreeTotalChildCount(Ihandle* ih, HTREEITEM hItem)
{
- if (name_id[0])
- {
- HTREEITEM hRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
- iupStrToInt(name_id, &ih->data->id_control);
- return winTreeFindNodeFromID(ih, hRoot);
- }
- else
- return (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CARET, 0);
+ int count = 0;
+ winTreeChildCountRec(ih, hItem, &count);
+ return count;
}
-/* Recursively, find a new brother for the item
- that will have its depth changed. Returns the new brother. */
-static HTREEITEM winTreeFindNewBrother(Ihandle* ih, HTREEITEM hBrotherItem)
+static void winTreeChildRebuildCacheRec(Ihandle* ih, HTREEITEM hItem, int *id)
{
- TVITEM item;
- winTreeItemData* itemData;
-
- while(hBrotherItem != NULL)
+ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
+ while(hItem != NULL)
{
- if(ih->data->id_control < 0)
- return hBrotherItem;
-
- item.hItem = hBrotherItem;
- item.mask = TVIF_HANDLE|TVIF_PARAM;
- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
- itemData = (winTreeItemData*)item.lParam;
-
- if (itemData->kind == ITREE_BRANCH)
- {
- HTREEITEM hItemChild;
-
- ih->data->id_control--;
- hItemChild = winTreeFindNewBrother(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hBrotherItem));
+ (*id)++;
+ ih->data->node_cache[*id].node_handle = hItem;
- if(ih->data->id_control < 0)
- return hItemChild;
- }
+ /* go recursive to children */
+ winTreeChildRebuildCacheRec(ih, hItem, id);
- hBrotherItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hBrotherItem);
+ /* Go to next sibling item */
+ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
}
-
- return hBrotherItem;
}
-static HTREEITEM winTreeFindNodePointed(Ihandle* ih)
+static void winTreeRebuildNodeCache(Ihandle* ih, int id, HTREEITEM hItem)
{
- TVHITTESTINFO info;
- DWORD pos = GetMessagePos();
- info.pt.x = LOWORD(pos);
- info.pt.y = HIWORD(pos);
-
- ScreenToClient(ih->handle, &info.pt);
-
- return (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)(LPTVHITTESTINFO)&info);
+ ih->data->node_cache[id].node_handle = hItem;
+ winTreeChildRebuildCacheRec(ih, hItem, &id);
}
-int iupwinGetColor(const char* value, COLORREF *color)
-{
- unsigned char r, g, b;
- if (iupStrToRGB(value, &r, &g, &b))
- {
- *color = RGB(r,g,b);
- return 1;
- }
- return 0;
-}
/*****************************************************************************/
/* ADDING ITEMS */
/*****************************************************************************/
+
+static void winTreeExpandItem(Ihandle* ih, HTREEITEM hItem, int expand);
+
void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* title, int add)
{
- TVITEM item, tviPrevItem;
+ TVITEM item;
TVINSERTSTRUCT tvins;
- HTREEITEM hPrevItem = winTreeFindNodeFromString(ih, name_id);
- int kindPrev;
+ HTREEITEM hPrevItem = iupTreeGetNodeFromString(ih, name_id);
+ HTREEITEM hItemNew;
winTreeItemData* itemData;
if (!hPrevItem)
- return;
+ {
+ /* check if the root was really specified */
+ int id = 0;
+ if (!iupStrToInt(name_id, &id) || id != -1)
+ return;
+ }
+
+ if (!title)
+ title = "";
itemData = calloc(1, sizeof(winTreeItemData));
itemData->image = -1;
@@ -318,83 +188,71 @@ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t
iupwinGetColor(iupAttribGetStr(ih, "FGCOLOR"), &itemData->color);
if (kind == ITREE_BRANCH)
- {
item.iSelectedImage = item.iImage = (int)ih->data->def_image_collapsed;
-
- if (ih->data->add_expanded)
- {
- item.mask |= TVIF_STATE;
- item.state = item.stateMask = TVIS_EXPANDED;
- item.iSelectedImage = item.iImage = (int)ih->data->def_image_expanded;
- }
- }
else
item.iSelectedImage = item.iImage = (int)ih->data->def_image_leaf;
/* Save the heading level in the node's application-defined data area */
tvins.item = item;
- /* get the KIND attribute of node selected */
- tviPrevItem.hItem = hPrevItem;
- tviPrevItem.mask = TVIF_PARAM|TVIF_CHILDREN;
- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&tviPrevItem);
- kindPrev = ((winTreeItemData*)tviPrevItem.lParam)->kind;
-
- /* Define the parent and the position to the new node inside
- the list, using the KIND attribute of node selected */
- if (kindPrev == ITREE_BRANCH && add)
- {
- tvins.hParent = hPrevItem;
- tvins.hInsertAfter = TVI_FIRST; /* insert the new node after item selected, as first child */
- }
- else
- {
- tvins.hParent = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hPrevItem);
- tvins.hInsertAfter = hPrevItem; /* insert the new node after item selected */
- }
-
- /* Add the node to the tree-view control */
- SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);
-
- if (kindPrev == ITREE_BRANCH && tviPrevItem.cChildren==0)
+ if (hPrevItem)
{
- /* this is the first child, redraw to update the '+'/'-' buttons */
- iupdrvDisplayRedraw(ih);
- }
-}
+ int kindPrev;
+ TVITEM tviPrevItem;
-static void winTreeAddRootNode(Ihandle* ih)
-{
- TVITEM item;
- TVINSERTSTRUCT tvins;
- HTREEITEM hNewItem;
- winTreeItemData* itemData;
+ /* get the KIND attribute of reference node */
+ tviPrevItem.hItem = hPrevItem;
+ tviPrevItem.mask = TVIF_PARAM|TVIF_CHILDREN;
+ SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&tviPrevItem);
+ kindPrev = ((winTreeItemData*)tviPrevItem.lParam)->kind;
- itemData = calloc(1, sizeof(winTreeItemData));
- itemData->image = -1;
- itemData->image_expanded = -1;
- itemData->kind = ITREE_BRANCH;
+ /* Define the parent and the position to the new node inside
+ the list, using the KIND attribute of reference node */
+ if (kindPrev == ITREE_BRANCH && add)
+ {
+ /* depth+1 */
+ tvins.hParent = hPrevItem;
+ tvins.hInsertAfter = TVI_FIRST; /* insert the new node after the reference node, as first child */
+ }
+ else
+ {
+ /* same depth */
+ tvins.hParent = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hPrevItem);
+ tvins.hInsertAfter = hPrevItem; /* insert the new node after reference node */
+ }
- item.mask = TVIF_PARAM | TVIF_STATE | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
- item.state = item.stateMask = TVIS_EXPANDED;
- item.iSelectedImage = item.iImage = (int)ih->data->def_image_expanded;
- item.lParam = (LPARAM)itemData;
+ /* Add the new node */
+ hItemNew = (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);
+ iupTreeAddToCache(ih, add, kindPrev, hPrevItem, hItemNew);
- iupwinGetColor(iupAttribGetStr(ih, "FGCOLOR"), &itemData->color);
+ if (kindPrev == ITREE_BRANCH && tviPrevItem.cChildren==0) /* was 0, now is 1 */
+ {
+ /* this is the first child, redraw to update the '+'/'-' buttons */
+ if (ih->data->add_expanded)
+ winTreeExpandItem(ih, hPrevItem, 1);
+ else
+ winTreeExpandItem(ih, hPrevItem, 0);
+ }
- /* Save the heading level in the node's application-defined data area */
- tvins.item = item;
- tvins.hInsertAfter = TVI_FIRST;
- tvins.hParent = TVI_ROOT;
+ }
+ else
+ {
+ tvins.hInsertAfter = TVI_FIRST;
+ tvins.hParent = TVI_ROOT;
- /* Add the node to the tree-view control */
- hNewItem = (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);
+ /* Add the new node */
+ hItemNew = (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);
+ iupTreeAddToCache(ih, 0, 0, NULL, hItemNew);
- /* MarkStart node */
- iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)hNewItem);
+ if (ih->data->node_count == 1)
+ {
+ /* MarkStart node */
+ iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)hItemNew);
- /* Set the default VALUE */
- winTreeSetFocusNode(ih, hNewItem);
+ /* Set the default VALUE */
+ winTreeSetFocusNode(ih, hItemNew);
+ }
+ }
}
static int winTreeIsItemExpanded(Ihandle* ih, HTREEITEM hItem)
@@ -408,13 +266,28 @@ static int winTreeIsItemExpanded(Ihandle* ih, HTREEITEM hItem)
static void winTreeExpandItem(Ihandle* ih, HTREEITEM hItem, int expand)
{
- if (expand == -1)
- expand = !winTreeIsItemExpanded(ih, hItem); /* toggle */
+ TVITEM item;
+ winTreeItemData* itemData;
+
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", "1");
+ /* it only works if the branch has children */
+ SendMessage(ih->handle, TVM_EXPAND, expand? TVE_EXPAND: TVE_COLLAPSE, (LPARAM)hItem);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", NULL);
+
+ /* update image */
+ item.hItem = hItem;
+ item.mask = TVIF_HANDLE|TVIF_PARAM;
+ SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
+ itemData = (winTreeItemData*)item.lParam;
if (expand)
- SendMessage(ih->handle, TVM_EXPAND, TVE_EXPAND, (LPARAM)hItem);
+ item.iSelectedImage = item.iImage = (itemData->image_expanded!=-1)? itemData->image_expanded: (int)ih->data->def_image_expanded;
else
- SendMessage(ih->handle, TVM_EXPAND, TVE_COLLAPSE, (LPARAM)hItem);
+ item.iSelectedImage = item.iImage = (itemData->image!=-1)? itemData->image: (int)ih->data->def_image_collapsed;
+
+ item.hItem = hItem;
+ item.mask = TVIF_HANDLE | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item);
}
/*****************************************************************************/
@@ -445,12 +318,12 @@ static void winTreeExpandTree(Ihandle* ih, HTREEITEM hItem, int expand)
/* SELECTING ITEMS */
/*****************************************************************************/
-static int winTreeIsItemSelected(Ihandle* ih, HTREEITEM hItem)
+static int winTreeIsNodeSelected(Ihandle* ih, HTREEITEM hItem)
{
return ((SendMessage(ih->handle, TVM_GETITEMSTATE, (WPARAM)hItem, TVIS_SELECTED)) & TVIS_SELECTED)!=0;
}
-static void winTreeSelectItem(Ihandle* ih, HTREEITEM hItem, int select)
+static void winTreeSelectNode(Ihandle* ih, HTREEITEM hItem, int select)
{
TV_ITEM item;
item.mask = TVIF_STATE | TVIF_HANDLE;
@@ -458,16 +331,13 @@ static void winTreeSelectItem(Ihandle* ih, HTREEITEM hItem, int select)
item.hItem = hItem;
if (select == -1)
- select = !winTreeIsItemSelected(ih, hItem);
+ select = !winTreeIsNodeSelected(ih, hItem); /* toggle */
item.state = select ? TVIS_SELECTED : 0;
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)&item);
-}
-
-static HTREEITEM winTreeGetFocusNode(Ihandle* ih)
-{
- return (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CARET, 0);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
}
/* ------------Comment from wxWidgets--------------------
@@ -475,17 +345,17 @@ static HTREEITEM winTreeGetFocusNode(Ihandle* ih)
item without changing anything else. */
static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem)
{
- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
+ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
if (hItem != hItemFocus)
{
/* remember the selection state of the item */
- int wasSelected = winTreeIsItemSelected(ih, hItem);
+ int wasSelected = winTreeIsNodeSelected(ih, hItem);
int wasFocusSelected = 0;
- if (iupwinIsVista())
+ if (iupwinIsVistaOrNew() && iupwin_comctl32ver6)
iupAttribSetStr(ih, "_IUPTREE_ALLOW_CHANGE", (char*)hItem); /* Vista Only */
else
- wasFocusSelected = hItemFocus && winTreeIsItemSelected(ih, hItemFocus);
+ wasFocusSelected = hItemFocus && winTreeIsNodeSelected(ih, hItemFocus);
iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
@@ -493,58 +363,42 @@ static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem)
{
/* prevent the tree from unselecting the old focus which it would do by default */
SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)NULL); /* remove the focus */
- winTreeSelectItem(ih, hItemFocus, 1); /* select again */
+ winTreeSelectNode(ih, hItemFocus, 1); /* select again */
}
SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItem); /* set focus, selection, and unselect the previous focus */
if (!wasSelected)
- winTreeSelectItem(ih, hItem, 0); /* need to clear the selection if was not selected */
+ winTreeSelectNode(ih, hItem, 0); /* need to clear the selection if was not selected */
iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
iupAttribSetStr(ih, "_IUPTREE_ALLOW_CHANGE", NULL);
}
}
-typedef struct _winTreeRange{
- HTREEITEM hItem1, hItem2;
- char inside, clear;
-}winTreeRange;
-
-static int winTreeSelectRangeFunc(Ihandle* ih, HTREEITEM hItem, winTreeRange* range)
+static void winTreeSelectRange(Ihandle* ih, HTREEITEM hItem1, HTREEITEM hItem2, int clear)
{
- int end_range = 0;
-
- if (range->inside == 0) /* detect the range start */
+ int i;
+ int id1 = iupTreeFindNodeId(ih, hItem1);
+ int id2 = iupTreeFindNodeId(ih, hItem2);
+ if (id2 == -1) id2 = ih->data->node_count-1;
+ if (id1 > id2)
{
- if (range->hItem1 == hItem) range->inside=1;
- else if (range->hItem2 == hItem) range->inside=1;
+ int tmp = id1;
+ id1 = id2;
+ id2 = tmp;
}
- else if (range->inside == 1) /* detect the range end */
+
+ for (i = 0; i < ih->data->node_count; i++)
{
- if (range->hItem1 == hItem) end_range=1;
- else if (range->hItem2 == hItem) end_range=1;
+ if (i < id1 || i > id2)
+ {
+ if (clear)
+ winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 0);
+ }
+ else
+ winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 1);
}
-
- if (range->inside == 1) /* if inside, select */
- winTreeSelectItem(ih, hItem, 1);
- else if (range->clear) /* if outside and clear, unselect */
- winTreeSelectItem(ih, hItem, 0);
-
- if (end_range || (range->inside && range->hItem1==range->hItem2))
- range->inside=-1; /* update after selecting the node */
-
- return 1;
-}
-
-static void winTreeSelectRange(Ihandle* ih, HTREEITEM hItemFrom, HTREEITEM hItemTo, int clear)
-{
- winTreeRange range;
- range.hItem1 = hItemFrom;
- range.hItem2 = hItemTo;
- range.inside = 0;
- range.clear = (char)clear;
- winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeSelectRangeFunc, &range);
}
static void winTreeSelectAll(Ihandle* ih)
@@ -558,9 +412,10 @@ static void winTreeClearSelection(Ihandle* ih, HTREEITEM hItemExcept)
winTreeSelectRange(ih, hItemExcept, hItemExcept, 1);
}
-static int winTreeInvertSelectFunc(Ihandle* ih, HTREEITEM hItem, void* userdata)
+static int winTreeInvertSelectFunc(Ihandle* ih, HTREEITEM hItem, int id, void* userdata)
{
- winTreeSelectItem(ih, hItem, -1);
+ (void)id;
+ winTreeSelectNode(ih, hItem, -1);
(void)userdata;
return 1;
}
@@ -568,14 +423,11 @@ static int winTreeInvertSelectFunc(Ihandle* ih, HTREEITEM hItem, void* userdata)
typedef struct _winTreeSelArray{
Iarray* markedArray;
char is_handle;
- int id_control;
}winTreeSelArray;
-static int winTreeSelectedArrayFunc(Ihandle* ih, HTREEITEM hItem, winTreeSelArray* selarray)
+static int winTreeSelectedArrayFunc(Ihandle* ih, HTREEITEM hItem, int id, winTreeSelArray* selarray)
{
- selarray->id_control++;
-
- if (winTreeIsItemSelected(ih, hItem))
+ if (winTreeIsNodeSelected(ih, hItem))
{
if (selarray->is_handle)
{
@@ -587,7 +439,7 @@ static int winTreeSelectedArrayFunc(Ihandle* ih, HTREEITEM hItem, winTreeSelArra
{
int* intArrayData = (int*)iupArrayInc(selarray->markedArray);
int i = iupArrayCount(selarray->markedArray);
- intArrayData[i-1] = selarray->id_control;
+ intArrayData[i-1] = id;
}
}
@@ -599,10 +451,9 @@ static Iarray* winTreeGetSelectedArray(Ihandle* ih)
Iarray* markedArray = iupArrayCreate(1, sizeof(HTREEITEM));
winTreeSelArray selarray;
selarray.markedArray = markedArray;
- selarray.id_control = -1;
selarray.is_handle = 1;
- winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeSelectedArrayFunc, &selarray);
+ iupTreeForEach(ih, (iupTreeNodeFunc)winTreeSelectedArrayFunc, &selarray);
return markedArray;
}
@@ -612,10 +463,9 @@ static Iarray* winTreeGetSelectedArrayId(Ihandle* ih)
Iarray* markedArray = iupArrayCreate(1, sizeof(int));
winTreeSelArray selarray;
selarray.markedArray = markedArray;
- selarray.id_control = -1;
selarray.is_handle = 0;
- winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeSelectedArrayFunc, &selarray);
+ iupTreeForEach(ih, (iupTreeNodeFunc)winTreeSelectedArrayFunc, &selarray);
return markedArray;
}
@@ -625,7 +475,7 @@ static Iarray* winTreeGetSelectedArrayId(Ihandle* ih)
/* COPYING ITEMS (Branches and its children) */
/*****************************************************************************/
/* Insert the copied item in a new location. Returns the new item. */
-static HTREEITEM winTreeCopyItem(Ihandle* ih, HTREEITEM hItem, HTREEITEM hParent, HTREEITEM hPosition, int full_copy)
+static HTREEITEM winTreeCopyItem(Ihandle* ih, HTREEITEM hItem, HTREEITEM hParent, HTREEITEM hPosition, int is_copy)
{
TVITEM item;
TVINSERTSTRUCT tvins;
@@ -637,34 +487,34 @@ static HTREEITEM winTreeCopyItem(Ihandle* ih, HTREEITEM hItem, HTREEITEM hParent
item.cchTextMax = 255;
SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
- if (full_copy) /* during a full copy the userdata reference is not copied */
+ if (is_copy) /* during a copy the itemdata reference is not reused */
{
/* create a new one */
winTreeItemData* itemDataNew = malloc(sizeof(winTreeItemData));
memcpy(itemDataNew, (void*)item.lParam, sizeof(winTreeItemData));
- itemDataNew->userdata = NULL;
item.lParam = (LPARAM)itemDataNew;
}
- /* Copy everything including user data reference */
+ /* Copy everything including itemdata reference */
tvins.item = item;
tvins.hInsertAfter = hPosition;
tvins.hParent = hParent;
- /* Add the node to the tree-view control */
+ /* Add the new node */
+ ih->data->node_count++;
return (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);
}
-static void winTreeCopyChildren(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int full_copy)
+static void winTreeCopyChildren(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int is_copy)
{
HTREEITEM hChildSrc = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItemSrc);
- HTREEITEM hNewItem = TVI_FIRST;
+ HTREEITEM hItemNew = TVI_FIRST;
while (hChildSrc != NULL)
{
- hNewItem = winTreeCopyItem(ih, hChildSrc, hItemDst, hNewItem, full_copy); /* Use the same order they where enumerated */
+ hItemNew = winTreeCopyItem(ih, hChildSrc, hItemDst, hItemNew, is_copy); /* Use the same order they where enumerated */
/* Recursively transfer all the items */
- winTreeCopyChildren(ih, hChildSrc, hNewItem, full_copy);
+ winTreeCopyChildren(ih, hChildSrc, hItemNew, is_copy);
/* Go to next sibling item */
hChildSrc = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hChildSrc);
@@ -672,11 +522,18 @@ static void winTreeCopyChildren(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItem
}
/* Copies all items in a branch to a new location. Returns the new branch node. */
-static HTREEITEM winTreeCopyNode(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int full_copy)
+static HTREEITEM winTreeCopyMoveNode(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int is_copy)
{
- HTREEITEM hNewItem, hParent;
+ HTREEITEM hItemNew, hParent;
TVITEM item;
winTreeItemData* itemDataDst;
+ int id_new, count, id_src, id_dst;
+
+ int old_count = ih->data->node_count;
+
+ id_src = iupTreeFindNodeId(ih, hItemSrc);
+ id_dst = iupTreeFindNodeId(ih, hItemDst);
+ id_new = id_dst+1; /* contains the position for a copy operation */
/* Get DST node attributes */
item.hItem = hItemDst;
@@ -691,31 +548,64 @@ static HTREEITEM winTreeCopyNode(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hIte
hItemDst = TVI_FIRST;
}
else
- {
+ {
+ if (itemDataDst->kind == ITREE_BRANCH)
+ {
+ int child_count = iupdrvTreeTotalChildCount(ih, hItemDst);
+ id_new += child_count;
+ }
+
/* copy as next brother of item or collapsed branch */
hParent = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hItemDst);
}
- hNewItem = winTreeCopyItem(ih, hItemSrc, hParent, hItemDst, full_copy);
+ /* move to the same place does nothing */
+ if (!is_copy && id_new == id_src)
+ return NULL;
+
+ hItemNew = winTreeCopyItem(ih, hItemSrc, hParent, hItemDst, is_copy);
+
+ winTreeCopyChildren(ih, hItemSrc, hItemNew, is_copy);
+
+ count = ih->data->node_count - old_count;
+ iupTreeCopyMoveCache(ih, id_src, id_new, count, is_copy);
+
+ if (!is_copy)
+ {
+ /* Deleting the node (and its children) from the old position */
+ /* do not delete the itemdata, we reuse the references in CopyNode */
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemSrc);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
- winTreeCopyChildren(ih, hItemSrc, hNewItem, full_copy);
+ /* restore count, because we remove src */
+ ih->data->node_count = old_count;
- return hNewItem;
+ /* compensate position for a move */
+ if (id_new > id_src)
+ id_new -= count;
+ }
+
+ winTreeRebuildNodeCache(ih, id_new, hItemNew);
+
+ return hItemNew;
}
/*****************************************************************************/
/* MANIPULATING IMAGES */
/*****************************************************************************/
-static void winTreeUpdateImages(Ihandle* ih, HTREEITEM hItem, int mode)
+static void winTreeUpdateImages(Ihandle* ih, int mode)
{
- HTREEITEM hItemChild;
+ HTREEITEM hItem;
TVITEM item;
winTreeItemData* itemData;
+ int i;
/* called when one of the default images is changed */
-
- while(hItem != NULL)
+ for (i = 0; i < ih->data->node_count; i++)
{
+ hItem = ih->data->node_cache[i].node_handle;
+
/* Get node attributes */
item.hItem = hItem;
item.mask = TVIF_HANDLE | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_STATE;
@@ -742,10 +632,6 @@ static void winTreeUpdateImages(Ihandle* ih, HTREEITEM hItem, int mode)
SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item);
}
}
-
- /* Recursively traverse child items */
- hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
- winTreeUpdateImages(ih, hItemChild, mode);
}
else
{
@@ -756,9 +642,6 @@ static void winTreeUpdateImages(Ihandle* ih, HTREEITEM hItem, int mode)
SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item);
}
}
-
- /* Go to next sibling node */
- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
}
}
@@ -828,29 +711,57 @@ static int winTreeCallBranchLeafCb(Ihandle* ih, HTREEITEM hItem)
if (itemData->kind == ITREE_BRANCH)
{
+ if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCH_CB"))
+ return IUP_DEFAULT;
+
if (item.state & TVIS_EXPANDED)
{
IFni cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB");
if (cbBranchClose)
- return cbBranchClose(ih, winTreeGetNodeId(ih, hItem));
+ return cbBranchClose(ih, iupTreeFindNodeId(ih, hItem));
}
else
{
IFni cbBranchOpen = (IFni)IupGetCallback(ih, "BRANCHOPEN_CB");
if (cbBranchOpen)
- return cbBranchOpen(ih, winTreeGetNodeId(ih, hItem));
+ return cbBranchOpen(ih, iupTreeFindNodeId(ih, hItem));
}
}
else
{
IFni cbExecuteLeaf = (IFni)IupGetCallback(ih, "EXECUTELEAF_CB");
if (cbExecuteLeaf)
- return cbExecuteLeaf(ih, winTreeGetNodeId(ih, hItem));
+ return cbExecuteLeaf(ih, iupTreeFindNodeId(ih, hItem));
}
return IUP_DEFAULT;
}
+static void winTreeCallMultiUnSelectionCb(Ihandle* ih)
+{
+ IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTIUNSELECTION_CB");
+ IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");
+ if (cbSelec || cbMulti)
+ {
+ Iarray* markedArray = winTreeGetSelectedArrayId(ih);
+ int* id_hitem = (int*)iupArrayGetData(markedArray);
+ int i, count = iupArrayCount(markedArray);
+
+ if (count > 1)
+ {
+ if (cbMulti)
+ cbMulti(ih, id_hitem, iupArrayCount(markedArray));
+ else
+ {
+ for (i=0; i<count; i++)
+ cbSelec(ih, id_hitem[i], 0);
+ }
+ }
+
+ iupArrayDestroy(markedArray);
+ }
+}
+
static void winTreeCallMultiSelectionCb(Ihandle* ih)
{
IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTISELECTION_CB");
@@ -885,6 +796,8 @@ static void winTreeCallSelectionCb(Ihandle* ih, int status, HTREEITEM hItem)
IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");
if (cbSelec)
{
+ int id;
+
if (ih->data->mark_mode == ITREE_MARK_MULTIPLE && IupGetCallback(ih,"MULTISELECTION_CB"))
{
if ((GetKeyState(VK_SHIFT) & 0x8000))
@@ -894,7 +807,9 @@ static void winTreeCallSelectionCb(Ihandle* ih, int status, HTREEITEM hItem)
if (iupAttribGet(ih, "_IUPTREE_IGNORE_SELECTION_CB"))
return;
- cbSelec(ih, winTreeGetNodeId(ih, hItem), status);
+ id = iupTreeFindNodeId(ih, hItem);
+ if (id != -1)
+ cbSelec(ih, id, status);
}
}
@@ -911,8 +826,8 @@ static int winTreeCallDragDropCb(Ihandle* ih, HTREEITEM hItemDrag, HTREEITEM hIt
if (cbDragDrop)
{
- int drag_id = winTreeGetNodeId(ih, hItemDrag);
- int drop_id = winTreeGetNodeId(ih, hItemDrop);
+ int drag_id = iupTreeFindNodeId(ih, hItemDrag);
+ int drop_id = iupTreeFindNodeId(ih, hItemDrop);
return cbDragDrop(ih, drag_id, drop_id, is_shift, *is_ctrl);
}
@@ -929,8 +844,8 @@ static int winTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value)
{
ih->data->def_image_expanded = (void*)winTreeGetImageIndex(ih, value);
- /* Update all images, starting at root node */
- winTreeUpdateImages(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0), ITREE_UPDATEIMAGE_EXPANDED);
+ /* Update all images */
+ winTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED);
return 1;
}
@@ -939,8 +854,8 @@ static int winTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value)
{
ih->data->def_image_collapsed = (void*)winTreeGetImageIndex(ih, value);
- /* Update all images, starting at root node */
- winTreeUpdateImages(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0), ITREE_UPDATEIMAGE_COLLAPSED);
+ /* Update all images */
+ winTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED);
return 1;
}
@@ -949,8 +864,8 @@ static int winTreeSetImageLeafAttrib(Ihandle* ih, const char* value)
{
ih->data->def_image_leaf = (void*)winTreeGetImageIndex(ih, value);
- /* Update all images, starting at root node */
- winTreeUpdateImages(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0), ITREE_UPDATEIMAGE_LEAF);
+ /* Update all images */
+ winTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF);
return 1;
}
@@ -959,7 +874,7 @@ static int winTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const
{
TVITEM item;
winTreeItemData* itemData;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return 0;
@@ -986,7 +901,7 @@ static int winTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v
{
TVITEM item;
winTreeItemData* itemData;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return 0;
@@ -1025,7 +940,7 @@ static int winTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v
static int winTreeSetTopItemAttrib(Ihandle* ih, const char* value)
{
- HTREEITEM hItem = winTreeFindNodeFromString(ih, value);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, value);
if (hItem)
SendMessage(ih->handle, TVM_ENSUREVISIBLE, 0, (LPARAM)hItem);
return 0;
@@ -1056,9 +971,8 @@ static int winTreeSetSpacingAttrib(Ihandle* ih, const char* value)
static int winTreeSetExpandAllAttrib(Ihandle* ih, const char* value)
{
HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
- HTREEITEM hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItemRoot); /* skip the root node that is always expanded */
int expand = iupStrBoolean(value);
- winTreeExpandTree(ih, hItem, expand);
+ winTreeExpandTree(ih, hItemRoot, expand);
return 0;
}
@@ -1131,7 +1045,7 @@ static char* winTreeGetTitle(Ihandle* ih, HTREEITEM hItem)
static char* winTreeGetTitleAttrib(Ihandle* ih, const char* name_id)
{
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return NULL;
return winTreeGetTitle(ih, hItem);
@@ -1140,10 +1054,13 @@ static char* winTreeGetTitleAttrib(Ihandle* ih, const char* name_id)
static int winTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* value)
{
TVITEM item;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return 0;
+ if (!value)
+ value = "";
+
item.hItem = hItem;
item.mask = TVIF_HANDLE | TVIF_TEXT;
item.pszText = (char*)value;
@@ -1151,60 +1068,11 @@ static int winTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* v
return 0;
}
-static char* winTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id)
-{
- int id;
- char* str = (char*)(name_id+1); /* skip ':' */
- void* userdata = NULL;
- if (sscanf(str, "%p", &userdata)!=1)
- return NULL;
- id = winTreeGetUserDataId(ih, userdata);
- if (id == -1)
- return NULL;
- str = iupStrGetMemory(16);
- sprintf(str, "%d", id);
- return str;
-}
-
-static char* winTreeGetUserDataAttrib(Ihandle* ih, const char* name_id)
-{
- TVITEM item;
- winTreeItemData* itemData;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
- if (!hItem)
- return NULL;
-
- item.hItem = hItem;
- item.mask = TVIF_HANDLE | TVIF_PARAM;
- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
- itemData = (winTreeItemData*)item.lParam;
-
- return itemData->userdata;
-}
-
-static int winTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value)
-{
- TVITEM item;
- winTreeItemData* itemData;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
- if (!hItem)
- return 0;
-
- item.hItem = hItem;
- item.mask = TVIF_HANDLE | TVIF_PARAM;
- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
- itemData = (winTreeItemData*)item.lParam;
-
- itemData->userdata = (void*)value;
-
- return 0;
-}
-
static char* winTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id)
{
TVITEM item;
winTreeItemData* itemData;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return NULL;
@@ -1220,7 +1088,7 @@ static int winTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha
{
TVITEM item;
winTreeItemData* itemData;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return 0;
@@ -1230,11 +1098,23 @@ static int winTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha
itemData = (winTreeItemData*)item.lParam;
if (value)
+ {
itemData->hFont = iupwinGetHFont(value);
+ if (itemData->hFont)
+ {
+ TV_ITEM item;
+ item.mask = TVIF_STATE | TVIF_HANDLE | TVIF_TEXT;
+ item.stateMask = TVIS_BOLD;
+ item.hItem = hItem;
+ item.pszText = winTreeGetTitle(ih, hItem); /* reset text to resize item */
+ item.state = (strstr(value, "Bold")||strstr(value, "BOLD"))? TVIS_BOLD: 0;
+ SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)&item);
+ }
+ }
else
itemData->hFont = NULL;
- iupdrvDisplayUpdate(ih);
+ iupdrvPostRedraw(ih);
return 0;
}
@@ -1259,7 +1139,7 @@ static char* winTreeGetStateAttrib(Ihandle* ih, const char* name_id)
{
TVITEM item;
winTreeItemData* itemData;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return NULL;
@@ -1281,25 +1161,34 @@ static char* winTreeGetStateAttrib(Ihandle* ih, const char* name_id)
static int winTreeSetStateAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ TVITEM item;
+ winTreeItemData* itemData;
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return 0;
- winTreeExpandItem(ih, hItem, iupStrEqualNoCase(value, "EXPANDED"));
+ /* Get Children: branch or leaf */
+ item.mask = TVIF_HANDLE|TVIF_PARAM;
+ item.hItem = hItem;
+ SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
+ itemData = (winTreeItemData*)item.lParam;
+
+ if (itemData->kind == ITREE_BRANCH)
+ winTreeExpandItem(ih, hItem, iupStrEqualNoCase(value, "EXPANDED"));
+
return 0;
}
static char* winTreeGetDepthAttrib(Ihandle* ih, const char* name_id)
{
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
- int depth = 0;
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ int depth = -1;
char* str;
- if (!hItem)
+ if (!hItem)
return NULL;
- while((hItemRoot != hItem) && (hItem != NULL))
+ while(hItem != NULL)
{
hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hItem);
depth++;
@@ -1314,12 +1203,13 @@ static int winTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char
{
HTREEITEM hItemDst, hParent, hItemSrc;
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
- hItemSrc = winTreeFindNodeFromString(ih, name_id);
+
+ hItemSrc = iupTreeGetNodeFromString(ih, name_id);
if (!hItemSrc)
return 0;
- hItemDst = winTreeFindNodeFromString(ih, value);
+ hItemDst = iupTreeGetNodeFromString(ih, value);
if (!hItemDst)
return 0;
@@ -1332,11 +1222,8 @@ static int winTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char
return 0;
}
- /* Copying the node and its children to the new position */
- winTreeCopyNode(ih, hItemSrc, hItemDst, 0); /* not a full copy, preserve user data */
-
- /* do not delete the user data, we copy the references in CopyNode */
- SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemSrc);
+ /* Move the node and its children to the new position */
+ winTreeCopyMoveNode(ih, hItemSrc, hItemDst, 0);
return 0;
}
@@ -1345,12 +1232,13 @@ static int winTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char
{
HTREEITEM hItemDst, hParent, hItemSrc;
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
- hItemSrc = winTreeFindNodeFromString(ih, name_id);
+
+ hItemSrc = iupTreeGetNodeFromString(ih, name_id);
if (!hItemSrc)
return 0;
- hItemDst = winTreeFindNodeFromString(ih, value);
+ hItemDst = iupTreeGetNodeFromString(ih, value);
if (!hItemDst)
return 0;
@@ -1363,8 +1251,8 @@ static int winTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char
return 0;
}
- /* Copying the node and its children to the new position */
- winTreeCopyNode(ih, hItemSrc, hItemDst, 1);
+ /* Copy the node and its children to the new position */
+ winTreeCopyMoveNode(ih, hItemSrc, hItemDst, 1);
return 0;
}
@@ -1375,7 +1263,7 @@ static char* winTreeGetColorAttrib(Ihandle* ih, const char* name_id)
char* str;
TVITEM item;
winTreeItemData* itemData;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return NULL;
@@ -1398,7 +1286,7 @@ static int winTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v
unsigned char r, g, b;
TVITEM item;
winTreeItemData* itemData;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return 0;
@@ -1410,7 +1298,7 @@ static int winTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v
if (iupStrToRGB(value, &r, &g, &b))
{
itemData->color = RGB(r,g,b);
- iupdrvDisplayUpdate(ih);
+ iupdrvPostRedraw(ih);
}
return 0;
@@ -1435,7 +1323,7 @@ static char* winTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)
{
int count;
char* str;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return NULL;
@@ -1454,18 +1342,11 @@ static char* winTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)
return str;
}
-static char* winTreeGetCountAttrib(Ihandle* ih)
-{
- char* str = iupStrGetMemory(10);
- sprintf(str, "%d", (int)SendMessage(ih->handle, TVM_GETCOUNT, 0, 0));
- return str;
-}
-
static char* winTreeGetKindAttrib(Ihandle* ih, const char* name_id)
{
TVITEM item;
winTreeItemData* itemData;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return NULL;
@@ -1483,7 +1364,7 @@ static char* winTreeGetKindAttrib(Ihandle* ih, const char* name_id)
static char* winTreeGetParentAttrib(Ihandle* ih, const char* name_id)
{
char* str;
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return NULL;
@@ -1492,15 +1373,13 @@ static char* winTreeGetParentAttrib(Ihandle* ih, const char* name_id)
return NULL;
str = iupStrGetMemory(10);
- sprintf(str, "%d", winTreeGetNodeId(ih, hItem));
+ sprintf(str, "%d", iupTreeFindNodeId(ih, hItem));
return str;
}
-static void winTreeDelNodeData(Ihandle* ih, HTREEITEM hItem)
+static void winTreeRemoveItemData(Ihandle* ih, HTREEITEM hItem, IFns cb, int id)
{
TVITEM item;
- HTREEITEM hChildItem;
-
item.hItem = hItem;
item.mask = TVIF_HANDLE|TVIF_PARAM;
if (SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item))
@@ -1508,81 +1387,153 @@ static void winTreeDelNodeData(Ihandle* ih, HTREEITEM hItem)
winTreeItemData* itemData = (winTreeItemData*)item.lParam;
if (itemData)
{
- IFnis cb = (IFnis)IupGetCallback(ih, "NODEREMOVED_CB");
- if (cb) cb(ih, winTreeGetNodeId(ih, hItem), (char*)itemData->userdata);
+ if (cb)
+ cb(ih, (char*)ih->data->node_cache[id].userdata);
+
free(itemData);
item.lParam = (LPARAM)NULL;
SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item);
}
}
+}
+
+static void winTreeRemoveNodeDataRec(Ihandle* ih, HTREEITEM hItem, IFns cb, int *id)
+{
+ int old_id = *id;
- hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
+ /* Check whether we have child items */
+ /* remove from children first */
+ HTREEITEM hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
while (hChildItem)
{
- winTreeDelNodeData(ih, hChildItem);
+ /* go recursive to children */
+ winTreeRemoveNodeDataRec(ih, hChildItem, cb, id);
+
+ /* Go to next sibling item */
hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hChildItem);
}
+
+ /* actually do it for the node */
+ ih->data->node_count--;
+ (*id)++;
+
+ winTreeRemoveItemData(ih, hItem, cb, old_id);
+}
+
+static void winTreeRemoveNodeData(Ihandle* ih, HTREEITEM hItem, int call_cb)
+{
+ IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL;
+ int old_count = ih->data->node_count;
+ int id = iupTreeFindNodeId(ih, hItem);
+ int old_id = id;
+
+ winTreeRemoveNodeDataRec(ih, hItem, cb, &id);
+
+ if (call_cb)
+ iupTreeDelFromCache(ih, old_id, old_count-ih->data->node_count);
+}
+
+static void winTreeRemoveAllNodeData(Ihandle* ih, int call_cb)
+{
+ IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL;
+ int i, old_count = ih->data->node_count;
+ HTREEITEM hItem;
+
+ for (i = 0; i < ih->data->node_count; i++)
+ {
+ hItem = ih->data->node_cache[i].node_handle;
+ winTreeRemoveItemData(ih, hItem, cb, i);
+ }
+
+ ih->data->node_count = 0;
+
+ if (call_cb)
+ iupTreeDelFromCache(ih, 0, old_count);
}
static int winTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
- if(iupStrEqualNoCase(value, "SELECTED")) /* selected here means the specified one */
+ if (iupStrEqualNoCase(value, "ALL"))
{
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
+ winTreeRemoveAllNodeData(ih, 1);
- /* the root node can't be deleted */
- if(!hItem || hItem == hItemRoot)
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ return 0;
+ }
+ if (iupStrEqualNoCase(value, "SELECTED")) /* selected here means the reference one */
+ {
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if(!hItem)
return 0;
- /* deleting the specified node (and it's children) */
- winTreeDelNodeData(ih, hItem);
+ /* deleting the reference node (and it's children) */
+ winTreeRemoveNodeData(ih, hItem, 1);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItem);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
return 0;
}
- else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the specified one */
+ else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the reference node */
{
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
HTREEITEM hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
if(!hItem)
return 0;
- /* deleting the selected node's children */
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+
+ /* deleting the reference node children */
while (hChildItem)
{
- winTreeDelNodeData(ih, hChildItem);
+ winTreeRemoveNodeData(ih, hChildItem, 1);
SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hChildItem);
hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
}
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
return 0;
}
else if(iupStrEqualNoCase(value, "MARKED"))
{
- int i, count;
- Iarray* markedArray;
- HTREEITEM* hItemArrayData;
- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
+ int i, del_focus = 0;
+ HTREEITEM hItemFocus;
- /* Delete the array of marked nodes */
- markedArray = winTreeGetSelectedArray(ih);
- hItemArrayData = (HTREEITEM*)iupArrayGetData(markedArray);
- count = iupArrayCount(markedArray);
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ hItemFocus = iupdrvTreeGetFocusNode(ih);
- for(i = 0; i < count; i++)
+ for(i = 1; i < ih->data->node_count; /* increment only if not removed */)
{
- if (hItemArrayData[i] != hItemRoot) /* the root node can't be deleted */
+ if (winTreeIsNodeSelected(ih, ih->data->node_cache[i].node_handle))
{
- winTreeDelNodeData(ih, hItemArrayData[i]);
- SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemArrayData[i]);
+ HTREEITEM hItem = ih->data->node_cache[i].node_handle;
+ if (hItemFocus == hItem)
+ {
+ del_focus = 1;
+ i++;
+ }
+ else
+ {
+ winTreeRemoveNodeData(ih, hItem, 1);
+ SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItem);
+ }
}
+ else
+ i++;
}
- iupArrayDestroy(markedArray);
+ if (del_focus)
+ {
+ winTreeRemoveNodeData(ih, hItemFocus, 1);
+ SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemFocus);
+ }
+
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
return 0;
}
@@ -1592,22 +1543,13 @@ static int winTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char*
static int winTreeSetRenameAttrib(Ihandle* ih, const char* value)
{
- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
if (ih->data->show_rename)
{
- IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");
- if (cbShowRename)
- cbShowRename(ih, winTreeGetNodeId(ih, hItemFocus));
-
+ HTREEITEM hItemFocus;
SetFocus(ih->handle); /* the tree must have focus to activate the edit */
+ hItemFocus = iupdrvTreeGetFocusNode(ih);
SendMessage(ih->handle, TVM_EDITLABEL, 0, (LPARAM)hItemFocus);
}
- else
- {
- IFnis cbRenameNode = (IFnis)IupGetCallback(ih, "RENAMENODE_CB");
- if (cbRenameNode)
- cbRenameNode(ih, winTreeGetNodeId(ih, hItemFocus), winTreeGetTitle(ih, hItemFocus));
- }
(void)value;
return 0;
@@ -1615,11 +1557,11 @@ static int winTreeSetRenameAttrib(Ihandle* ih, const char* value)
static char* winTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)
{
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return NULL;
- if (winTreeIsItemSelected(ih, hItem))
+ if (winTreeIsNodeSelected(ih, hItem))
return "YES";
else
return "NO";
@@ -1627,17 +1569,23 @@ static char* winTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)
static int winTreeSetMarkedAttrib(Ihandle* ih, const char* name_id, const char* value)
{
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return 0;
- winTreeSelectItem(ih, hItem, iupStrBoolean(value));
+ if (ih->data->mark_mode==ITREE_MARK_SINGLE)
+ {
+ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
+ winTreeSelectNode(ih, hItemFocus, 0);
+ }
+
+ winTreeSelectNode(ih, hItem, iupStrBoolean(value));
return 0;
}
static int winTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)
{
- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
if (!hItem)
return 0;
@@ -1649,15 +1597,59 @@ static int winTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)
static char* winTreeGetValueAttrib(Ihandle* ih)
{
char* str;
- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
+ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
if (!hItemFocus)
- return "0"; /* default VALUE is root */
+ {
+ if (ih->data->node_count)
+ return "0"; /* default VALUE is root */
+ else
+ return "-1";
+ }
str = iupStrGetMemory(16);
- sprintf(str, "%d", winTreeGetNodeId(ih, hItemFocus));
+ sprintf(str, "%d", iupTreeFindNodeId(ih, hItemFocus));
+ return str;
+}
+
+static char* winTreeGetMarkedNodesAttrib(Ihandle* ih)
+{
+ char* str = iupStrGetMemory(ih->data->node_count+1);
+ int i;
+
+ for (i=0; i<ih->data->node_count; i++)
+ {
+ if (winTreeIsNodeSelected(ih, ih->data->node_cache[i].node_handle))
+ str[i] = '+';
+ else
+ str[i] = '-';
+ }
+
+ str[ih->data->node_count] = 0;
return str;
}
+static int winTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value)
+{
+ int count, i;
+
+ if (ih->data->mark_mode==ITREE_MARK_SINGLE || !value)
+ return 0;
+
+ count = strlen(value);
+ if (count > ih->data->node_count)
+ count = ih->data->node_count;
+
+ for (i=0; i<count; i++)
+ {
+ if (value[i] == '+')
+ winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 1);
+ else
+ winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 0);
+ }
+
+ return 0;
+}
+
static int winTreeSetMarkAttrib(Ihandle* ih, const char* value)
{
if (ih->data->mark_mode==ITREE_MARK_SINGLE)
@@ -1665,7 +1657,7 @@ static int winTreeSetMarkAttrib(Ihandle* ih, const char* value)
if(iupStrEqualNoCase(value, "BLOCK"))
{
- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
+ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
winTreeSelectRange(ih, (HTREEITEM)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"), hItemFocus, 0);
}
else if(iupStrEqualNoCase(value, "CLEARALL"))
@@ -1673,14 +1665,14 @@ static int winTreeSetMarkAttrib(Ihandle* ih, const char* value)
else if(iupStrEqualNoCase(value, "MARKALL"))
winTreeSelectAll(ih);
else if(iupStrEqualNoCase(value, "INVERTALL")) /* INVERTALL *MUST* appear before INVERT, or else INVERTALL will never be called. */
- winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeInvertSelectFunc, NULL);
+ iupTreeForEach(ih, (iupTreeNodeFunc)winTreeInvertSelectFunc, NULL);
else if(iupStrEqualPartial(value, "INVERT")) /* iupStrEqualPartial allows the use of "INVERTid" form */
{
- HTREEITEM hItem = winTreeFindNodeFromString(ih, &value[strlen("INVERT")]);
+ HTREEITEM hItem = iupTreeGetNodeFromString(ih, &value[strlen("INVERT")]);
if (!hItem)
return 0;
- winTreeSelectItem(ih, hItem, -1); /* toggle */
+ winTreeSelectNode(ih, hItem, -1); /* toggle */
}
else
{
@@ -1690,10 +1682,10 @@ static int winTreeSetMarkAttrib(Ihandle* ih, const char* value)
if (iupStrToStrStr(value, str1, str2, '-')!=2)
return 0;
- hItem1 = winTreeFindNodeFromString(ih, str1);
+ hItem1 = iupTreeGetNodeFromString(ih, str1);
if (!hItem1)
return 0;
- hItem2 = winTreeFindNodeFromString(ih, str2);
+ hItem2 = iupTreeGetNodeFromString(ih, str2);
if (!hItem2)
return 0;
@@ -1711,9 +1703,9 @@ static int winTreeSetValueAttrib(Ihandle* ih, const char* value)
if (winTreeSetMarkAttrib(ih, value))
return 0;
- hItemFocus = winTreeGetFocusNode(ih);
+ hItemFocus = iupdrvTreeGetFocusNode(ih);
- if(iupStrEqualNoCase(value, "ROOT"))
+ if(iupStrEqualNoCase(value, "ROOT") || iupStrEqualNoCase(value, "FIRST"))
hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
else if(iupStrEqualNoCase(value, "LAST"))
hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_LASTVISIBLE, 0);
@@ -1759,15 +1751,14 @@ static int winTreeSetValueAttrib(Ihandle* ih, const char* value)
else if(iupStrEqualNoCase(value, "PREVIOUS"))
hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PREVIOUSVISIBLE, (LPARAM)hItemFocus);
else
- hItem = winTreeFindNodeFromString(ih, value);
+ hItem = iupTreeGetNodeFromString(ih, value);
if (hItem)
{
if (ih->data->mark_mode==ITREE_MARK_SINGLE)
{
- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
- winTreeSelectItem(ih, hItem, 1);
- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ winTreeSelectNode(ih, hItemFocus, 0);
+ winTreeSelectNode(ih, hItem, 1);
}
winTreeSetFocusNode(ih, hItem);
}
@@ -1832,27 +1823,60 @@ static LRESULT CALLBACK winTreeEditWinProc(HWND hwnd, UINT msg, WPARAM wp, LPARA
return CallWindowProc(oldProc, hwnd, msg, wp, lp);
}
-static void winTreeDrag(Ihandle* ih, int x, int y)
+static void winTreeBeginDrag(Ihandle* ih, int x, int y)
{
- HTREEITEM hItemDrop;
+ HIMAGELIST dragImageList;
+
+ HTREEITEM hItemDrag = winTreeFindNodeXY(ih, x, y);
+ if (!hItemDrag)
+ return;
+
+ SendMessage(ih->handle, TVM_ENDEDITLABELNOW, TRUE, 0);
+
+ /* store the drag-and-drop item */
+ iupAttribSetStr(ih, "_IUPTREE_DRAGITEM", (char*)hItemDrag);
+ /* get the image list for dragging */
+ dragImageList = (HIMAGELIST)SendMessage(ih->handle, TVM_CREATEDRAGIMAGE, 0, (LPARAM)hItemDrag);
+ if (dragImageList)
+ {
+ POINT pt;
+ ImageList_BeginDrag(dragImageList, 0, 0, 0);
+
+ pt.x = x;
+ pt.y = y;
+
+ ClientToScreen(ih->handle, &pt);
+ ImageList_DragEnter(NULL, pt.x, pt.y);
+
+ iupAttribSetStr(ih, "_IUPTREE_DRAGIMAGELIST", (char*)dragImageList);
+ }
+
+ ShowCursor(FALSE);
+ SetCapture(ih->handle); /* drag only inside the tree */
+}
+
+static void winTreeDrag(Ihandle* ih, int x, int y)
+{
+ HTREEITEM hItemDrop = winTreeFindNodeXY(ih, x, y);
+ HTREEITEM hItemDrag = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_DRAGITEM");
HIMAGELIST dragImageList = (HIMAGELIST)iupAttribGet(ih, "_IUPTREE_DRAGIMAGELIST");
+
if (dragImageList)
{
- POINT pnt;
- pnt.x = x;
- pnt.y = y;
- GetCursorPos(&pnt);
- ClientToScreen(GetDesktopWindow(), &pnt) ;
- ImageList_DragMove(pnt.x, pnt.y);
+ POINT pt;
+ pt.x = x;
+ pt.y = y;
+ ClientToScreen(ih->handle, &pt);
+ ImageList_DragMove(pt.x, pt.y);
}
- if ((hItemDrop = winTreeFindNodePointed(ih)) != NULL)
+ if (hItemDrop && hItemDrop!=hItemDrag)
{
if(dragImageList)
ImageList_DragShowNolock(FALSE);
- SendMessage(ih->handle, TVM_SELECTITEM, TVGN_DROPHILITE, (LPARAM)hItemDrop);
+ SendMessage(ih->handle, TVM_SETINSERTMARK, TRUE, (LPARAM)hItemDrop);
/* store the drop item to be executed */
iupAttribSetStr(ih, "_IUPTREE_DROPITEM", (char*)hItemDrop);
@@ -1860,6 +1884,8 @@ static void winTreeDrag(Ihandle* ih, int x, int y)
if(dragImageList)
ImageList_DragShowNolock(TRUE);
}
+ else
+ iupAttribSetStr(ih, "_IUPTREE_DROPITEM", NULL);
}
static void winTreeDrop(Ihandle* ih)
@@ -1882,7 +1908,7 @@ static void winTreeDrop(Ihandle* ih)
ShowCursor(TRUE);
/* Remove drop target highlighting */
- SendMessage(ih->handle, TVM_SELECTITEM, TVGN_DROPHILITE, (LPARAM)NULL);
+ SendMessage(ih->handle, TVM_SETINSERTMARK, 0, (LPARAM)NULL);
iupAttribSetStr(ih, "_IUPTREE_DRAGITEM", NULL);
iupAttribSetStr(ih, "_IUPTREE_DROPITEM", NULL);
@@ -1901,16 +1927,12 @@ static void winTreeDrop(Ihandle* ih)
if (winTreeCallDragDropCb(ih, hItemDrag, hItemDrop, &is_ctrl) == IUP_CONTINUE)
{
- /* Copy the dragged item to the new position. */
- HTREEITEM hItemNew = winTreeCopyNode(ih, hItemDrag, hItemDrop, is_ctrl);
-
- if (!is_ctrl)
- {
- /* do not delete the user data, we copy the references in CopyNode */
- SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemDrag);
- }
+ /* Copy or move the dragged item to the new position. */
+ HTREEITEM hItemNew = winTreeCopyMoveNode(ih, hItemDrag, hItemDrop, is_ctrl);
- SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItemNew); /* set focus and selection */
+ /* Set focus and selection */
+ if (hItemNew)
+ SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItemNew);
}
}
@@ -1929,9 +1951,7 @@ static void winTreeExtendSelect(Ihandle* ih, int x, int y)
hItemFirstSel = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_FIRSTSELITEM");
if (hItemFirstSel)
{
- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
winTreeSelectRange(ih, hItemFirstSel, hItem, 1);
- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
iupAttribSetStr(ih, "_IUPTREE_LASTSELITEM", (char*)hItem);
winTreeSetFocusNode(ih, hItem);
@@ -1952,10 +1972,10 @@ static int winTreeMouseMultiSelect(Ihandle* ih, int x, int y)
if (GetKeyState(VK_CONTROL) & 0x8000) /* Control key is down */
{
/* Toggle selection state */
- winTreeSelectItem(ih, hItem, -1);
+ winTreeSelectNode(ih, hItem, -1);
iupAttribSetStr(ih, "_IUPTREE_FIRSTSELITEM", (char*)hItem);
- winTreeCallSelectionCb(ih, winTreeIsItemSelected(ih, hItem), hItem);
+ winTreeCallSelectionCb(ih, winTreeIsNodeSelected(ih, hItem), hItem);
winTreeSetFocusNode(ih, hItem);
return 1;
@@ -1965,9 +1985,11 @@ static int winTreeMouseMultiSelect(Ihandle* ih, int x, int y)
HTREEITEM hItemFirstSel = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_FIRSTSELITEM");
if (hItemFirstSel)
{
- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ int last_id = iupTreeFindNodeId(ih, hItem);
winTreeSelectRange(ih, hItemFirstSel, hItem, 1);
- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+
+ /* if last selected item is a branch, then select its children */
+ iupTreeSelectLastCollapsedBranch(ih, &last_id);
winTreeCallMultiSelectionCb(ih);
winTreeSetFocusNode(ih, hItem);
@@ -1975,11 +1997,15 @@ static int winTreeMouseMultiSelect(Ihandle* ih, int x, int y)
}
}
+ winTreeCallMultiUnSelectionCb(ih);
+
/* simple click */
winTreeClearSelection(ih, hItem);
iupAttribSetStr(ih, "_IUPTREE_FIRSTSELITEM", (char*)hItem);
iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "1");
+ /* Call SELECT_CB for all unselected nodes */
+
return 0;
}
@@ -2039,7 +2065,7 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
if (wp == VK_RETURN)
{
- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
+ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
if (winTreeCallBranchLeafCb(ih, hItemFocus) != IUP_IGNORE)
winTreeExpandItem(ih, hItemFocus, -1);
@@ -2056,14 +2082,14 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
{
if (GetKeyState(VK_CONTROL) & 0x8000)
{
- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
+ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
/* Toggle selection state */
- winTreeSelectItem(ih, hItemFocus, -1);
+ winTreeSelectNode(ih, hItemFocus, -1);
}
}
else if (wp == VK_UP || wp == VK_DOWN)
{
- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
+ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
if (wp == VK_UP)
hItemFocus = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PREVIOUSVISIBLE, (LPARAM)hItemFocus);
else
@@ -2084,9 +2110,7 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
HTREEITEM hItemFirstSel = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_FIRSTSELITEM");
if (hItemFirstSel)
{
- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
winTreeSelectRange(ih, hItemFirstSel, hItemFocus, 1);
- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
winTreeCallMultiSelectionCb(ih);
winTreeSetFocusNode(ih, hItemFocus);
@@ -2138,10 +2162,20 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
}
break;
case WM_MOUSEMOVE:
- if (ih->data->show_dragdrop && (HTREEITEM)iupAttribGet(ih, "_IUPTREE_DRAGITEM") != NULL)
- winTreeDrag(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));
+ if (ih->data->show_dragdrop && (wp & MK_LBUTTON))
+ {
+ if (!iupAttribGet(ih, "_IUPTREE_DRAGITEM"))
+ winTreeBeginDrag(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));
+ else
+ winTreeDrag(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));
+ }
else if (iupAttribGet(ih, "_IUPTREE_EXTENDSELECT"))
- winTreeExtendSelect(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));
+ {
+ if (wp & MK_LBUTTON)
+ winTreeExtendSelect(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));
+ else
+ iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", NULL);
+ }
iupwinMouseMove(ih, msg, wp, lp);
break;
@@ -2157,6 +2191,7 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
if (iupAttribGet(ih, "_IUPTREE_EXTENDSELECT"))
{
iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", NULL);
+
if (iupAttribGet(ih, "_IUPTREE_LASTSELITEM"))
{
winTreeCallMultiSelectionCb(ih);
@@ -2205,14 +2240,19 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
else if (msg_info->code == TVN_SELCHANGED)
{
NMTREEVIEW* info = (NMTREEVIEW*)msg_info;
- winTreeCallSelectionCb(ih, 0, info->itemOld.hItem); /* node unselected */
- winTreeCallSelectionCb(ih, 1, info->itemNew.hItem); /* node selected */
+ if (ih->data->mark_mode!=ITREE_MARK_MULTIPLE || /* (NOT) Multiple selection with Control or Shift key is down */
+ !(GetKeyState(VK_CONTROL) & 0x8000 || GetKeyState(VK_SHIFT) & 0x8000))
+ {
+ winTreeCallSelectionCb(ih, 0, info->itemOld.hItem); /* node unselected */
+ winTreeCallSelectionCb(ih, 1, info->itemNew.hItem); /* node selected */
+ }
}
else if(msg_info->code == TVN_BEGINLABELEDIT)
{
char* value;
HWND hEdit;
NMTVDISPINFO* info = (NMTVDISPINFO*)msg_info;
+ IFni cbShowRename;
if (iupAttribGet(ih, "_IUPTREE_EXTENDSELECT"))
{
@@ -2220,6 +2260,13 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
return 1;
}
+ cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");
+ if (cbShowRename && cbShowRename(ih, iupTreeFindNodeId(ih, info->item.hItem))==IUP_IGNORE)
+ {
+ *result = TRUE; /* prevent the change */
+ return 1;
+ }
+
hEdit = (HWND)SendMessage(ih->handle, TVM_GETEDITCONTROL, 0, 0);
/* save the edit box. */
@@ -2253,57 +2300,30 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
}
else if(msg_info->code == TVN_ENDLABELEDIT)
{
+ IFnis cbRename;
NMTVDISPINFO* info = (NMTVDISPINFO*)msg_info;
iupAttribSetStr(ih, "_IUPWIN_EDITBOX", NULL);
- if (info->item.pszText)
- {
- IFnis cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB");
- if (cbRename)
- {
- if (cbRename(ih, winTreeGetNodeId(ih, info->item.hItem), info->item.pszText) == IUP_IGNORE)
- {
- *result = FALSE;
- return 1;
- }
- }
+ if (!info->item.pszText) /* cancel, so abort */
+ return 0;
- *result = TRUE;
- return 1;
- }
- }
- else if(msg_info->code == TVN_BEGINDRAG)
- {
- if (ih->data->show_dragdrop)
+ cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB");
+ if (cbRename)
{
- NMTREEVIEW* pNMTreeView = (NMTREEVIEW*)msg_info;
- HTREEITEM hItemDrag = pNMTreeView->itemNew.hItem;
- HIMAGELIST dragImageList;
-
- /* store the drag-and-drop item */
- iupAttribSetStr(ih, "_IUPTREE_DRAGITEM", (char*)hItemDrag);
-
- /* get the image list for dragging */
- dragImageList = (HIMAGELIST)SendMessage(ih->handle, TVM_CREATEDRAGIMAGE, 0, (LPARAM)hItemDrag);
- if (dragImageList)
+ if (cbRename(ih, iupTreeFindNodeId(ih, info->item.hItem), info->item.pszText) == IUP_IGNORE)
{
- POINT pt = pNMTreeView->ptDrag;
- ImageList_BeginDrag(dragImageList, 0, 0, 0);
-
- ClientToScreen(ih->handle, &pt);
- ImageList_DragEnter(NULL, pt.x, pt.y);
-
- iupAttribSetStr(ih, "_IUPTREE_DRAGIMAGELIST", (char*)dragImageList);
+ *result = FALSE;
+ return 1;
}
-
- ShowCursor(FALSE);
- SetCapture(ih->handle); /* drag only inside the tree */
}
+
+ *result = TRUE;
+ return 1;
}
else if(msg_info->code == NM_DBLCLK)
{
- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
+ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
TVITEM item;
winTreeItemData* itemData;
@@ -2317,7 +2337,7 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
{
IFni cbExecuteLeaf = (IFni)IupGetCallback(ih, "EXECUTELEAF_CB");
if(cbExecuteLeaf)
- cbExecuteLeaf(ih, winTreeGetNodeId(ih, hItemFocus));
+ cbExecuteLeaf(ih, iupTreeFindNodeId(ih, hItemFocus));
}
}
else if(msg_info->code == TVN_ITEMEXPANDING)
@@ -2351,7 +2371,7 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
HTREEITEM hItem = winTreeFindNodePointed(ih);
IFni cbRightClick = (IFni)IupGetCallback(ih, "RIGHTCLICK_CB");
if (cbRightClick)
- cbRightClick(ih, winTreeGetNodeId(ih, hItem));
+ cbRightClick(ih, iupTreeFindNodeId(ih, hItem));
}
else if (msg_info->code == NM_CUSTOMDRAW)
{
@@ -2374,7 +2394,7 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
itemData = (winTreeItemData*)item.lParam;
- if (winTreeIsItemSelected(ih, hItem))
+ if (GetFocus()==ih->handle && (customdraw->nmcd.uItemState & CDIS_SELECTED))
customdraw->clrText = winTreeInvertColor(itemData->color);
else
customdraw->clrText = itemData->color;
@@ -2402,47 +2422,34 @@ static int winTreeConvertXYToPos(Ihandle* ih, int x, int y)
info.pt.y = y;
hItem = (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)&info);
if (hItem)
- return winTreeGetNodeId(ih, hItem);
+ return iupTreeFindNodeId(ih, hItem);
return -1;
}
/*******************************************************************************************/
-static void winTreeUnMapMethod(Ihandle* ih)
-{
- Iarray* bmp_array;
- HIMAGELIST image_list;
-
- HTREEITEM itemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
- winTreeDelNodeData(ih, itemRoot);
-
- image_list = (HIMAGELIST)SendMessage(ih->handle, TVM_GETIMAGELIST, TVSIL_NORMAL, 0);
- if (image_list)
- ImageList_Destroy(image_list);
-
- bmp_array = (Iarray*)iupAttribGet(ih, "_IUPWIN_BMPARRAY");
- if (bmp_array)
- iupArrayDestroy(bmp_array);
-
- iupdrvBaseUnMapMethod(ih);
-}
static int winTreeMapMethod(Ihandle* ih)
{
- DWORD dwStyle = WS_CHILD | WS_BORDER | TVS_SHOWSELALWAYS;
+ DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS | WS_BORDER | TVS_SHOWSELALWAYS;
- /* can be set only on the Tree View creation */
+ /* styles can be set only on the Tree View creation */
- if (!ih->data->show_dragdrop)
- dwStyle |= TVS_DISABLEDRAGDROP;
+ /* always disable the internal drag&drop, because it affects our selection and drawing */
+ dwStyle |= TVS_DISABLEDRAGDROP;
if (ih->data->show_rename)
dwStyle |= TVS_EDITLABELS;
if (!iupAttribGetBoolean(ih, "HIDELINES"))
+ {
dwStyle |= TVS_HASLINES;
+ if (!iupAttribGetInt(ih, "ADDROOT"))
+ dwStyle |= TVS_LINESATROOT;
+ }
+
if (!iupAttribGetBoolean(ih, "HIDEBUTTONS"))
dwStyle |= TVS_HASBUTTONS;
@@ -2455,6 +2462,11 @@ static int winTreeMapMethod(Ihandle* ih)
if (!iupwinCreateWindowEx(ih, WC_TREEVIEW, 0, dwStyle))
return IUP_ERROR;
+ if (!iupwin_comctl32ver6) /* To improve drawing of items when TITLEFONT is set */
+ SendMessage(ih->handle, CCM_SETVERSION, 5, 0);
+ else
+ SendMessage(ih->handle, TVM_SETEXTENDEDSTYLE, TVS_EX_DOUBLEBUFFER, TVS_EX_DOUBLEBUFFER);
+
IupSetCallback(ih, "_IUPWIN_CTRLPROC_CB", (Icallback)winTreeProc);
IupSetCallback(ih, "_IUPWIN_NOTIFY_CB", (Icallback)winTreeWmNotify);
@@ -2466,7 +2478,7 @@ static int winTreeMapMethod(Ihandle* ih)
winTreeSetBgColorAttrib(ih, value);
iupAttribSetStr(ih, "BGCOLOR", NULL);
}
- else if (iupwinGetSystemMajorVersion()<6) /* force background in XP because of the editbox background */
+ else if (!iupwin_comctl32ver6 || iupwinGetSystemMajorVersion()<6) /* force background in XP because of the editbox background */
winTreeSetBgColorAttrib(ih, IupGetGlobal("TXTBGCOLOR"));
}
@@ -2475,8 +2487,8 @@ static int winTreeMapMethod(Ihandle* ih)
ih->data->def_image_collapsed = (void*)winTreeGetImageIndex(ih, "IMGCOLLAPSED");
ih->data->def_image_expanded = (void*)winTreeGetImageIndex(ih, "IMGEXPANDED");
- /* Add the Root Node */
- winTreeAddRootNode(ih);
+ if (iupAttribGetInt(ih, "ADDROOT"))
+ iupdrvTreeAddNode(ih, "-1", ITREE_BRANCH, "", 0);
/* configure for DRAG&DROP of files */
if (IupGetCallback(ih, "DROPFILES_CB"))
@@ -2484,9 +2496,31 @@ static int winTreeMapMethod(Ihandle* ih)
IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)winTreeConvertXYToPos);
+ iupdrvTreeUpdateMarkMode(ih);
+
return IUP_NOERROR;
}
+static void winTreeUnMapMethod(Ihandle* ih)
+{
+ Iarray* bmp_array;
+ HIMAGELIST image_list;
+
+ winTreeRemoveAllNodeData(ih, 0);
+
+ ih->data->node_count = 0;
+
+ image_list = (HIMAGELIST)SendMessage(ih->handle, TVM_GETIMAGELIST, TVSIL_NORMAL, 0);
+ if (image_list)
+ ImageList_Destroy(image_list);
+
+ bmp_array = (Iarray*)iupAttribGet(ih, "_IUPWIN_BMPARRAY");
+ if (bmp_array)
+ iupArrayDestroy(bmp_array);
+
+ iupdrvBaseUnMapMethod(ih);
+}
+
void iupdrvTreeInitClass(Iclass* ic)
{
/* Driver Dependent Class functions */
@@ -2500,7 +2534,6 @@ void iupdrvTreeInitClass(Iclass* ic)
/* IupTree Attributes - GENERAL */
iupClassRegisterAttribute(ic, "EXPANDALL", NULL, winTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "INDENTATION", winTreeGetIndentationAttrib, winTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT);
- iupClassRegisterAttribute(ic, "COUNT", winTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "DRAGDROP", NULL, iupwinSetDragDropAttrib, NULL, NULL, IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, winTreeSetSpacingAttrib, NULL, NULL, IUPAF_NOT_MAPPED);
iupClassRegisterAttribute(ic, "TOPITEM", NULL, winTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
@@ -2521,7 +2554,6 @@ void iupdrvTreeInitClass(Iclass* ic)
iupClassRegisterAttributeId(ic, "NAME", winTreeGetTitleAttrib, winTreeSetTitleAttrib, IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "TITLE", winTreeGetTitleAttrib, winTreeSetTitleAttrib, IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "CHILDCOUNT", winTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
- iupClassRegisterAttributeId(ic, "USERDATA", winTreeGetUserDataAttrib, winTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "COLOR", winTreeGetColorAttrib, winTreeSetColorAttrib, IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "TITLEFONT", winTreeGetTitleFontAttrib, winTreeSetTitleFontAttrib, IUPAF_NO_INHERIT);
@@ -2530,6 +2562,7 @@ void iupdrvTreeInitClass(Iclass* ic)
iupClassRegisterAttribute (ic, "MARK", NULL, winTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttribute (ic, "STARTING", NULL, winTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
iupClassRegisterAttribute (ic, "MARKSTART", NULL, winTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute (ic, "MARKEDNODES", winTreeGetMarkedNodesAttrib, winTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
iupClassRegisterAttribute (ic, "VALUE", winTreeGetValueAttrib, winTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
@@ -2538,5 +2571,8 @@ void iupdrvTreeInitClass(Iclass* ic)
iupClassRegisterAttribute(ic, "RENAME", NULL, winTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "MOVENODE", NULL, winTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
iupClassRegisterAttributeId(ic, "COPYNODE", NULL, winTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
- iupClassRegisterAttributeId(ic, "FINDUSERDATA", winTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
+
+ /* necessary because transparent background does not work when not using visual styles */
+ if (!iupwin_comctl32ver6) /* Used by iupdrvImageCreateImage */
+ iupClassRegisterAttribute(ic, "FLAT_ALPHA", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
}
diff --git a/iup/src/win/iupwin_val.c b/iup/src/win/iupwin_val.c
index 706c612..5c956d9 100755
--- a/iup/src/win/iupwin_val.c
+++ b/iup/src/win/iupwin_val.c
@@ -56,6 +56,13 @@ void iupdrvValGetMinSize(Ihandle* ih, int *w, int *h)
}
}
+static int winValSetBgColorAttrib(Ihandle *ih, const char *value)
+{
+ (void)value;
+ iupdrvPostRedraw(ih);
+ return 1;
+}
+
static int winValSetStepAttrib(Ihandle* ih, const char* value)
{
int linesize;
@@ -110,18 +117,6 @@ static int winValSetValueAttrib(Ihandle* ih, const char* value)
/*********************************************************************************************/
-static int winValCtlColor(Ihandle* ih, HDC hdc, LRESULT *result)
-{
- COLORREF cr;
- if (iupwinGetParentBgColor(ih, &cr))
- {
- SetDCBrushColor(hdc, cr);
- *result = (LRESULT)GetStockObject(DC_BRUSH);
- return 1;
- }
- return 0;
-}
-
static int winValCustomScroll(Ihandle* ih, int msg)
{
double old_val = ih->data->val;
@@ -190,6 +185,19 @@ static void winValIncPageValue(Ihandle *ih, int dir)
winValCustomScroll(ih, 0);
}
+static int winValCtlColor(Ihandle* ih, HDC hdc, LRESULT *result)
+{
+ COLORREF cr;
+ if (iupwinGetParentBgColor(ih, &cr))
+ {
+ SetBkColor(hdc, cr);
+ SetDCBrushColor(hdc, cr);
+ *result = (LRESULT)GetStockObject(DC_BRUSH);
+ return 1;
+ }
+ return 0;
+}
+
static int winValProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *result)
{
(void)lp;
@@ -240,7 +248,7 @@ static int winValProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *resu
static int winValMapMethod(Ihandle* ih)
{
- DWORD dwStyle = WS_CHILD | TBS_AUTOTICKS;
+ DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS | TBS_AUTOTICKS;
int show_ticks;
if (!ih->parent)
@@ -312,4 +320,7 @@ void iupdrvValInitClass(Iclass* ic)
iupClassRegisterAttribute(ic, "STEP", iupValGetStepAttrib, winValSetStepAttrib, "0.01", NULL, IUPAF_NO_INHERIT); /* force new default value */
iupClassRegisterAttribute(ic, "TICKSPOS", NULL, NULL, "NORMAL", NULL, IUPAF_NOT_MAPPED);
+
+ /* Visual */
+ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winValSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);
}
diff --git a/iup/srccd/Makefile b/iup/srccd/Makefile
index 43a3f09..8b1d154 100755
--- a/iup/srccd/Makefile
+++ b/iup/srccd/Makefile
@@ -3,4 +3,4 @@
do_all: iupcd
iupcd:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
+ @$(MAKE) --no-print-directory -f ../tecmake.mak
diff --git a/iup/srccd/iup_cd.c b/iup/srccd/iup_cd.c
index 5998775..619ded7 100755
--- a/iup/srccd/iup_cd.c
+++ b/iup/srccd/iup_cd.c
@@ -14,7 +14,6 @@
#include <cdiup.h>
#include <cdnative.h>
-
static void (*cdcreatecanvasNATIVE)(cdCanvas* canvas, void* data) = NULL;
static void cdcreatecanvasIUP(cdCanvas* canvas, Ihandle *ih_canvas)
@@ -24,8 +23,12 @@ static void cdcreatecanvasIUP(cdCanvas* canvas, Ihandle *ih_canvas)
#endif
char* data;
- if (IupGetInt(ih_canvas, "CD_GDK"))
+ if (cdBaseDriver()==CD_BASE_GDK)
+ {
data = IupGetAttribute(ih_canvas, "DRAWABLE"); /* new IUP 3 attribute, works for GTK only */
+ if (!data)
+ return;
+ }
else
{
#ifdef WIN32
diff --git a/iup/srcconsole/Makefile b/iup/srcconsole/Makefile
index 876ca8d..505b103 100755
--- a/iup/srcconsole/Makefile
+++ b/iup/srcconsole/Makefile
@@ -3,10 +3,10 @@
do_all: iuplua5
iuplua5:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
+ @$(MAKE) --no-print-directory -f ../tecmake.mak
iuplua5gtk:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak USE_GTK=Yes
+ @$(MAKE) --no-print-directory -f ../tecmake.mak USE_GTK=Yes
iuplua3:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iuplua3
+ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iuplua3
diff --git a/iup/srcconsole/config.mak b/iup/srcconsole/config.mak
index 612a3ab..568bed6 100755
--- a/iup/srcconsole/config.mak
+++ b/iup/srcconsole/config.mak
@@ -1,12 +1,23 @@
PROJNAME = iup
APPNAME = iuplua51
-APPTYPE = console
+APPTYPE = CONSOLE
+
+ifdef GTK_DEFAULT
+ ifdef USE_MOTIF
+ # Build Motif version in Linux,Darwin,FreeBSD
+ APPNAME = iuplua51mot
+ endif
+else
+ ifdef USE_GTK
+ # Build GTK version in IRIX,SunOS,AIX,Win32
+ APPNAME = iuplua51gtk
+ endif
+endif
LOHDIR = loh
SRCLUA = console5.lua
SRC = iup_lua51.c
-
# Disable strip
STRIP =
# Optimize
@@ -35,6 +46,16 @@ ifdef DBG
USE_STATIC = Yes
USE_LUA51 = Yes
+ ifdef DBG_DIR
+ IUPLIB = $(IUP)/lib/$(TEC_UNAME)d
+ CDLIB = $(CD)/lib/$(TEC_UNAME)d
+ IMLIB = $(IM)/lib/$(TEC_UNAME)d
+ else
+ IUPLIB = $(IUP)/lib/$(TEC_UNAME)
+ CDLIB = $(CD)/lib/$(TEC_UNAME)
+ IMLIB = $(IM)/lib/$(TEC_UNAME)
+ endif
+
DEFINES = USE_STATIC
USE_CDLUA = Yes
@@ -42,7 +63,6 @@ ifdef DBG
ifneq ($(findstring Win, $(TEC_SYSNAME)), )
LIBS += iuplua_pplot$(LIBLUASUFX) iup_pplot
else
- IUPLIB = $(IUP)/lib/$(TEC_UNAME)
SLIB += $(IUPLIB)/libiuplua_pplot$(LIBLUASUFX).a $(IUPLIB)/libiup_pplot.a
endif
@@ -50,7 +70,6 @@ ifdef DBG
ifneq ($(findstring Win, $(TEC_SYSNAME)), )
LIBS += cdluaim$(LIBLUASUFX)
else
- CDLIB = $(CD)/lib/$(TEC_UNAME)
SLIB += $(CDLIB)/libcdluaim$(LIBLUASUFX).a
endif
endif
@@ -65,8 +84,6 @@ ifdef DBG
ifneq ($(findstring Win, $(TEC_SYSNAME)), )
LIBS += imlua_process$(LIBLUASUFX) iupluaim$(LIBLUASUFX) im_process iupim
else
- IUPLIB = $(IUP)/lib/$(TEC_UNAME)
- IMLIB = $(IM)/lib/$(TEC_UNAME)
SLIB += $(IMLIB)/libimlua_process$(LIBLUASUFX).a $(IUPLIB)/libiupluaim$(LIBLUASUFX).a $(IMLIB)/libim_process.a $(IUPLIB)/libiupim.a
endif
@@ -77,20 +94,24 @@ ifdef DBG
ifneq ($(findstring Win, $(TEC_SYSNAME)), )
LIBS += iupluaimglib$(LIBLUASUFX) iupimglib
else
- IUPLIB = $(IUP)/lib/$(TEC_UNAME)
SLIB += $(IUPLIB)/libiupluaimglib$(LIBLUASUFX).a $(IUPLIB)/libiupimglib.a
endif
endif
else
ifneq ($(findstring Win, $(TEC_SYSNAME)), )
# Dinamically link in Windows, when not debugging
- # Must call "tecmake dll8"
+ # Must call "tecmake dll8" so USE_* will use the correct TEC_UNAME
USE_LUA51 = Yes
USE_DLL = Yes
GEN_MANIFEST = No
else
# In UNIX Lua is always statically linked, late binding is used.
- USE_STATIC = Yes
+ # Except in Cygwin and MacOSX
+ ifeq ($(findstring cygw, $(TEC_UNAME)), )
+ ifeq ($(findstring Darwin, $(TEC_UNAME)), )
+ USE_STATIC = Yes
+ endif
+ endif
USE_LUA51 = Yes
endif
endif
@@ -102,10 +123,13 @@ ifneq ($(findstring Win, $(TEC_SYSNAME)), )
endif
ifneq ($(findstring cygw, $(TEC_UNAME)), )
- LDFLAGS = -s
LIBS += readline history
endif
+ifneq ($(findstring Darwin, $(TEC_UNAME)), )
+ LIBS += readline
+endif
+
ifneq ($(findstring Linux, $(TEC_UNAME)), )
LIBS += dl
#To allow late binding
@@ -129,10 +153,3 @@ ifneq ($(findstring AIX, $(TEC_UNAME)), )
LFLAGS = -Xlinker "-bbigtoc"
endif
-ifeq ($(TEC_UNAME), vc8)
- ifdef DBG
- #debug info not working for vc8 linker
- define DBG
- endef
- endif
-endif
diff --git a/iup/srcconsole/console5.lua b/iup/srcconsole/console5.lua
index 20f74b2..0b93641 100755
--- a/iup/srcconsole/console5.lua
+++ b/iup/srcconsole/console5.lua
@@ -1,67 +1,69 @@
require"iuplua"
-iup.console = {}
-
-- Utilities
+iup_console = {}
-function iup.console.printtable(t)
- local n,v = next(t, nil)
- print("--printtable Start--")
- while n do
- print(tostring(n).."="..tostring(v))
- n,v = next(t, n)
- end
- print("--printtable End--")
+function iup_console.concat(str, info)
+ return str .. info .. "\n"
end
-function iup.console.print_version_info()
- if (im) then print("IM " .. im._VERSION .. " " .. im._COPYRIGHT) end
+function iup_console.print_version_info()
+ iup_console.clear()
+ local str = ""
+ if (im) then str = iup_console.concat(str, "IM " .. im._VERSION .. " " .. im._COPYRIGHT) end
- if (cd) then print("CD " .. cd._VERSION .. " " .. cd._COPYRIGHT) end
+ if (cd) then str = iup_console.concat(str, "CD " .. cd._VERSION .. " " .. cd._COPYRIGHT) end
- print("IUP " .. iup._VERSION .. " " .. iup._COPYRIGHT)
- print("")
- print("IUP Info")
- print(" System: " .. iup.GetGlobal("SYSTEM"))
- print(" System Version: " .. iup.GetGlobal("SYSTEMVERSION"))
+ str = iup_console.concat(str, "IUP " .. iup._VERSION .. " " .. iup._COPYRIGHT)
+ str = iup_console.concat(str, "")
+ str = iup_console.concat(str, "IUP Info")
+ str = iup_console.concat(str, " System: " .. iup.GetGlobal("SYSTEM"))
+ str = iup_console.concat(str, " System Version: " .. iup.GetGlobal("SYSTEMVERSION"))
local mot = iup.GetGlobal("MOTIFVERSION")
- if (mot) then print(" Motif Version: ", mot) end
+ if (mot) then str = iup_console.concat(str, " Motif Version: ", mot) end
- print(" Screen Size: " .. iup.GetGlobal("SCREENSIZE"))
- print(" Screen Depth: " .. iup.GetGlobal("SCREENDEPTH"))
+ str = iup_console.concat(str, " Screen Size: " .. iup.GetGlobal("SCREENSIZE"))
+ str = iup_console.concat(str, " Screen Depth: " .. iup.GetGlobal("SCREENDEPTH"))
- if (iup.GL_VENDOR) then print(" OpenGL Vendor: " .. iup.GL_VENDOR) end
- if (iup.GL_RENDERER) then print(" OpenGL Renderer: " .. iup.GL_RENDERER) end
- if (iup.GL_VERSION) then print(" OpenGL Version: " .. iup.GL_VERSION) end
+ if (iup.GL_VENDOR) then str = iup_console.concat(str, " OpenGL Vendor: " .. iup.GL_VENDOR) end
+ if (iup.GL_RENDERER) then str = iup_console.concat(str, " OpenGL Renderer: " .. iup.GL_RENDERER) end
+ if (iup.GL_VERSION) then str = iup_console.concat(str, " OpenGL Version: " .. iup.GL_VERSION) end
+
+ iup_console.mlCode.value=str
end
-- Console Dialog
-iup.console.lastfilename = nil -- Last file open
-iup.console.mlCode = iup.multiline{expand="YES", size="200x120", font="COURIER_NORMAL_10"}
-iup.console.lblPosition = iup.label{title="0:0", size="50x"}
-iup.console.lblFileName = iup.label{title="", size="50x", expand="HORIZONTAL"}
+iup_console.lastfilename = nil -- Last file open
+iup_console.mlCode = iup.multiline{expand="YES", size="200x120", font="COURIER_NORMAL_10"}
+iup_console.lblPosition = iup.label{title="0:0", size="50x"}
+iup_console.lblFileName = iup.label{title="", size="50x", expand="HORIZONTAL"}
+
+function iup_console.mlCode:caret_cb(lin, col)
+ iup_console.lblPosition.title = lin..":"..col
+end
-function iup.console.mlCode:caret_cb(lin, col)
- iup.console.lblPosition.title = lin..":"..col
+function iup_console.clear()
+ iup_console.mlCode.value=''
+ iup_console.lblFileName.title = ''
+ iup_console.lastfilename = nil
end
-iup.console.butExecute = iup.button{size="50x15", title="Execute",
- action="iup.dostring(iup.console.mlCode.value)"}
-iup.console.butClearCommands = iup.button{size="50x15", title="Clear",
- action="iup.console.mlCode.value='' iup.console.lblFileName.title = '' iup.console.lastfilename = nil"}
-iup.console.butLoadFile = iup.button{size="50x15", title="Load..."}
-iup.console.butSaveasFile = iup.button{size="50x15", title="Save As..."}
-iup.console.butSaveFile = iup.button{size="50x15", title="Save"}
-
-function iup.console.butSaveFile:action()
- if (iup.console.lastfilename == nil) then
- iup.console.butSaveasFile:action()
+iup_console.butExecute = iup.button{size="50x15", title="Execute",
+ action="iup.dostring(iup_console.mlCode.value)"}
+iup_console.butClearCommands = iup.button{size="50x15", title="Clear", action=iup_console.clear}
+iup_console.butLoadFile = iup.button{size="50x15", title="Load..."}
+iup_console.butSaveasFile = iup.button{size="50x15", title="Save As..."}
+iup_console.butSaveFile = iup.button{size="50x15", title="Save"}
+
+function iup_console.butSaveFile:action()
+ if (iup_console.lastfilename == nil) then
+ iup_console.butSaveasFile:action()
else
- newfile = io.open(iup.console.lastfilename, "w+")
+ newfile = io.open(iup_console.lastfilename, "w+")
if (newfile) then
- newfile:write(iup.console.mlCode.value)
+ newfile:write(iup_console.mlCode.value)
newfile:close()
else
error ("Cannot Save file "..filename)
@@ -69,21 +71,26 @@ function iup.console.butSaveFile:action()
end
end
-function iup.console.butSaveasFile:action()
- local fd = iup.filedlg{dialogtype="SAVE", title="Save File",
+function iup_console.butSaveasFile:action()
+ local fd = iup.filedlg{dialogtype="SAVE", title="Save File",
+ nochangedir="NO", directory=iup_console.last_directory,
filter="*.*", filterinfo="All files",allownew=yes}
+
fd:popup(iup.LEFT, iup.LEFT)
+
local status = fd.status
- iup.console.lastfilename = fd.value
- iup.console.lblFileName.title = iup.console.lastfilename
+ iup_console.lastfilename = fd.value
+ iup_console.lblFileName.title = fd.value
+ iup_console.last_directory = fd.directory
fd:destroy()
+
if status ~= "-1" then
- if (iup.console.lastfilename == nil) then
+ if (iup_console.lastfilename == nil) then
error ("Cannot Save file "..filename)
end
- local newfile=io.open(iup.console.lastfilename, "w+")
+ local newfile=io.open(iup_console.lastfilename, "w+")
if (newfile) then
- newfile:write(iup.console.mlCode.value)
+ newfile:write(iup_console.mlCode.value)
newfile:close(newfile)
else
error ("Cannot Save file")
@@ -91,24 +98,26 @@ function iup.console.butSaveasFile:action()
end
end
-function iup.console.LoadFile(filename)
+function iup_console.LoadFile(filename)
local newfile = io.open (filename, "r")
if (newfile == nil) then
error ("Cannot load file "..filename)
else
- iup.console.mlCode.value=newfile:read("*a")
+ iup_console.mlCode.value=newfile:read("*a")
newfile:close (newfile)
- iup.console.lastfilename = filename
- iup.console.lblFileName.title = iup.console.lastfilename
+ iup_console.lastfilename = filename
+ iup_console.lblFileName.title = iup_console.lastfilename
end
end
-function iup.console.butLoadFile:action()
- local fd=iup.filedlg{dialogtype="OPEN", title="Load File",
+function iup_console.butLoadFile:action()
+ local fd=iup.filedlg{dialogtype="OPEN", title="Load File",
+ nochangedir="NO", directory=iup_console.last_directory,
filter="*.*", filterinfo="All Files", allownew="NO"}
fd:popup(iup.CENTER, iup.CENTER)
local status = fd.status
local filename = fd.value
+ iup_console.last_directory = fd.directory
fd:destroy()
if (status == "-1") or (status == "1") then
@@ -116,21 +125,21 @@ function iup.console.butLoadFile:action()
error ("Cannot load file "..filename)
end
else
- iup.console.LoadFile(filename)
+ iup_console.LoadFile(filename)
end
end
-iup.console.vbxConsole = iup.vbox
+iup_console.vbxConsole = iup.vbox
{
- iup.frame{iup.hbox{iup.vbox{iup.console.butLoadFile,
- iup.console.butSaveFile,
- iup.console.butSaveasFile,
- iup.console.butClearCommands,
- iup.console.butExecute;
+ iup.frame{iup.hbox{iup.vbox{iup_console.butLoadFile,
+ iup_console.butSaveFile,
+ iup_console.butSaveasFile,
+ iup_console.butClearCommands,
+ iup_console.butExecute;
margin="0x0", gap="10"},
- iup.vbox{iup.console.lblFileName,
- iup.console.mlCode,
- iup.console.lblPosition;
+ iup.vbox{iup_console.lblFileName,
+ iup_console.mlCode,
+ iup_console.lblPosition;
alignment = "ARIGHT"};
alignment="ATOP"}; title="Commands"}
;alignment="ACENTER", margin="5x5", gap="5"
@@ -138,7 +147,7 @@ iup.console.vbxConsole = iup.vbox
-- Main Menu Definition.
-iup.console.mnuMain = iup.menu
+iup_console.mnuMain = iup.menu
{
iup.submenu
{
@@ -149,29 +158,29 @@ iup.console.mnuMain = iup.menu
},
iup.submenu{iup.menu
{
- iup.item{title="Print Version Info...", action=iup.console.print_version_info},
- iup.item{title="About...", action="iup.console.dlgAbout:popup(iup.CENTER, iup.CENTER)"}
+ iup.item{title="Print Version Info...", action=iup_console.print_version_info},
+ iup.item{title="About...", action="iup_console.dlgAbout:popup(iup.CENTER, iup.CENTER)"}
};title="Help"}
}
-- Main Dialog Definition.
-iup.console.dlgMain = iup.dialog{iup.console.vbxConsole;
+iup_console.dlgMain = iup.dialog{iup_console.vbxConsole;
title="IupLua Console",
- menu=iup.console.mnuMain,
+ menu=iup_console.mnuMain,
dragdrop = "YES",
- defaultenter=iup.console.butExecute,
+ defaultenter=iup_console.butExecute,
close_cb = "return iup.CLOSE"}
-function iup.console.dlgMain:dropfiles_cb(filename, num, x, y)
+function iup_console.dlgMain:dropfiles_cb(filename, num, x, y)
if (num == 0) then
- iup.console.LoadFile(filename)
+ iup_console.LoadFile(filename)
end
end
-- About Dialog Definition.
-iup.console.dlgAbout = iup.dialog
+iup_console.dlgAbout = iup.dialog
{
iup.vbox
{
@@ -195,10 +204,12 @@ iup.console.dlgAbout = iup.dialog
-- Displays the Main Dialog
-iup.console.dlgMain:show()
-iup.SetFocus(iup.console.mlCode)
+iup_console.dlgMain:show()
+iup.SetFocus(iup_console.mlCode)
-iup.MainLoop()
+if (not iup.MainLoopLevel or iup.MainLoopLevel()==0) then
+ iup.MainLoop()
+end
-iup.console.dlgMain:destroy()
-iup.console.dlgAbout:destroy()
+iup_console.dlgMain:destroy()
+iup_console.dlgAbout:destroy()
diff --git a/iup/srcconsole/copy_all_so b/iup/srcconsole/copy_all_so
index 52f1fea..ce3c248 100755
--- a/iup/srcconsole/copy_all_so
+++ b/iup/srcconsole/copy_all_so
@@ -2,10 +2,10 @@
foreach plat ( Linux24 Linux24g3 Linux24g3_64 Linux26 Linux26_64 Linux26g4 Linux26g4_64 Linux26_ia64 SunOS57 SunOS510 SunOS510x86 AIX43 IRIX65 IRIX6465 )
echo $plat
- cp -f ../lib/$plat/*.so ../bin/$plat
- cp -f ../../cd/lib/$plat/*.so ../bin/$plat
- cp -f ../../im/lib/$plat/*.so ../bin/$plat
+# cp -f ../lib/$plat/*.so ../bin/$plat
+# cp -f ../../cd/lib/$plat/*.so ../bin/$plat
+# cp -f ../../im/lib/$plat/*.so ../bin/$plat
cp -f ../../luagl/lib/$plat/*.so ../bin/$plat
cp -f ../../lfs/lib/$plat/*.so ../bin/$plat
- rm -f ../bin/$plat/*3.so
+# rm -f ../bin/$plat/*3.so
end
diff --git a/iup/srcconsole/copy_cygdll.bat b/iup/srcconsole/copy_cygdll.bat
new file mode 100644
index 0000000..7cf5dda
--- /dev/null
+++ b/iup/srcconsole/copy_cygdll.bat
@@ -0,0 +1,8 @@
+@echo off
+copy /y ..\lib\cygw17\*.dll ..\bin\cygw17
+copy /y ..\..\cd\lib\cygw17\*.dll ..\bin\cygw17
+copy /y ..\..\im\lib\cygw17\*.dll ..\bin\cygw17
+copy /y ..\..\lua5.1\lib\cygw17\*.dll ..\bin\cygw17
+copy /y ..\..\luagl\lib\cygw17\*.dll ..\bin\cygw17
+copy /y ..\..\lfs\lib\cygw17\*.dll ..\bin\cygw17
+del ..\bin\cygw17\*3.dll
diff --git a/iup/srcconsole/copy_dylib b/iup/srcconsole/copy_dylib
new file mode 100644
index 0000000..a5bfdc8
--- /dev/null
+++ b/iup/srcconsole/copy_dylib
@@ -0,0 +1,6 @@
+cp -f ../lib/${TEC_UNAME}/*.dylib ../bin/$TEC_UNAME
+cp -f ../../cd/lib/${TEC_UNAME}/*.dylib ../bin/$TEC_UNAME
+cp -f ../../im/lib/${TEC_UNAME}/*.dylib ../bin/$TEC_UNAME
+cp -f ../../luagl/lib/${TEC_UNAME}/*.dylib ../bin/${TEC_UNAME}
+cp -f ../../lfs/lib/${TEC_UNAME}/*.dylib ../bin/${TEC_UNAME}
+rm -f ../bin/${TEC_UNAME}/*3.dylib
diff --git a/iup/srcconsole/copy_so b/iup/srcconsole/copy_so
index 2535766..e345d31 100755
--- a/iup/srcconsole/copy_so
+++ b/iup/srcconsole/copy_so
@@ -1,4 +1,6 @@
cp -f ../lib/${TEC_UNAME}/*.so ../bin/$TEC_UNAME
cp -f ../../cd/lib/${TEC_UNAME}/*.so ../bin/$TEC_UNAME
cp -f ../../im/lib/${TEC_UNAME}/*.so ../bin/$TEC_UNAME
+cp -f ../../luagl/lib/${TEC_UNAME}/*.so ../bin/${TEC_UNAME}
+cp -f ../../lfs/lib/${TEC_UNAME}/*.so ../bin/${TEC_UNAME}
rm -f ../bin/${TEC_UNAME}/*3.so
diff --git a/iup/srcconsole/iuplua3.rc b/iup/srcconsole/iuplua3.rc
index e741199..9fcc280 100755
--- a/iup/srcconsole/iuplua3.rc
+++ b/iup/srcconsole/iuplua3.rc
@@ -13,7 +13,7 @@ BEGIN
VALUE "CompanyName", "Tecgraf/PUC-Rio\0"
VALUE "FileDescription", "Lua Windows Standalone Interpreter with IUP\0"
VALUE "FileVersion", "3.0.0\0"
- VALUE "LegalCopyright", "Copyright © 1994-2009 Tecgraf, PUC-Rio.\0"
+ VALUE "LegalCopyright", "Copyright © 1994-2010 Tecgraf, PUC-Rio.\0"
VALUE "OriginalFilename", "iuplua51.exe\0"
VALUE "ProductName", "IUP for Windows\0"
VALUE "ProductVersion", "3.0.0\0"
diff --git a/iup/srcconsole/iuplua5.rc b/iup/srcconsole/iuplua5.rc
index bc02e07..70e40a4 100755
--- a/iup/srcconsole/iuplua5.rc
+++ b/iup/srcconsole/iuplua5.rc
@@ -13,7 +13,7 @@ BEGIN
VALUE "CompanyName", "Tecgraf/PUC-Rio\0"
VALUE "FileDescription", "Lua Windows Standalone Interpreter with IUP\0"
VALUE "FileVersion", "3.0.0\0"
- VALUE "LegalCopyright", "Copyright © 1994-2009 Tecgraf, PUC-Rio.\0"
+ VALUE "LegalCopyright", "Copyright © 1994-2010 Tecgraf, PUC-Rio.\0"
VALUE "OriginalFilename", "iuplua51.exe\0"
VALUE "ProductName", "IUP for Windows\0"
VALUE "ProductVersion", "3.0.0\0"
diff --git a/iup/srcconsole/loh/console3.loh b/iup/srcconsole/loh/console3.loh
deleted file mode 100755
index 5cfd348..0000000
--- a/iup/srcconsole/loh/console3.loh
+++ /dev/null
@@ -1,254 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/console3.lo");
-*/
-/* ../obj/iuplua3/console3.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 99,111,110,115,111,
-108,101, 51, 46,108,117, 97, 0, 0, 0, 2,170, 17, 0, 11, 1, 25, 0, 11, 3,
- 25, 2, 11, 5, 25, 4, 11, 7, 25, 6, 4, 0, 25, 8, 15, 10, 22, 3, 11, 11,
- 15, 12, 11, 13, 11, 14, 11, 15, 11, 16, 30, 2, 2, 1, 1, 25, 9, 15, 18, 22,
- 2, 11, 19, 11, 20, 11, 13, 11, 21, 30, 1, 2, 1, 1, 25, 17, 15, 18, 22, 3,
- 11, 19, 11, 23, 11, 13, 11, 21, 11, 11, 11, 24, 30, 2, 2, 1, 1, 25, 22, 15,
- 9, 11, 25, 11, 26, 26, 15, 28, 22, 3, 11, 13, 11, 29, 11, 30, 11, 31, 11, 32,
- 11, 33, 30, 2, 2, 1, 1, 25, 27, 15, 28, 22, 3, 11, 13, 11, 29, 11, 30, 11,
- 35, 11, 32, 11, 36, 30, 2, 2, 1, 1, 25, 34, 15, 28, 22, 2, 11, 13, 11, 29,
- 11, 30, 11, 38, 30, 1, 2, 1, 1, 25, 37, 15, 28, 22, 2, 11, 13, 11, 29, 11,
- 30, 11, 40, 30, 1, 2, 1, 1, 25, 39, 15, 28, 22, 2, 11, 13, 11, 29, 11, 30,
- 11, 42, 30, 1, 2, 1, 1, 25, 41, 15, 41, 11, 32, 11, 43, 26, 15, 44, 11, 45,
- 11, 46, 26, 15, 37, 11, 45, 11, 47, 26, 15, 49, 22, 4, 15, 50, 22, 2, 15, 51,
- 22, 3, 15, 49, 22, 7, 15, 37, 15, 41, 15, 44, 15, 34, 15, 27, 29, 0, 5, 11,
- 52, 11, 53, 11, 54, 11, 55, 30, 1, 2, 1, 1, 15, 49, 22, 4, 15, 56, 15, 57,
- 15, 58, 29, 0, 3, 11, 59, 11, 60, 30, 0, 2, 1, 1, 29, 0, 2, 11, 59, 11,
- 61, 30, 0, 2, 1, 1, 29, 0, 1, 11, 62, 11, 63, 30, 0, 2, 1, 1, 29, 0,
- 1, 11, 59, 11, 64, 11, 52, 11, 65, 11, 54, 11, 66, 30, 2, 2, 1, 1, 25, 48,
- 15, 68, 22, 2, 15, 69, 22, 2, 15, 68, 22, 1, 15, 70, 22, 2, 11, 62, 11, 71,
- 11, 45, 11, 72, 30, 1, 2, 1, 1, 29, 0, 1, 2, 1, 1, 29, 0, 1, 11, 62,
- 11, 73, 30, 0, 2, 1, 1, 15, 69, 22, 2, 15, 68, 22, 2, 15, 74, 18, 75, 22,
- 2, 11, 62, 11, 76, 11, 45, 15, 6, 30, 1, 2, 1, 1, 15, 70, 22, 2, 11, 62,
- 11, 77, 11, 45, 11, 78, 30, 1, 2, 1, 1, 29, 0, 2, 2, 1, 1, 29, 0, 1,
- 11, 62, 11, 79, 30, 0, 2, 1, 1, 29, 0, 2, 2, 1, 1, 25, 67, 15, 81, 22,
- 4, 15, 48, 29, 0, 1, 11, 62, 11, 82, 11, 83, 15, 67, 11, 84, 11, 72, 30, 2,
- 2, 1, 1, 25, 80, 15, 81, 22, 5, 15, 49, 22, 8, 15, 18, 22, 1, 11, 62, 11,
- 82, 30, 0, 2, 1, 1, 15, 86, 22, 1, 11, 13, 11, 66, 30, 0, 2, 1, 1, 15,
- 86, 22, 1, 11, 13, 11, 66, 30, 0, 2, 1, 1, 15, 50, 22, 1, 15, 49, 22, 3,
- 15, 18, 22, 1, 11, 62, 11, 87, 30, 0, 2, 1, 1, 15, 18, 22, 1, 11, 62, 11,
- 88, 30, 0, 2, 1, 1, 15, 18, 22, 1, 11, 62, 11, 89, 30, 0, 2, 1, 1, 29,
- 0, 3, 2, 1, 1, 29, 0, 1, 2, 1, 1, 15, 86, 22, 1, 11, 13, 11, 66, 30,
- 0, 2, 1, 1, 15, 28, 22, 3, 11, 62, 11, 90, 11, 45, 11, 72, 11, 13, 11, 91,
- 30, 2, 2, 1, 1, 29, 0, 6, 11, 52, 11, 92, 11, 59, 11, 64, 30, 1, 2, 1,
- 1, 29, 0, 1, 11, 93, 15, 94, 11, 95, 15, 94, 11, 96, 15, 94, 11, 62, 11, 97,
- 30, 3, 2, 1, 1, 25, 85, 15, 80, 20, 98, 2, 0, 1, 15, 99, 2, 0, 0, 15,
-100, 15, 80, 2, 0, 1, 15,100, 15, 85, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0,101, 2, 0, 0, 0, 8,114,101,113,117,105,114,101, 0, 4, 0, 0, 0, 4,
- 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0,
- 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 10,112,114,
-105,110,116,118, 97,114,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64, 99,111,
-110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 6, 0, 15, 2, 4,
- 0, 2, 2, 1, 15, 3, 11, 4, 2, 0, 1, 50, 34, 15, 3, 15, 5, 13, 0, 2,
- 1, 1, 11, 6, 42, 15, 5, 13, 1, 2, 1, 1, 42, 2, 0, 1, 15, 2, 13, 0,
- 2, 2, 1, 23, 1, 23, 0, 13, 0, 4, 0, 31, 54, 41, 15, 3, 11, 7, 2, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 2,110, 0, 2, 0, 0,
- 0, 2,118, 0, 2, 0, 0, 0, 8,110,101,120,116,118, 97,114, 0, 2, 0, 0,
- 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 20, 45, 45,112,114,105,110,116,
-118, 97,114,115, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,
-115,116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 18, 45,
- 45,112,114,105,110,116,118, 97,114,115, 32, 69,110,100, 45, 45, 0, 2, 0, 0,
- 0, 11,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 0, 0, 0, 17, 0, 0,
- 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 71,
- 7, 1, 15, 3, 13, 0, 4, 0, 2, 2, 2, 15, 4, 11, 5, 2, 0, 1, 50, 36,
- 15, 4, 15, 6, 13, 1, 2, 1, 1, 11, 7, 42, 15, 6, 13, 2, 2, 1, 1, 42,
- 2, 0, 1, 15, 3, 13, 0, 13, 1, 2, 2, 2, 23, 2, 23, 1, 13, 1, 4, 0,
- 31, 54, 43, 15, 4, 11, 8, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2,
- 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 2,118, 0,
- 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,112,114,105,110,116,
- 0, 2, 0, 0, 0, 21, 45, 45,112,114,105,110,116,116, 97, 98,108,101, 32, 83,
-116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103,
- 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 19, 45, 45,112,114,105,110,116,
-116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0, 2, 0, 0, 0, 19,112,114,105,
-110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111, 0, 4, 0, 0, 0,
- 27, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0,
- 0, 0,241, 5, 0, 15, 0, 15, 1, 11, 2, 42, 15, 3, 18, 4, 42, 2, 0, 1,
- 15, 5, 52, 17, 15, 0, 15, 5, 18, 1, 11, 2, 42, 15, 5, 18, 6, 42, 2, 0,
- 1, 15, 7, 48, 4, 15, 7, 18, 1, 52, 17, 15, 0, 15, 7, 18, 1, 11, 2, 42,
- 15, 7, 18, 6, 42, 2, 0, 1, 15, 0, 15, 3, 18, 1, 11, 2, 42, 15, 3, 18,
- 6, 42, 2, 0, 1, 15, 0, 11, 8, 2, 0, 1, 15, 0, 11, 9, 2, 0, 1, 15,
- 0, 11, 10, 15, 3, 18, 11, 11, 12, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, 13,
- 15, 3, 18, 11, 11, 14, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 11, 11, 16, 2,
- 1, 1, 13, 0, 52, 9, 15, 0, 11, 17, 13, 0, 2, 0, 2, 15, 0, 11, 18, 15,
- 3, 18, 11, 11, 19, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, 20, 15, 3, 18, 11,
- 11, 21, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 22, 52, 12, 15, 0, 11, 23, 15,
- 3, 18, 22, 42, 2, 0, 1, 15, 3, 18, 24, 52, 12, 15, 0, 11, 25, 15, 3, 18,
- 24, 42, 2, 0, 1, 15, 3, 18, 26, 52, 12, 15, 0, 11, 27, 15, 3, 18, 26, 42,
- 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 28, 2, 0, 0, 0, 6,112,114,105,
-110,116, 0, 2, 0, 0, 0, 9, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0,
- 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 15, 95, 76,
- 85, 65, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 3,105,109,
- 0, 2, 0, 0, 0, 11, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, 0,
- 0, 3, 99,100, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 9, 73, 85, 80, 32,
- 73,110,102,111, 0, 2, 0, 0, 0, 11, 32, 32, 83,121,115,116,101,109, 58, 32,
- 0, 2, 0, 0, 0, 10, 71,101,116, 71,108,111, 98, 97,108, 0, 2, 0, 0, 0,
- 7, 83, 89, 83, 84, 69, 77, 0, 2, 0, 0, 0, 19, 32, 32, 83,121,115,116,101,
-109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0, 0, 14, 83, 89, 83,
- 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, 4,109,111,116, 0,
- 2, 0, 0, 0, 13, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0,
- 0, 0, 18, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32,
- 0, 2, 0, 0, 0, 16, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122,101, 58,
- 32, 0, 2, 0, 0, 0, 11, 83, 67, 82, 69, 69, 78, 83, 73, 90, 69, 0, 2, 0,
- 0, 0, 17, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112,116,104, 58, 32, 0,
- 2, 0, 0, 0, 12, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 2, 0, 0,
- 0, 10, 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 2, 0, 0, 0, 18, 32, 32, 79,
-112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 2, 0, 0, 0, 12,
- 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 2, 0, 0, 0, 20, 32, 32, 79,
-112,101,110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58, 32, 0, 2, 0, 0,
- 0, 11, 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, 19, 32, 32,
- 79,112,101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0,
- 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 12,109,117,108, 67,
-111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108,116,
-105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2, 0,
- 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 5,115,105,122,101,
- 0, 2, 0, 0, 0, 8, 50, 48, 48,120, 49, 50, 48, 0, 2, 0, 0, 0, 5,102,
-111,110,116, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82,
- 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 9,112,111,115,108, 97, 98,101,108,
- 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,
-116,105,116,108,101, 0, 2, 0, 0, 0, 4, 48, 58, 48, 0, 2, 0, 0, 0, 4,
- 53, 48,120, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2,
- 0, 0, 0, 1, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76,
- 0, 2, 0, 0, 0, 8, 99, 97,114,101,116, 99, 98, 0, 4, 0, 0, 0, 53, 0,
- 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,
- 16, 7, 3, 15, 3, 11, 4, 13, 1, 11, 5, 42, 13, 2, 42, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 4,
-108,105,110, 0, 2, 0, 0, 0, 4, 99,111,108, 0, 2, 0, 0, 0, 9,112,111,
-115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0,
- 0, 0, 2, 58, 0, 2, 0, 0, 0, 11, 98,117,116, 69,120,101, 99,117,116,101,
- 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0,
- 6, 53, 48,120, 49, 53, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0,
- 0, 0, 8, 69,120,101, 99,117,116,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,
-111,110, 0, 2, 0, 0, 0, 28,100,111,115,116,114,105,110,103, 40,109,117,108,
- 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 41, 0, 2, 0, 0, 0,
- 17, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97,110,100,115, 0, 2, 0,
- 0, 0, 6, 67,108,101, 97,114, 0, 2, 0, 0, 0, 61,109,117,108, 67,111,109,
-109, 97,110,100,115, 46,118, 97,108,117,101, 32, 61, 32, 39, 39, 32, 32,102,105,
-108,101,108, 97, 98,101,108, 46,116,105,116,108,101, 32, 61, 32, 39, 39, 32, 32,
-108, 97,115,116,102,105,108,101, 32, 61, 32,110,105,108, 0, 2, 0, 0, 0, 12,
- 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 2, 0, 0, 0, 8, 76,111, 97,
-100, 46, 46, 46, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, 70,
-105,108,101, 0, 2, 0, 0, 0, 11, 83, 97,118,101, 32, 65,115, 46, 46, 46, 0,
- 2, 0, 0, 0, 12, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 2, 0, 0,
- 0, 5, 83, 97,118,101, 0, 4, 0, 0, 0, 63, 0, 0, 0, 14, 64, 99,111,110,
-115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 4, 1, 15, 0, 4, 0,
- 32, 52, 9, 15, 1, 20, 2, 2, 0, 1, 50, 48, 15, 4, 15, 0, 11, 5, 2, 1,
- 2, 25, 3, 15, 3, 4, 0, 31, 52, 20, 15, 6, 15, 3, 15, 7, 18, 8, 2, 0,
- 2, 15, 9, 15, 3, 2, 0, 1, 50, 10, 15, 10, 11, 11, 15, 12, 42, 2, 0, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 9,108, 97,115,116,102,105,
-108,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, 70,105,108,
-101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,110,
-111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101,
- 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0,
- 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0,
- 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 10, 99,108,111,115,101,102,105,
-108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67,
- 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 2, 0, 0,
- 0, 9,102,105,108,101,110, 97,109,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83,
- 97,118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,
-110, 0, 4, 0, 0, 0, 77, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51,
- 46,108,117, 97, 0, 0, 0, 0,136, 13, 1, 15, 1, 22, 5, 11, 2, 11, 3, 11,
- 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 15, 11, 30, 4, 2, 1, 1,
- 15, 12, 13, 1, 15, 13, 15, 13, 2, 0, 3, 13, 1, 18, 14, 13, 1, 18, 16, 25,
- 15, 15, 17, 11, 4, 15, 15, 26, 15, 18, 13, 1, 2, 0, 1, 13, 2, 11, 19, 31,
- 52, 62, 15, 15, 4, 0, 32, 52, 10, 15, 20, 11, 21, 15, 15, 42, 2, 0, 1, 15,
- 23, 15, 15, 11, 24, 2, 1, 2, 13, 3, 4, 0, 31, 52, 20, 15, 25, 13, 3, 15,
- 26, 18, 16, 2, 0, 2, 15, 27, 13, 3, 2, 0, 1, 50, 7, 15, 20, 11, 28, 2,
- 0, 1, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 2, 0, 0, 0, 8,102,105,
-108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101,100,108,
-103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,112,101, 0, 2, 0,
- 0, 0, 5, 83, 65, 86, 69, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2,
- 0, 0, 0, 10, 83, 97,118,101, 32, 70,105,108,101, 0, 2, 0, 0, 0, 7,102,
-105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, 97, 0, 2, 0, 0,
- 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, 0, 0, 10, 76,117,
- 97, 32,102,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,108,111,119,110,101,
-119, 0, 2, 0, 0, 0, 4,121,101,115, 0, 2, 0, 0, 0, 9, 73,117,112, 80,
-111,112,117,112, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 76, 69, 70, 84, 0, 2,
- 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, 9,108, 97,115,116,
-102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0,
- 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11, 73,117,112, 68,
-101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, 0, 2, 0, 0, 0, 6,
-101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97,
-118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 8,110,111,118,111, 97,114,
-113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101, 0, 2, 0, 0, 0,
- 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0, 2, 0, 0, 0, 12,
-109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 10, 99,108,111,
-115,101,102,105,108,101, 0, 2, 0, 0, 0, 17, 67, 97,110,110,111,116, 32, 83,
- 97,118,101, 32,102,105,108,101, 0, 4, 0, 0, 0, 98, 0, 0, 0, 14, 64, 99,
-111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,153, 13, 1, 15, 1,
- 22, 5, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10,
- 11, 11, 30, 4, 2, 1, 1, 13, 1, 20, 12, 15, 13, 15, 13, 2, 0, 3, 13, 1,
- 18, 14, 13, 1, 18, 16, 15, 17, 13, 1, 2, 0, 1, 13, 2, 11, 18, 32, 46, 5,
- 13, 2, 11, 19, 32, 52, 19, 13, 2, 11, 19, 32, 52, 10, 15, 20, 11, 21, 13, 3,
- 42, 2, 0, 1, 50, 62, 15, 23, 13, 3, 11, 24, 2, 1, 2, 13, 4, 4, 0, 32,
- 52, 12, 15, 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 32, 15, 25, 11, 16, 15, 26,
- 13, 4, 11, 27, 2, 1, 2, 26, 15, 28, 13, 4, 2, 0, 1, 13, 3, 25, 29, 15,
- 30, 11, 4, 15, 29, 26, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0,
- 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,
-108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,112,
-101, 0, 2, 0, 0, 0, 5, 79, 80, 69, 78, 0, 2, 0, 0, 0, 6,116,105,116,
-108,101, 0, 2, 0, 0, 0, 10, 76,111, 97,100, 32, 70,105,108,101, 0, 2, 0,
- 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, 97,
- 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, 0,
- 0, 10, 76,117, 97, 32, 70,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,108,
-111,119,110,101,119, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 6,112,
-111,112,117,112, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82,
- 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, 8,110,101,
-119,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0,
- 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49,
- 0, 2, 0, 0, 0, 2, 49, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2,
- 0, 0, 0, 18, 67, 97,110,110,111,116, 32,108,111, 97,100, 32,102,105,108,101,
- 32, 0, 2, 0, 0, 0, 3,102,112, 0, 2, 0, 0, 0, 9,111,112,101,110,102,
-105,108,101, 0, 2, 0, 0, 0, 2,114, 0, 2, 0, 0, 0, 12,109,117,108, 67,
-111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 5,114,101, 97,100, 0, 2, 0,
- 0, 0, 3, 42, 97, 0, 2, 0, 0, 0, 10, 99,108,111,115,101,102,105,108,101,
- 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 10,
-102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11,118, 98,120, 67,111,
-110,115,111,108,101, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0, 2,
- 0, 0, 0, 9,105,117,112,102,114, 97,109,101, 0, 2, 0, 0, 0, 8,105,117,
-112,104, 98,111,120, 0, 2, 0, 0, 0, 7,109, 97,114,103,105,110, 0, 2, 0,
- 0, 0, 4, 48,120, 48, 0, 2, 0, 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0,
- 3, 49, 48, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2,
- 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0,
- 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,
-109,101,110,116, 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0,
- 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0,
- 0, 0, 9, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 8, 65, 67, 69,
- 78, 84, 69, 82, 0, 2, 0, 0, 0, 4, 53,120, 53, 0, 2, 0, 0, 0, 2, 53,
- 0, 2, 0, 0, 0, 8,109,110,117, 77, 97,105,110, 0, 2, 0, 0, 0, 8,105,
-117,112,109,101,110,117, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,
-110,117, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 2, 0, 0, 0,
- 5, 69,120,105,116, 0, 2, 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85,
- 80, 95, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 5, 70,105,108,101, 0, 2, 0,
- 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2, 0, 0,
- 0, 22, 80,114,105,110,116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111,
- 46, 46, 46, 0, 2, 0, 0, 0, 9, 65, 98,111,117,116, 46, 46, 46, 0, 2, 0,
- 0, 0, 39,100,108,103, 65, 98,111,117,116, 58,112,111,112,117,112, 40, 73, 85,
- 80, 95, 67, 69, 78, 84, 69, 82, 44, 32, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82,
- 41, 0, 2, 0, 0, 0, 5, 72,101,108,112, 0, 2, 0, 0, 0, 8,100,108,103,
- 77, 97,105,110, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0,
- 2, 0, 0, 0, 29, 67,111,109,112,108,101,116,101, 32, 73,117,112, 76,117, 97,
- 51, 32, 73,110,116,101,114,112,114,101,116,101,114, 0, 2, 0, 0, 0, 5,109,
-101,110,117, 0, 2, 0, 0, 0, 9, 99,108,111,115,101, 95, 99, 98, 0, 2, 0,
- 0, 0, 9,100,108,103, 65, 98,111,117,116, 0, 2, 0, 0, 0, 8,105,117,112,
-102,105,108,108, 0, 2, 0, 0, 0, 16, 84,101, 99,103,114, 97,102, 47, 80, 85,
- 67, 45, 82,105,111, 0, 2, 0, 0, 0, 18, 77, 97,114,107, 47, 79,118,237,100,
-105,111, 47, 83, 99,117,114,105, 0, 2, 0, 0, 0, 23,105,117,112, 64,116,101,
- 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,114, 0, 2, 0, 0,
- 0, 3, 79, 75, 0, 2, 0, 0, 0, 6, 53, 48, 88, 50, 48, 0, 2, 0, 0, 0,
- 6, 49, 48,120, 49, 48, 0, 2, 0, 0, 0, 7,109, 97,120, 98,111,120, 0, 2,
- 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, 2, 0, 0, 0, 7,109,105,110, 98,
-111,120, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 6,
- 65, 98,111,117,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 2, 0, 0, 0,
- 12, 73,117,112, 77, 97,105,110, 76,111,111,112, 0, 2, 0, 0, 0, 11, 73,117,
-112, 68,101,115,116,114,111,121, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/console3.lo");
-}
diff --git a/iup/srcconsole/loh/console3_be32.loh b/iup/srcconsole/loh/console3_be32.loh
deleted file mode 100755
index 8cae3eb..0000000
--- a/iup/srcconsole/loh/console3_be32.loh
+++ /dev/null
@@ -1,254 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/console3_be32.lo");
-*/
-/* ../obj/iuplua3/console3_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 99,111,110,115,111,
-108,101, 51, 46,108,117, 97, 0, 0, 0, 2,170, 17, 0, 11, 1, 25, 0, 11, 3,
- 25, 2, 11, 5, 25, 4, 11, 7, 25, 6, 4, 0, 25, 8, 15, 10, 22, 3, 11, 11,
- 15, 12, 11, 13, 11, 14, 11, 15, 11, 16, 30, 2, 2, 1, 1, 25, 9, 15, 18, 22,
- 2, 11, 19, 11, 20, 11, 13, 11, 21, 30, 1, 2, 1, 1, 25, 17, 15, 18, 22, 3,
- 11, 19, 11, 23, 11, 13, 11, 21, 11, 11, 11, 24, 30, 2, 2, 1, 1, 25, 22, 15,
- 9, 11, 25, 11, 26, 26, 15, 28, 22, 3, 11, 13, 11, 29, 11, 30, 11, 31, 11, 32,
- 11, 33, 30, 2, 2, 1, 1, 25, 27, 15, 28, 22, 3, 11, 13, 11, 29, 11, 30, 11,
- 35, 11, 32, 11, 36, 30, 2, 2, 1, 1, 25, 34, 15, 28, 22, 2, 11, 13, 11, 29,
- 11, 30, 11, 38, 30, 1, 2, 1, 1, 25, 37, 15, 28, 22, 2, 11, 13, 11, 29, 11,
- 30, 11, 40, 30, 1, 2, 1, 1, 25, 39, 15, 28, 22, 2, 11, 13, 11, 29, 11, 30,
- 11, 42, 30, 1, 2, 1, 1, 25, 41, 15, 41, 11, 32, 11, 43, 26, 15, 44, 11, 45,
- 11, 46, 26, 15, 37, 11, 45, 11, 47, 26, 15, 49, 22, 4, 15, 50, 22, 2, 15, 51,
- 22, 3, 15, 49, 22, 7, 15, 37, 15, 41, 15, 44, 15, 34, 15, 27, 29, 0, 5, 11,
- 52, 11, 53, 11, 54, 11, 55, 30, 1, 2, 1, 1, 15, 49, 22, 4, 15, 56, 15, 57,
- 15, 58, 29, 0, 3, 11, 59, 11, 60, 30, 0, 2, 1, 1, 29, 0, 2, 11, 59, 11,
- 61, 30, 0, 2, 1, 1, 29, 0, 1, 11, 62, 11, 63, 30, 0, 2, 1, 1, 29, 0,
- 1, 11, 59, 11, 64, 11, 52, 11, 65, 11, 54, 11, 66, 30, 2, 2, 1, 1, 25, 48,
- 15, 68, 22, 2, 15, 69, 22, 2, 15, 68, 22, 1, 15, 70, 22, 2, 11, 62, 11, 71,
- 11, 45, 11, 72, 30, 1, 2, 1, 1, 29, 0, 1, 2, 1, 1, 29, 0, 1, 11, 62,
- 11, 73, 30, 0, 2, 1, 1, 15, 69, 22, 2, 15, 68, 22, 2, 15, 74, 18, 75, 22,
- 2, 11, 62, 11, 76, 11, 45, 15, 6, 30, 1, 2, 1, 1, 15, 70, 22, 2, 11, 62,
- 11, 77, 11, 45, 11, 78, 30, 1, 2, 1, 1, 29, 0, 2, 2, 1, 1, 29, 0, 1,
- 11, 62, 11, 79, 30, 0, 2, 1, 1, 29, 0, 2, 2, 1, 1, 25, 67, 15, 81, 22,
- 4, 15, 48, 29, 0, 1, 11, 62, 11, 82, 11, 83, 15, 67, 11, 84, 11, 72, 30, 2,
- 2, 1, 1, 25, 80, 15, 81, 22, 5, 15, 49, 22, 8, 15, 18, 22, 1, 11, 62, 11,
- 82, 30, 0, 2, 1, 1, 15, 86, 22, 1, 11, 13, 11, 66, 30, 0, 2, 1, 1, 15,
- 86, 22, 1, 11, 13, 11, 66, 30, 0, 2, 1, 1, 15, 50, 22, 1, 15, 49, 22, 3,
- 15, 18, 22, 1, 11, 62, 11, 87, 30, 0, 2, 1, 1, 15, 18, 22, 1, 11, 62, 11,
- 88, 30, 0, 2, 1, 1, 15, 18, 22, 1, 11, 62, 11, 89, 30, 0, 2, 1, 1, 29,
- 0, 3, 2, 1, 1, 29, 0, 1, 2, 1, 1, 15, 86, 22, 1, 11, 13, 11, 66, 30,
- 0, 2, 1, 1, 15, 28, 22, 3, 11, 62, 11, 90, 11, 45, 11, 72, 11, 13, 11, 91,
- 30, 2, 2, 1, 1, 29, 0, 6, 11, 52, 11, 92, 11, 59, 11, 64, 30, 1, 2, 1,
- 1, 29, 0, 1, 11, 93, 15, 94, 11, 95, 15, 94, 11, 96, 15, 94, 11, 62, 11, 97,
- 30, 3, 2, 1, 1, 25, 85, 15, 80, 20, 98, 2, 0, 1, 15, 99, 2, 0, 0, 15,
-100, 15, 80, 2, 0, 1, 15,100, 15, 85, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0,101, 2, 0, 0, 0, 8,114,101,113,117,105,114,101, 0, 4, 0, 0, 0, 4,
- 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0,
- 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 10,112,114,
-105,110,116,118, 97,114,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64, 99,111,
-110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 6, 0, 15, 2, 4,
- 0, 2, 2, 1, 15, 3, 11, 4, 2, 0, 1, 50, 34, 15, 3, 15, 5, 13, 0, 2,
- 1, 1, 11, 6, 42, 15, 5, 13, 1, 2, 1, 1, 42, 2, 0, 1, 15, 2, 13, 0,
- 2, 2, 1, 23, 1, 23, 0, 13, 0, 4, 0, 31, 54, 41, 15, 3, 11, 7, 2, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 2,110, 0, 2, 0, 0,
- 0, 2,118, 0, 2, 0, 0, 0, 8,110,101,120,116,118, 97,114, 0, 2, 0, 0,
- 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 20, 45, 45,112,114,105,110,116,
-118, 97,114,115, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,
-115,116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 18, 45,
- 45,112,114,105,110,116,118, 97,114,115, 32, 69,110,100, 45, 45, 0, 2, 0, 0,
- 0, 11,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 0, 0, 0, 17, 0, 0,
- 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 71,
- 7, 1, 15, 3, 13, 0, 4, 0, 2, 2, 2, 15, 4, 11, 5, 2, 0, 1, 50, 36,
- 15, 4, 15, 6, 13, 1, 2, 1, 1, 11, 7, 42, 15, 6, 13, 2, 2, 1, 1, 42,
- 2, 0, 1, 15, 3, 13, 0, 13, 1, 2, 2, 2, 23, 2, 23, 1, 13, 1, 4, 0,
- 31, 54, 43, 15, 4, 11, 8, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2,
- 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 2,118, 0,
- 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,112,114,105,110,116,
- 0, 2, 0, 0, 0, 21, 45, 45,112,114,105,110,116,116, 97, 98,108,101, 32, 83,
-116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103,
- 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 19, 45, 45,112,114,105,110,116,
-116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0, 2, 0, 0, 0, 19,112,114,105,
-110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111, 0, 4, 0, 0, 0,
- 27, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0,
- 0, 0,241, 5, 0, 15, 0, 15, 1, 11, 2, 42, 15, 3, 18, 4, 42, 2, 0, 1,
- 15, 5, 52, 17, 15, 0, 15, 5, 18, 1, 11, 2, 42, 15, 5, 18, 6, 42, 2, 0,
- 1, 15, 7, 48, 4, 15, 7, 18, 1, 52, 17, 15, 0, 15, 7, 18, 1, 11, 2, 42,
- 15, 7, 18, 6, 42, 2, 0, 1, 15, 0, 15, 3, 18, 1, 11, 2, 42, 15, 3, 18,
- 6, 42, 2, 0, 1, 15, 0, 11, 8, 2, 0, 1, 15, 0, 11, 9, 2, 0, 1, 15,
- 0, 11, 10, 15, 3, 18, 11, 11, 12, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, 13,
- 15, 3, 18, 11, 11, 14, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 11, 11, 16, 2,
- 1, 1, 13, 0, 52, 9, 15, 0, 11, 17, 13, 0, 2, 0, 2, 15, 0, 11, 18, 15,
- 3, 18, 11, 11, 19, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, 20, 15, 3, 18, 11,
- 11, 21, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 22, 52, 12, 15, 0, 11, 23, 15,
- 3, 18, 22, 42, 2, 0, 1, 15, 3, 18, 24, 52, 12, 15, 0, 11, 25, 15, 3, 18,
- 24, 42, 2, 0, 1, 15, 3, 18, 26, 52, 12, 15, 0, 11, 27, 15, 3, 18, 26, 42,
- 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 28, 2, 0, 0, 0, 6,112,114,105,
-110,116, 0, 2, 0, 0, 0, 9, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0,
- 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 15, 95, 76,
- 85, 65, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 3,105,109,
- 0, 2, 0, 0, 0, 11, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, 0,
- 0, 3, 99,100, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 9, 73, 85, 80, 32,
- 73,110,102,111, 0, 2, 0, 0, 0, 11, 32, 32, 83,121,115,116,101,109, 58, 32,
- 0, 2, 0, 0, 0, 10, 71,101,116, 71,108,111, 98, 97,108, 0, 2, 0, 0, 0,
- 7, 83, 89, 83, 84, 69, 77, 0, 2, 0, 0, 0, 19, 32, 32, 83,121,115,116,101,
-109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0, 0, 14, 83, 89, 83,
- 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, 4,109,111,116, 0,
- 2, 0, 0, 0, 13, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0,
- 0, 0, 18, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32,
- 0, 2, 0, 0, 0, 16, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122,101, 58,
- 32, 0, 2, 0, 0, 0, 11, 83, 67, 82, 69, 69, 78, 83, 73, 90, 69, 0, 2, 0,
- 0, 0, 17, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112,116,104, 58, 32, 0,
- 2, 0, 0, 0, 12, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 2, 0, 0,
- 0, 10, 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 2, 0, 0, 0, 18, 32, 32, 79,
-112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 2, 0, 0, 0, 12,
- 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 2, 0, 0, 0, 20, 32, 32, 79,
-112,101,110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58, 32, 0, 2, 0, 0,
- 0, 11, 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, 19, 32, 32,
- 79,112,101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0,
- 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 12,109,117,108, 67,
-111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108,116,
-105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2, 0,
- 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 5,115,105,122,101,
- 0, 2, 0, 0, 0, 8, 50, 48, 48,120, 49, 50, 48, 0, 2, 0, 0, 0, 5,102,
-111,110,116, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82,
- 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 9,112,111,115,108, 97, 98,101,108,
- 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,
-116,105,116,108,101, 0, 2, 0, 0, 0, 4, 48, 58, 48, 0, 2, 0, 0, 0, 4,
- 53, 48,120, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2,
- 0, 0, 0, 1, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76,
- 0, 2, 0, 0, 0, 8, 99, 97,114,101,116, 99, 98, 0, 4, 0, 0, 0, 53, 0,
- 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,
- 16, 7, 3, 15, 3, 11, 4, 13, 1, 11, 5, 42, 13, 2, 42, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 4,
-108,105,110, 0, 2, 0, 0, 0, 4, 99,111,108, 0, 2, 0, 0, 0, 9,112,111,
-115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0,
- 0, 0, 2, 58, 0, 2, 0, 0, 0, 11, 98,117,116, 69,120,101, 99,117,116,101,
- 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0,
- 6, 53, 48,120, 49, 53, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0,
- 0, 0, 8, 69,120,101, 99,117,116,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,
-111,110, 0, 2, 0, 0, 0, 28,100,111,115,116,114,105,110,103, 40,109,117,108,
- 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 41, 0, 2, 0, 0, 0,
- 17, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97,110,100,115, 0, 2, 0,
- 0, 0, 6, 67,108,101, 97,114, 0, 2, 0, 0, 0, 61,109,117,108, 67,111,109,
-109, 97,110,100,115, 46,118, 97,108,117,101, 32, 61, 32, 39, 39, 32, 32,102,105,
-108,101,108, 97, 98,101,108, 46,116,105,116,108,101, 32, 61, 32, 39, 39, 32, 32,
-108, 97,115,116,102,105,108,101, 32, 61, 32,110,105,108, 0, 2, 0, 0, 0, 12,
- 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 2, 0, 0, 0, 8, 76,111, 97,
-100, 46, 46, 46, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, 70,
-105,108,101, 0, 2, 0, 0, 0, 11, 83, 97,118,101, 32, 65,115, 46, 46, 46, 0,
- 2, 0, 0, 0, 12, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 2, 0, 0,
- 0, 5, 83, 97,118,101, 0, 4, 0, 0, 0, 63, 0, 0, 0, 14, 64, 99,111,110,
-115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 4, 1, 15, 0, 4, 0,
- 32, 52, 9, 15, 1, 20, 2, 2, 0, 1, 50, 48, 15, 4, 15, 0, 11, 5, 2, 1,
- 2, 25, 3, 15, 3, 4, 0, 31, 52, 20, 15, 6, 15, 3, 15, 7, 18, 8, 2, 0,
- 2, 15, 9, 15, 3, 2, 0, 1, 50, 10, 15, 10, 11, 11, 15, 12, 42, 2, 0, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 9,108, 97,115,116,102,105,
-108,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, 70,105,108,
-101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,110,
-111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101,
- 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0,
- 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0,
- 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 10, 99,108,111,115,101,102,105,
-108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67,
- 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 2, 0, 0,
- 0, 9,102,105,108,101,110, 97,109,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83,
- 97,118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,
-110, 0, 4, 0, 0, 0, 77, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51,
- 46,108,117, 97, 0, 0, 0, 0,136, 13, 1, 15, 1, 22, 5, 11, 2, 11, 3, 11,
- 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 15, 11, 30, 4, 2, 1, 1,
- 15, 12, 13, 1, 15, 13, 15, 13, 2, 0, 3, 13, 1, 18, 14, 13, 1, 18, 16, 25,
- 15, 15, 17, 11, 4, 15, 15, 26, 15, 18, 13, 1, 2, 0, 1, 13, 2, 11, 19, 31,
- 52, 62, 15, 15, 4, 0, 32, 52, 10, 15, 20, 11, 21, 15, 15, 42, 2, 0, 1, 15,
- 23, 15, 15, 11, 24, 2, 1, 2, 13, 3, 4, 0, 31, 52, 20, 15, 25, 13, 3, 15,
- 26, 18, 16, 2, 0, 2, 15, 27, 13, 3, 2, 0, 1, 50, 7, 15, 20, 11, 28, 2,
- 0, 1, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 2, 0, 0, 0, 8,102,105,
-108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101,100,108,
-103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,112,101, 0, 2, 0,
- 0, 0, 5, 83, 65, 86, 69, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2,
- 0, 0, 0, 10, 83, 97,118,101, 32, 70,105,108,101, 0, 2, 0, 0, 0, 7,102,
-105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, 97, 0, 2, 0, 0,
- 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, 0, 0, 10, 76,117,
- 97, 32,102,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,108,111,119,110,101,
-119, 0, 2, 0, 0, 0, 4,121,101,115, 0, 2, 0, 0, 0, 9, 73,117,112, 80,
-111,112,117,112, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 76, 69, 70, 84, 0, 2,
- 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, 9,108, 97,115,116,
-102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0,
- 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11, 73,117,112, 68,
-101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, 0, 2, 0, 0, 0, 6,
-101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97,
-118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 8,110,111,118,111, 97,114,
-113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101, 0, 2, 0, 0, 0,
- 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0, 2, 0, 0, 0, 12,
-109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 10, 99,108,111,
-115,101,102,105,108,101, 0, 2, 0, 0, 0, 17, 67, 97,110,110,111,116, 32, 83,
- 97,118,101, 32,102,105,108,101, 0, 4, 0, 0, 0, 98, 0, 0, 0, 14, 64, 99,
-111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,153, 13, 1, 15, 1,
- 22, 5, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10,
- 11, 11, 30, 4, 2, 1, 1, 13, 1, 20, 12, 15, 13, 15, 13, 2, 0, 3, 13, 1,
- 18, 14, 13, 1, 18, 16, 15, 17, 13, 1, 2, 0, 1, 13, 2, 11, 18, 32, 46, 5,
- 13, 2, 11, 19, 32, 52, 19, 13, 2, 11, 19, 32, 52, 10, 15, 20, 11, 21, 13, 3,
- 42, 2, 0, 1, 50, 62, 15, 23, 13, 3, 11, 24, 2, 1, 2, 13, 4, 4, 0, 32,
- 52, 12, 15, 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 32, 15, 25, 11, 16, 15, 26,
- 13, 4, 11, 27, 2, 1, 2, 26, 15, 28, 13, 4, 2, 0, 1, 13, 3, 25, 29, 15,
- 30, 11, 4, 15, 29, 26, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0,
- 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,
-108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,112,
-101, 0, 2, 0, 0, 0, 5, 79, 80, 69, 78, 0, 2, 0, 0, 0, 6,116,105,116,
-108,101, 0, 2, 0, 0, 0, 10, 76,111, 97,100, 32, 70,105,108,101, 0, 2, 0,
- 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, 97,
- 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, 0,
- 0, 10, 76,117, 97, 32, 70,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,108,
-111,119,110,101,119, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 6,112,
-111,112,117,112, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82,
- 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, 8,110,101,
-119,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0,
- 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49,
- 0, 2, 0, 0, 0, 2, 49, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2,
- 0, 0, 0, 18, 67, 97,110,110,111,116, 32,108,111, 97,100, 32,102,105,108,101,
- 32, 0, 2, 0, 0, 0, 3,102,112, 0, 2, 0, 0, 0, 9,111,112,101,110,102,
-105,108,101, 0, 2, 0, 0, 0, 2,114, 0, 2, 0, 0, 0, 12,109,117,108, 67,
-111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 5,114,101, 97,100, 0, 2, 0,
- 0, 0, 3, 42, 97, 0, 2, 0, 0, 0, 10, 99,108,111,115,101,102,105,108,101,
- 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 10,
-102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11,118, 98,120, 67,111,
-110,115,111,108,101, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0, 2,
- 0, 0, 0, 9,105,117,112,102,114, 97,109,101, 0, 2, 0, 0, 0, 8,105,117,
-112,104, 98,111,120, 0, 2, 0, 0, 0, 7,109, 97,114,103,105,110, 0, 2, 0,
- 0, 0, 4, 48,120, 48, 0, 2, 0, 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0,
- 3, 49, 48, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2,
- 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0,
- 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,
-109,101,110,116, 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0,
- 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0,
- 0, 0, 9, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 8, 65, 67, 69,
- 78, 84, 69, 82, 0, 2, 0, 0, 0, 4, 53,120, 53, 0, 2, 0, 0, 0, 2, 53,
- 0, 2, 0, 0, 0, 8,109,110,117, 77, 97,105,110, 0, 2, 0, 0, 0, 8,105,
-117,112,109,101,110,117, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,
-110,117, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 2, 0, 0, 0,
- 5, 69,120,105,116, 0, 2, 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85,
- 80, 95, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 5, 70,105,108,101, 0, 2, 0,
- 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2, 0, 0,
- 0, 22, 80,114,105,110,116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111,
- 46, 46, 46, 0, 2, 0, 0, 0, 9, 65, 98,111,117,116, 46, 46, 46, 0, 2, 0,
- 0, 0, 39,100,108,103, 65, 98,111,117,116, 58,112,111,112,117,112, 40, 73, 85,
- 80, 95, 67, 69, 78, 84, 69, 82, 44, 32, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82,
- 41, 0, 2, 0, 0, 0, 5, 72,101,108,112, 0, 2, 0, 0, 0, 8,100,108,103,
- 77, 97,105,110, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0,
- 2, 0, 0, 0, 29, 67,111,109,112,108,101,116,101, 32, 73,117,112, 76,117, 97,
- 51, 32, 73,110,116,101,114,112,114,101,116,101,114, 0, 2, 0, 0, 0, 5,109,
-101,110,117, 0, 2, 0, 0, 0, 9, 99,108,111,115,101, 95, 99, 98, 0, 2, 0,
- 0, 0, 9,100,108,103, 65, 98,111,117,116, 0, 2, 0, 0, 0, 8,105,117,112,
-102,105,108,108, 0, 2, 0, 0, 0, 16, 84,101, 99,103,114, 97,102, 47, 80, 85,
- 67, 45, 82,105,111, 0, 2, 0, 0, 0, 18, 77, 97,114,107, 47, 79,118,237,100,
-105,111, 47, 83, 99,117,114,105, 0, 2, 0, 0, 0, 23,105,117,112, 64,116,101,
- 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,114, 0, 2, 0, 0,
- 0, 3, 79, 75, 0, 2, 0, 0, 0, 6, 53, 48, 88, 50, 48, 0, 2, 0, 0, 0,
- 6, 49, 48,120, 49, 48, 0, 2, 0, 0, 0, 7,109, 97,120, 98,111,120, 0, 2,
- 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, 2, 0, 0, 0, 7,109,105,110, 98,
-111,120, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 6,
- 65, 98,111,117,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 2, 0, 0, 0,
- 12, 73,117,112, 77, 97,105,110, 76,111,111,112, 0, 2, 0, 0, 0, 11, 73,117,
-112, 68,101,115,116,114,111,121, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/console3_be32.lo");
-}
diff --git a/iup/srcconsole/loh/console3_be64.loh b/iup/srcconsole/loh/console3_be64.loh
deleted file mode 100755
index 879d789..0000000
--- a/iup/srcconsole/loh/console3_be64.loh
+++ /dev/null
@@ -1,254 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/console3_be64.lo");
-*/
-/* ../obj/iuplua3/console3_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 99,111,110,115,111,
-108,101, 51, 46,108,117, 97, 0, 0, 0, 2,170, 17, 0, 11, 1, 25, 0, 11, 3,
- 25, 2, 11, 5, 25, 4, 11, 7, 25, 6, 4, 0, 25, 8, 15, 10, 22, 3, 11, 11,
- 15, 12, 11, 13, 11, 14, 11, 15, 11, 16, 30, 2, 2, 1, 1, 25, 9, 15, 18, 22,
- 2, 11, 19, 11, 20, 11, 13, 11, 21, 30, 1, 2, 1, 1, 25, 17, 15, 18, 22, 3,
- 11, 19, 11, 23, 11, 13, 11, 21, 11, 11, 11, 24, 30, 2, 2, 1, 1, 25, 22, 15,
- 9, 11, 25, 11, 26, 26, 15, 28, 22, 3, 11, 13, 11, 29, 11, 30, 11, 31, 11, 32,
- 11, 33, 30, 2, 2, 1, 1, 25, 27, 15, 28, 22, 3, 11, 13, 11, 29, 11, 30, 11,
- 35, 11, 32, 11, 36, 30, 2, 2, 1, 1, 25, 34, 15, 28, 22, 2, 11, 13, 11, 29,
- 11, 30, 11, 38, 30, 1, 2, 1, 1, 25, 37, 15, 28, 22, 2, 11, 13, 11, 29, 11,
- 30, 11, 40, 30, 1, 2, 1, 1, 25, 39, 15, 28, 22, 2, 11, 13, 11, 29, 11, 30,
- 11, 42, 30, 1, 2, 1, 1, 25, 41, 15, 41, 11, 32, 11, 43, 26, 15, 44, 11, 45,
- 11, 46, 26, 15, 37, 11, 45, 11, 47, 26, 15, 49, 22, 4, 15, 50, 22, 2, 15, 51,
- 22, 3, 15, 49, 22, 7, 15, 37, 15, 41, 15, 44, 15, 34, 15, 27, 29, 0, 5, 11,
- 52, 11, 53, 11, 54, 11, 55, 30, 1, 2, 1, 1, 15, 49, 22, 4, 15, 56, 15, 57,
- 15, 58, 29, 0, 3, 11, 59, 11, 60, 30, 0, 2, 1, 1, 29, 0, 2, 11, 59, 11,
- 61, 30, 0, 2, 1, 1, 29, 0, 1, 11, 62, 11, 63, 30, 0, 2, 1, 1, 29, 0,
- 1, 11, 59, 11, 64, 11, 52, 11, 65, 11, 54, 11, 66, 30, 2, 2, 1, 1, 25, 48,
- 15, 68, 22, 2, 15, 69, 22, 2, 15, 68, 22, 1, 15, 70, 22, 2, 11, 62, 11, 71,
- 11, 45, 11, 72, 30, 1, 2, 1, 1, 29, 0, 1, 2, 1, 1, 29, 0, 1, 11, 62,
- 11, 73, 30, 0, 2, 1, 1, 15, 69, 22, 2, 15, 68, 22, 2, 15, 74, 18, 75, 22,
- 2, 11, 62, 11, 76, 11, 45, 15, 6, 30, 1, 2, 1, 1, 15, 70, 22, 2, 11, 62,
- 11, 77, 11, 45, 11, 78, 30, 1, 2, 1, 1, 29, 0, 2, 2, 1, 1, 29, 0, 1,
- 11, 62, 11, 79, 30, 0, 2, 1, 1, 29, 0, 2, 2, 1, 1, 25, 67, 15, 81, 22,
- 4, 15, 48, 29, 0, 1, 11, 62, 11, 82, 11, 83, 15, 67, 11, 84, 11, 72, 30, 2,
- 2, 1, 1, 25, 80, 15, 81, 22, 5, 15, 49, 22, 8, 15, 18, 22, 1, 11, 62, 11,
- 82, 30, 0, 2, 1, 1, 15, 86, 22, 1, 11, 13, 11, 66, 30, 0, 2, 1, 1, 15,
- 86, 22, 1, 11, 13, 11, 66, 30, 0, 2, 1, 1, 15, 50, 22, 1, 15, 49, 22, 3,
- 15, 18, 22, 1, 11, 62, 11, 87, 30, 0, 2, 1, 1, 15, 18, 22, 1, 11, 62, 11,
- 88, 30, 0, 2, 1, 1, 15, 18, 22, 1, 11, 62, 11, 89, 30, 0, 2, 1, 1, 29,
- 0, 3, 2, 1, 1, 29, 0, 1, 2, 1, 1, 15, 86, 22, 1, 11, 13, 11, 66, 30,
- 0, 2, 1, 1, 15, 28, 22, 3, 11, 62, 11, 90, 11, 45, 11, 72, 11, 13, 11, 91,
- 30, 2, 2, 1, 1, 29, 0, 6, 11, 52, 11, 92, 11, 59, 11, 64, 30, 1, 2, 1,
- 1, 29, 0, 1, 11, 93, 15, 94, 11, 95, 15, 94, 11, 96, 15, 94, 11, 62, 11, 97,
- 30, 3, 2, 1, 1, 25, 85, 15, 80, 20, 98, 2, 0, 1, 15, 99, 2, 0, 0, 15,
-100, 15, 80, 2, 0, 1, 15,100, 15, 85, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0,101, 2, 0, 0, 0, 8,114,101,113,117,105,114,101, 0, 4, 0, 0, 0, 4,
- 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0,
- 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 10,112,114,
-105,110,116,118, 97,114,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64, 99,111,
-110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 6, 0, 15, 2, 4,
- 0, 2, 2, 1, 15, 3, 11, 4, 2, 0, 1, 50, 34, 15, 3, 15, 5, 13, 0, 2,
- 1, 1, 11, 6, 42, 15, 5, 13, 1, 2, 1, 1, 42, 2, 0, 1, 15, 2, 13, 0,
- 2, 2, 1, 23, 1, 23, 0, 13, 0, 4, 0, 31, 54, 41, 15, 3, 11, 7, 2, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 2,110, 0, 2, 0, 0,
- 0, 2,118, 0, 2, 0, 0, 0, 8,110,101,120,116,118, 97,114, 0, 2, 0, 0,
- 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 20, 45, 45,112,114,105,110,116,
-118, 97,114,115, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,
-115,116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 18, 45,
- 45,112,114,105,110,116,118, 97,114,115, 32, 69,110,100, 45, 45, 0, 2, 0, 0,
- 0, 11,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 0, 0, 0, 17, 0, 0,
- 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 71,
- 7, 1, 15, 3, 13, 0, 4, 0, 2, 2, 2, 15, 4, 11, 5, 2, 0, 1, 50, 36,
- 15, 4, 15, 6, 13, 1, 2, 1, 1, 11, 7, 42, 15, 6, 13, 2, 2, 1, 1, 42,
- 2, 0, 1, 15, 3, 13, 0, 13, 1, 2, 2, 2, 23, 2, 23, 1, 13, 1, 4, 0,
- 31, 54, 43, 15, 4, 11, 8, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2,
- 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 2,118, 0,
- 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,112,114,105,110,116,
- 0, 2, 0, 0, 0, 21, 45, 45,112,114,105,110,116,116, 97, 98,108,101, 32, 83,
-116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103,
- 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 19, 45, 45,112,114,105,110,116,
-116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0, 2, 0, 0, 0, 19,112,114,105,
-110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111, 0, 4, 0, 0, 0,
- 27, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0,
- 0, 0,241, 5, 0, 15, 0, 15, 1, 11, 2, 42, 15, 3, 18, 4, 42, 2, 0, 1,
- 15, 5, 52, 17, 15, 0, 15, 5, 18, 1, 11, 2, 42, 15, 5, 18, 6, 42, 2, 0,
- 1, 15, 7, 48, 4, 15, 7, 18, 1, 52, 17, 15, 0, 15, 7, 18, 1, 11, 2, 42,
- 15, 7, 18, 6, 42, 2, 0, 1, 15, 0, 15, 3, 18, 1, 11, 2, 42, 15, 3, 18,
- 6, 42, 2, 0, 1, 15, 0, 11, 8, 2, 0, 1, 15, 0, 11, 9, 2, 0, 1, 15,
- 0, 11, 10, 15, 3, 18, 11, 11, 12, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, 13,
- 15, 3, 18, 11, 11, 14, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 11, 11, 16, 2,
- 1, 1, 13, 0, 52, 9, 15, 0, 11, 17, 13, 0, 2, 0, 2, 15, 0, 11, 18, 15,
- 3, 18, 11, 11, 19, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, 20, 15, 3, 18, 11,
- 11, 21, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 22, 52, 12, 15, 0, 11, 23, 15,
- 3, 18, 22, 42, 2, 0, 1, 15, 3, 18, 24, 52, 12, 15, 0, 11, 25, 15, 3, 18,
- 24, 42, 2, 0, 1, 15, 3, 18, 26, 52, 12, 15, 0, 11, 27, 15, 3, 18, 26, 42,
- 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 28, 2, 0, 0, 0, 6,112,114,105,
-110,116, 0, 2, 0, 0, 0, 9, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0,
- 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 15, 95, 76,
- 85, 65, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 3,105,109,
- 0, 2, 0, 0, 0, 11, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, 0,
- 0, 3, 99,100, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 9, 73, 85, 80, 32,
- 73,110,102,111, 0, 2, 0, 0, 0, 11, 32, 32, 83,121,115,116,101,109, 58, 32,
- 0, 2, 0, 0, 0, 10, 71,101,116, 71,108,111, 98, 97,108, 0, 2, 0, 0, 0,
- 7, 83, 89, 83, 84, 69, 77, 0, 2, 0, 0, 0, 19, 32, 32, 83,121,115,116,101,
-109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0, 0, 14, 83, 89, 83,
- 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, 4,109,111,116, 0,
- 2, 0, 0, 0, 13, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0,
- 0, 0, 18, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32,
- 0, 2, 0, 0, 0, 16, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122,101, 58,
- 32, 0, 2, 0, 0, 0, 11, 83, 67, 82, 69, 69, 78, 83, 73, 90, 69, 0, 2, 0,
- 0, 0, 17, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112,116,104, 58, 32, 0,
- 2, 0, 0, 0, 12, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 2, 0, 0,
- 0, 10, 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 2, 0, 0, 0, 18, 32, 32, 79,
-112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 2, 0, 0, 0, 12,
- 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 2, 0, 0, 0, 20, 32, 32, 79,
-112,101,110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58, 32, 0, 2, 0, 0,
- 0, 11, 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, 19, 32, 32,
- 79,112,101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0,
- 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 12,109,117,108, 67,
-111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108,116,
-105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2, 0,
- 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 5,115,105,122,101,
- 0, 2, 0, 0, 0, 8, 50, 48, 48,120, 49, 50, 48, 0, 2, 0, 0, 0, 5,102,
-111,110,116, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82,
- 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 9,112,111,115,108, 97, 98,101,108,
- 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,
-116,105,116,108,101, 0, 2, 0, 0, 0, 4, 48, 58, 48, 0, 2, 0, 0, 0, 4,
- 53, 48,120, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2,
- 0, 0, 0, 1, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76,
- 0, 2, 0, 0, 0, 8, 99, 97,114,101,116, 99, 98, 0, 4, 0, 0, 0, 53, 0,
- 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,
- 16, 7, 3, 15, 3, 11, 4, 13, 1, 11, 5, 42, 13, 2, 42, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 4,
-108,105,110, 0, 2, 0, 0, 0, 4, 99,111,108, 0, 2, 0, 0, 0, 9,112,111,
-115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0,
- 0, 0, 2, 58, 0, 2, 0, 0, 0, 11, 98,117,116, 69,120,101, 99,117,116,101,
- 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0,
- 6, 53, 48,120, 49, 53, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0,
- 0, 0, 8, 69,120,101, 99,117,116,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,
-111,110, 0, 2, 0, 0, 0, 28,100,111,115,116,114,105,110,103, 40,109,117,108,
- 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 41, 0, 2, 0, 0, 0,
- 17, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97,110,100,115, 0, 2, 0,
- 0, 0, 6, 67,108,101, 97,114, 0, 2, 0, 0, 0, 61,109,117,108, 67,111,109,
-109, 97,110,100,115, 46,118, 97,108,117,101, 32, 61, 32, 39, 39, 32, 32,102,105,
-108,101,108, 97, 98,101,108, 46,116,105,116,108,101, 32, 61, 32, 39, 39, 32, 32,
-108, 97,115,116,102,105,108,101, 32, 61, 32,110,105,108, 0, 2, 0, 0, 0, 12,
- 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 2, 0, 0, 0, 8, 76,111, 97,
-100, 46, 46, 46, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, 70,
-105,108,101, 0, 2, 0, 0, 0, 11, 83, 97,118,101, 32, 65,115, 46, 46, 46, 0,
- 2, 0, 0, 0, 12, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 2, 0, 0,
- 0, 5, 83, 97,118,101, 0, 4, 0, 0, 0, 63, 0, 0, 0, 14, 64, 99,111,110,
-115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 4, 1, 15, 0, 4, 0,
- 32, 52, 9, 15, 1, 20, 2, 2, 0, 1, 50, 48, 15, 4, 15, 0, 11, 5, 2, 1,
- 2, 25, 3, 15, 3, 4, 0, 31, 52, 20, 15, 6, 15, 3, 15, 7, 18, 8, 2, 0,
- 2, 15, 9, 15, 3, 2, 0, 1, 50, 10, 15, 10, 11, 11, 15, 12, 42, 2, 0, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 9,108, 97,115,116,102,105,
-108,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, 70,105,108,
-101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,110,
-111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101,
- 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0,
- 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0,
- 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 10, 99,108,111,115,101,102,105,
-108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67,
- 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 2, 0, 0,
- 0, 9,102,105,108,101,110, 97,109,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83,
- 97,118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,
-110, 0, 4, 0, 0, 0, 77, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51,
- 46,108,117, 97, 0, 0, 0, 0,136, 13, 1, 15, 1, 22, 5, 11, 2, 11, 3, 11,
- 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 15, 11, 30, 4, 2, 1, 1,
- 15, 12, 13, 1, 15, 13, 15, 13, 2, 0, 3, 13, 1, 18, 14, 13, 1, 18, 16, 25,
- 15, 15, 17, 11, 4, 15, 15, 26, 15, 18, 13, 1, 2, 0, 1, 13, 2, 11, 19, 31,
- 52, 62, 15, 15, 4, 0, 32, 52, 10, 15, 20, 11, 21, 15, 15, 42, 2, 0, 1, 15,
- 23, 15, 15, 11, 24, 2, 1, 2, 13, 3, 4, 0, 31, 52, 20, 15, 25, 13, 3, 15,
- 26, 18, 16, 2, 0, 2, 15, 27, 13, 3, 2, 0, 1, 50, 7, 15, 20, 11, 28, 2,
- 0, 1, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 2, 0, 0, 0, 8,102,105,
-108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101,100,108,
-103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,112,101, 0, 2, 0,
- 0, 0, 5, 83, 65, 86, 69, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2,
- 0, 0, 0, 10, 83, 97,118,101, 32, 70,105,108,101, 0, 2, 0, 0, 0, 7,102,
-105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, 97, 0, 2, 0, 0,
- 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, 0, 0, 10, 76,117,
- 97, 32,102,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,108,111,119,110,101,
-119, 0, 2, 0, 0, 0, 4,121,101,115, 0, 2, 0, 0, 0, 9, 73,117,112, 80,
-111,112,117,112, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 76, 69, 70, 84, 0, 2,
- 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, 9,108, 97,115,116,
-102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0,
- 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11, 73,117,112, 68,
-101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, 0, 2, 0, 0, 0, 6,
-101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97,
-118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 8,110,111,118,111, 97,114,
-113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101, 0, 2, 0, 0, 0,
- 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0, 2, 0, 0, 0, 12,
-109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 10, 99,108,111,
-115,101,102,105,108,101, 0, 2, 0, 0, 0, 17, 67, 97,110,110,111,116, 32, 83,
- 97,118,101, 32,102,105,108,101, 0, 4, 0, 0, 0, 98, 0, 0, 0, 14, 64, 99,
-111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,153, 13, 1, 15, 1,
- 22, 5, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10,
- 11, 11, 30, 4, 2, 1, 1, 13, 1, 20, 12, 15, 13, 15, 13, 2, 0, 3, 13, 1,
- 18, 14, 13, 1, 18, 16, 15, 17, 13, 1, 2, 0, 1, 13, 2, 11, 18, 32, 46, 5,
- 13, 2, 11, 19, 32, 52, 19, 13, 2, 11, 19, 32, 52, 10, 15, 20, 11, 21, 13, 3,
- 42, 2, 0, 1, 50, 62, 15, 23, 13, 3, 11, 24, 2, 1, 2, 13, 4, 4, 0, 32,
- 52, 12, 15, 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 32, 15, 25, 11, 16, 15, 26,
- 13, 4, 11, 27, 2, 1, 2, 26, 15, 28, 13, 4, 2, 0, 1, 13, 3, 25, 29, 15,
- 30, 11, 4, 15, 29, 26, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0,
- 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,
-108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,112,
-101, 0, 2, 0, 0, 0, 5, 79, 80, 69, 78, 0, 2, 0, 0, 0, 6,116,105,116,
-108,101, 0, 2, 0, 0, 0, 10, 76,111, 97,100, 32, 70,105,108,101, 0, 2, 0,
- 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, 97,
- 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, 0,
- 0, 10, 76,117, 97, 32, 70,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,108,
-111,119,110,101,119, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 6,112,
-111,112,117,112, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82,
- 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, 8,110,101,
-119,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0,
- 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49,
- 0, 2, 0, 0, 0, 2, 49, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2,
- 0, 0, 0, 18, 67, 97,110,110,111,116, 32,108,111, 97,100, 32,102,105,108,101,
- 32, 0, 2, 0, 0, 0, 3,102,112, 0, 2, 0, 0, 0, 9,111,112,101,110,102,
-105,108,101, 0, 2, 0, 0, 0, 2,114, 0, 2, 0, 0, 0, 12,109,117,108, 67,
-111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 5,114,101, 97,100, 0, 2, 0,
- 0, 0, 3, 42, 97, 0, 2, 0, 0, 0, 10, 99,108,111,115,101,102,105,108,101,
- 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 10,
-102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11,118, 98,120, 67,111,
-110,115,111,108,101, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0, 2,
- 0, 0, 0, 9,105,117,112,102,114, 97,109,101, 0, 2, 0, 0, 0, 8,105,117,
-112,104, 98,111,120, 0, 2, 0, 0, 0, 7,109, 97,114,103,105,110, 0, 2, 0,
- 0, 0, 4, 48,120, 48, 0, 2, 0, 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0,
- 3, 49, 48, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2,
- 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0,
- 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,
-109,101,110,116, 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0,
- 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0,
- 0, 0, 9, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 8, 65, 67, 69,
- 78, 84, 69, 82, 0, 2, 0, 0, 0, 4, 53,120, 53, 0, 2, 0, 0, 0, 2, 53,
- 0, 2, 0, 0, 0, 8,109,110,117, 77, 97,105,110, 0, 2, 0, 0, 0, 8,105,
-117,112,109,101,110,117, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,
-110,117, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 2, 0, 0, 0,
- 5, 69,120,105,116, 0, 2, 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85,
- 80, 95, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 5, 70,105,108,101, 0, 2, 0,
- 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2, 0, 0,
- 0, 22, 80,114,105,110,116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111,
- 46, 46, 46, 0, 2, 0, 0, 0, 9, 65, 98,111,117,116, 46, 46, 46, 0, 2, 0,
- 0, 0, 39,100,108,103, 65, 98,111,117,116, 58,112,111,112,117,112, 40, 73, 85,
- 80, 95, 67, 69, 78, 84, 69, 82, 44, 32, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82,
- 41, 0, 2, 0, 0, 0, 5, 72,101,108,112, 0, 2, 0, 0, 0, 8,100,108,103,
- 77, 97,105,110, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0,
- 2, 0, 0, 0, 29, 67,111,109,112,108,101,116,101, 32, 73,117,112, 76,117, 97,
- 51, 32, 73,110,116,101,114,112,114,101,116,101,114, 0, 2, 0, 0, 0, 5,109,
-101,110,117, 0, 2, 0, 0, 0, 9, 99,108,111,115,101, 95, 99, 98, 0, 2, 0,
- 0, 0, 9,100,108,103, 65, 98,111,117,116, 0, 2, 0, 0, 0, 8,105,117,112,
-102,105,108,108, 0, 2, 0, 0, 0, 16, 84,101, 99,103,114, 97,102, 47, 80, 85,
- 67, 45, 82,105,111, 0, 2, 0, 0, 0, 18, 77, 97,114,107, 47, 79,118,237,100,
-105,111, 47, 83, 99,117,114,105, 0, 2, 0, 0, 0, 23,105,117,112, 64,116,101,
- 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,114, 0, 2, 0, 0,
- 0, 3, 79, 75, 0, 2, 0, 0, 0, 6, 53, 48, 88, 50, 48, 0, 2, 0, 0, 0,
- 6, 49, 48,120, 49, 48, 0, 2, 0, 0, 0, 7,109, 97,120, 98,111,120, 0, 2,
- 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, 2, 0, 0, 0, 7,109,105,110, 98,
-111,120, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 6,
- 65, 98,111,117,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 2, 0, 0, 0,
- 12, 73,117,112, 77, 97,105,110, 76,111,111,112, 0, 2, 0, 0, 0, 11, 73,117,
-112, 68,101,115,116,114,111,121, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/console3_be64.lo");
-}
diff --git a/iup/srcconsole/loh/console3_le64.loh b/iup/srcconsole/loh/console3_le64.loh
deleted file mode 100755
index 7d64917..0000000
--- a/iup/srcconsole/loh/console3_le64.loh
+++ /dev/null
@@ -1,251 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/console3_le64.lo");
-*/
-/* ../obj/iuplua3/console3_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 99,111,110,115,111,
-108,101, 51, 46,108,117, 97, 0, 0, 0, 2,166, 17, 0, 11, 1, 25, 0, 11, 3,
- 25, 2, 11, 5, 25, 4, 4, 0, 25, 6, 15, 8, 22, 3, 11, 9, 15, 10, 11, 11,
- 11, 12, 11, 13, 11, 14, 30, 2, 2, 1, 1, 25, 7, 15, 16, 22, 2, 11, 17, 11,
- 18, 11, 11, 11, 19, 30, 1, 2, 1, 1, 25, 15, 15, 16, 22, 3, 11, 17, 11, 21,
- 11, 11, 11, 19, 11, 9, 11, 22, 30, 2, 2, 1, 1, 25, 20, 15, 7, 11, 23, 11,
- 24, 26, 15, 26, 22, 3, 11, 11, 11, 27, 11, 28, 11, 29, 11, 30, 11, 31, 30, 2,
- 2, 1, 1, 25, 25, 15, 26, 22, 3, 11, 11, 11, 27, 11, 28, 11, 33, 11, 30, 11,
- 34, 30, 2, 2, 1, 1, 25, 32, 15, 26, 22, 2, 11, 11, 11, 27, 11, 28, 11, 36,
- 30, 1, 2, 1, 1, 25, 35, 15, 26, 22, 2, 11, 11, 11, 27, 11, 28, 11, 38, 30,
- 1, 2, 1, 1, 25, 37, 15, 26, 22, 2, 11, 11, 11, 27, 11, 28, 11, 40, 30, 1,
- 2, 1, 1, 25, 39, 15, 39, 11, 30, 11, 41, 26, 15, 42, 11, 43, 11, 44, 26, 15,
- 35, 11, 43, 11, 45, 26, 15, 47, 22, 4, 15, 48, 22, 2, 15, 49, 22, 3, 15, 47,
- 22, 7, 15, 35, 15, 39, 15, 42, 15, 32, 15, 25, 29, 0, 5, 11, 50, 11, 51, 11,
- 52, 11, 53, 30, 1, 2, 1, 1, 15, 47, 22, 4, 15, 54, 15, 55, 15, 56, 29, 0,
- 3, 11, 57, 11, 58, 30, 0, 2, 1, 1, 29, 0, 2, 11, 57, 11, 59, 30, 0, 2,
- 1, 1, 29, 0, 1, 11, 60, 11, 61, 30, 0, 2, 1, 1, 29, 0, 1, 11, 57, 11,
- 62, 11, 50, 11, 63, 11, 52, 11, 64, 30, 2, 2, 1, 1, 25, 46, 15, 66, 22, 2,
- 15, 67, 22, 2, 15, 66, 22, 1, 15, 68, 22, 2, 11, 60, 11, 69, 11, 43, 11, 70,
- 30, 1, 2, 1, 1, 29, 0, 1, 2, 1, 1, 29, 0, 1, 11, 60, 11, 71, 30, 0,
- 2, 1, 1, 15, 67, 22, 2, 15, 66, 22, 2, 15, 72, 18, 73, 22, 2, 11, 60, 11,
- 74, 11, 43, 15, 4, 30, 1, 2, 1, 1, 15, 68, 22, 2, 11, 60, 11, 75, 11, 43,
- 11, 76, 30, 1, 2, 1, 1, 29, 0, 2, 2, 1, 1, 29, 0, 1, 11, 60, 11, 77,
- 30, 0, 2, 1, 1, 29, 0, 2, 2, 1, 1, 25, 65, 15, 79, 22, 4, 15, 46, 29,
- 0, 1, 11, 60, 11, 80, 11, 81, 15, 65, 11, 82, 11, 70, 30, 2, 2, 1, 1, 25,
- 78, 15, 79, 22, 5, 15, 47, 22, 8, 15, 16, 22, 1, 11, 60, 11, 80, 30, 0, 2,
- 1, 1, 15, 84, 22, 1, 11, 11, 11, 64, 30, 0, 2, 1, 1, 15, 84, 22, 1, 11,
- 11, 11, 64, 30, 0, 2, 1, 1, 15, 48, 22, 1, 15, 47, 22, 3, 15, 16, 22, 1,
- 11, 60, 11, 85, 30, 0, 2, 1, 1, 15, 16, 22, 1, 11, 60, 11, 86, 30, 0, 2,
- 1, 1, 15, 16, 22, 1, 11, 60, 11, 87, 30, 0, 2, 1, 1, 29, 0, 3, 2, 1,
- 1, 29, 0, 1, 2, 1, 1, 15, 84, 22, 1, 11, 11, 11, 64, 30, 0, 2, 1, 1,
- 15, 26, 22, 3, 11, 60, 11, 88, 11, 43, 11, 70, 11, 11, 11, 89, 30, 2, 2, 1,
- 1, 29, 0, 6, 11, 50, 11, 90, 11, 57, 11, 62, 30, 1, 2, 1, 1, 29, 0, 1,
- 11, 91, 15, 92, 11, 93, 15, 92, 11, 94, 15, 92, 11, 60, 11, 95, 30, 3, 2, 1,
- 1, 25, 83, 15, 78, 20, 96, 2, 0, 1, 15, 97, 2, 0, 0, 15, 98, 15, 78, 2,
- 0, 1, 15, 98, 15, 83, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 99, 2, 0,
- 0, 0, 10,112,114,105,110,116,118, 97,114,115, 0, 4, 0, 0, 0, 3, 0, 0,
- 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67,
- 6, 0, 15, 2, 4, 0, 2, 2, 1, 15, 3, 11, 4, 2, 0, 1, 50, 34, 15, 3,
- 15, 5, 13, 0, 2, 1, 1, 11, 6, 42, 15, 5, 13, 1, 2, 1, 1, 42, 2, 0,
- 1, 15, 2, 13, 0, 2, 2, 1, 23, 1, 23, 0, 13, 0, 4, 0, 31, 54, 41, 15,
- 3, 11, 7, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 2,
-110, 0, 2, 0, 0, 0, 2,118, 0, 2, 0, 0, 0, 8,110,101,120,116,118, 97,
-114, 0, 2, 0, 0, 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 20, 45, 45,
-112,114,105,110,116,118, 97,114,115, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0,
- 0, 0, 9,116,111,115,116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2,
- 0, 0, 0, 18, 45, 45,112,114,105,110,116,118, 97,114,115, 32, 69,110,100, 45,
- 45, 0, 2, 0, 0, 0, 11,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 0,
- 0, 0, 13, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97,
- 0, 0, 0, 0, 71, 7, 1, 15, 3, 13, 0, 4, 0, 2, 2, 2, 15, 4, 11, 5,
- 2, 0, 1, 50, 36, 15, 4, 15, 6, 13, 1, 2, 1, 1, 11, 7, 42, 15, 6, 13,
- 2, 2, 1, 1, 42, 2, 0, 1, 15, 3, 13, 0, 13, 1, 2, 2, 2, 23, 2, 23,
- 1, 13, 1, 4, 0, 31, 54, 43, 15, 4, 11, 8, 2, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 2,110, 0, 2, 0,
- 0, 0, 2,118, 0, 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,
-112,114,105,110,116, 0, 2, 0, 0, 0, 21, 45, 45,112,114,105,110,116,116, 97,
- 98,108,101, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,115,
-116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 19, 45, 45,
-112,114,105,110,116,116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0, 2, 0, 0,
- 0, 19,112,114,105,110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111,
- 0, 4, 0, 0, 0, 23, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,
-108,117, 97, 0, 0, 0, 0,241, 5, 0, 15, 0, 15, 1, 11, 2, 42, 15, 3, 18,
- 4, 42, 2, 0, 1, 15, 5, 52, 17, 15, 0, 15, 5, 18, 1, 11, 2, 42, 15, 5,
- 18, 6, 42, 2, 0, 1, 15, 7, 48, 4, 15, 7, 18, 1, 52, 17, 15, 0, 15, 7,
- 18, 1, 11, 2, 42, 15, 7, 18, 6, 42, 2, 0, 1, 15, 0, 15, 3, 18, 1, 11,
- 2, 42, 15, 3, 18, 6, 42, 2, 0, 1, 15, 0, 11, 8, 2, 0, 1, 15, 0, 11,
- 9, 2, 0, 1, 15, 0, 11, 10, 15, 3, 18, 11, 11, 12, 2, 1, 1, 42, 2, 0,
- 1, 15, 0, 11, 13, 15, 3, 18, 11, 11, 14, 2, 1, 1, 42, 2, 0, 1, 15, 3,
- 18, 11, 11, 16, 2, 1, 1, 13, 0, 52, 9, 15, 0, 11, 17, 13, 0, 2, 0, 2,
- 15, 0, 11, 18, 15, 3, 18, 11, 11, 19, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11,
- 20, 15, 3, 18, 11, 11, 21, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 22, 52, 12,
- 15, 0, 11, 23, 15, 3, 18, 22, 42, 2, 0, 1, 15, 3, 18, 24, 52, 12, 15, 0,
- 11, 25, 15, 3, 18, 24, 42, 2, 0, 1, 15, 3, 18, 26, 52, 12, 15, 0, 11, 27,
- 15, 3, 18, 26, 42, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 28, 2, 0, 0,
- 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 9, 95, 86, 69, 82, 83, 73, 79,
- 78, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 15, 95, 76, 85, 65, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0,
- 0, 0, 3,105,109, 0, 2, 0, 0, 0, 11, 95, 67, 79, 80, 89, 82, 73, 71, 72,
- 84, 0, 2, 0, 0, 0, 3, 99,100, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 32, 73,110,102,111, 0, 2, 0, 0, 0, 11, 32, 32, 83,121,115,
-116,101,109, 58, 32, 0, 2, 0, 0, 0, 10, 71,101,116, 71,108,111, 98, 97,108,
- 0, 2, 0, 0, 0, 7, 83, 89, 83, 84, 69, 77, 0, 2, 0, 0, 0, 19, 32, 32,
- 83,121,115,116,101,109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0,
- 0, 14, 83, 89, 83, 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0,
- 4,109,111,116, 0, 2, 0, 0, 0, 13, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73,
- 79, 78, 0, 2, 0, 0, 0, 18, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,
-105,111,110, 58, 32, 0, 2, 0, 0, 0, 16, 32, 32, 83, 99,114,101,101,110, 32,
- 83,105,122,101, 58, 32, 0, 2, 0, 0, 0, 11, 83, 67, 82, 69, 69, 78, 83, 73,
- 90, 69, 0, 2, 0, 0, 0, 17, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112,
-116,104, 58, 32, 0, 2, 0, 0, 0, 12, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84,
- 72, 0, 2, 0, 0, 0, 10, 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 2, 0, 0,
- 0, 18, 32, 32, 79,112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0,
- 2, 0, 0, 0, 12, 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 2, 0, 0,
- 0, 20, 32, 32, 79,112,101,110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58,
- 32, 0, 2, 0, 0, 0, 11, 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0,
- 0, 0, 19, 32, 32, 79,112,101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58,
- 32, 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0,
- 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 13,105,117,
-112,109,117,108,116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,
-110,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0,
- 5,115,105,122,101, 0, 2, 0, 0, 0, 8, 50, 48, 48,120, 49, 50, 48, 0, 2,
- 0, 0, 0, 5,102,111,110,116, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69,
- 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 9,112,111,115,
-108, 97, 98,101,108, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0,
- 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, 4, 48, 58, 48, 0,
- 2, 0, 0, 0, 4, 53, 48,120, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97,
- 98,101,108, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90,
- 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 8, 99, 97,114,101,116, 99, 98, 0, 4,
- 0, 0, 0, 49, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117,
- 97, 0, 0, 0, 0, 16, 7, 3, 15, 3, 11, 4, 13, 1, 11, 5, 42, 13, 2, 42,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 4,108,105,110, 0, 2, 0, 0, 0, 4, 99,111,108, 0, 2, 0,
- 0, 0, 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,116,105,116,
-108,101, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 11, 98,117,116, 69,120,
-101, 99,117,116,101, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110,
- 0, 2, 0, 0, 0, 6, 53, 48,120, 49, 53, 0, 2, 0, 0, 0, 6,116,105,116,
-108,101, 0, 2, 0, 0, 0, 8, 69,120,101, 99,117,116,101, 0, 2, 0, 0, 0,
- 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 28,100,111,115,116,114,105,110,
-103, 40,109,117,108, 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 41,
- 0, 2, 0, 0, 0, 17, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97,110,
-100,115, 0, 2, 0, 0, 0, 6, 67,108,101, 97,114, 0, 2, 0, 0, 0, 61,109,
-117,108, 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 32, 61, 32, 39,
- 39, 32, 32,102,105,108,101,108, 97, 98,101,108, 46,116,105,116,108,101, 32, 61,
- 32, 39, 39, 32, 32,108, 97,115,116,102,105,108,101, 32, 61, 32,110,105,108, 0,
- 2, 0, 0, 0, 12, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 2, 0, 0,
- 0, 8, 76,111, 97,100, 46, 46, 46, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,
-118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 11, 83, 97,118,101, 32, 65,
-115, 46, 46, 46, 0, 2, 0, 0, 0, 12, 98,117,116, 83, 97,118,101, 70,105,108,
-101, 0, 2, 0, 0, 0, 5, 83, 97,118,101, 0, 4, 0, 0, 0, 59, 0, 0, 0,
- 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 4,
- 1, 15, 0, 4, 0, 32, 52, 9, 15, 1, 20, 2, 2, 0, 1, 50, 48, 15, 4, 15,
- 0, 11, 5, 2, 1, 2, 25, 3, 15, 3, 4, 0, 31, 52, 20, 15, 6, 15, 3, 15,
- 7, 18, 8, 2, 0, 2, 15, 9, 15, 3, 2, 0, 1, 50, 10, 15, 10, 11, 11, 15,
- 12, 42, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 9,108,
- 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101,
- 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2,
- 0, 0, 0, 8,110,111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101,
-110,102,105,108,101, 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119,
-114,105,116,101, 0, 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,
-115, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 10, 99,108,
-111,115,101,102,105,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2,
- 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,101,
- 32, 0, 2, 0, 0, 0, 9,102,105,108,101,110, 97,109,101, 0, 2, 0, 0, 0,
- 14, 98,117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7,
- 97, 99,116,105,111,110, 0, 4, 0, 0, 0, 73, 0, 0, 0, 14, 64, 99,111,110,
-115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,136, 13, 1, 15, 1, 22, 5,
- 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 15, 11,
- 30, 4, 2, 1, 1, 15, 12, 13, 1, 15, 13, 15, 13, 2, 0, 3, 13, 1, 18, 14,
- 13, 1, 18, 16, 25, 15, 15, 17, 11, 4, 15, 15, 26, 15, 18, 13, 1, 2, 0, 1,
- 13, 2, 11, 19, 31, 52, 62, 15, 15, 4, 0, 32, 52, 10, 15, 20, 11, 21, 15, 15,
- 42, 2, 0, 1, 15, 23, 15, 15, 11, 24, 2, 1, 2, 13, 3, 4, 0, 31, 52, 20,
- 15, 25, 13, 3, 15, 26, 18, 16, 2, 0, 2, 15, 27, 13, 3, 2, 0, 1, 50, 7,
- 15, 20, 11, 28, 2, 0, 1, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 2, 0,
- 0, 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,
-105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,
-112,101, 0, 2, 0, 0, 0, 5, 83, 65, 86, 69, 0, 2, 0, 0, 0, 6,116,105,
-116,108,101, 0, 2, 0, 0, 0, 10, 83, 97,118,101, 32, 70,105,108,101, 0, 2,
- 0, 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117,
- 97, 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0,
- 0, 0, 10, 76,117, 97, 32,102,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,
-108,111,119,110,101,119, 0, 2, 0, 0, 0, 4,121,101,115, 0, 2, 0, 0, 0,
- 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 76,
- 69, 70, 84, 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0,
- 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101,
- 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0,
- 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, 0,
- 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110,
-111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 8,110,
-111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101,
- 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0,
- 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0,
- 0, 10, 99,108,111,115,101,102,105,108,101, 0, 2, 0, 0, 0, 17, 67, 97,110,
-110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 0, 4, 0, 0, 0, 94, 0,
- 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,
-153, 13, 1, 15, 1, 22, 5, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11,
- 8, 11, 9, 11, 10, 11, 11, 30, 4, 2, 1, 1, 13, 1, 20, 12, 15, 13, 15, 13,
- 2, 0, 3, 13, 1, 18, 14, 13, 1, 18, 16, 15, 17, 13, 1, 2, 0, 1, 13, 2,
- 11, 18, 32, 46, 5, 13, 2, 11, 19, 32, 52, 19, 13, 2, 11, 19, 32, 52, 10, 15,
- 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 62, 15, 23, 13, 3, 11, 24, 2, 1, 2,
- 13, 4, 4, 0, 32, 52, 12, 15, 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 32, 15,
- 25, 11, 16, 15, 26, 13, 4, 11, 27, 2, 1, 2, 26, 15, 28, 13, 4, 2, 0, 1,
- 13, 3, 25, 29, 15, 30, 11, 4, 15, 29, 26, 5, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 31, 2, 0, 0, 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,
-105,117,112,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108,
-111,103,116,121,112,101, 0, 2, 0, 0, 0, 5, 79, 80, 69, 78, 0, 2, 0, 0,
- 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, 10, 76,111, 97,100, 32, 70,105,
-108,101, 0, 2, 0, 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6,
- 42, 46,108,117, 97, 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,
-111, 0, 2, 0, 0, 0, 10, 76,117, 97, 32, 70,105,108,101,115, 0, 2, 0, 0,
- 0, 9, 97,108,108,111,119,110,101,119, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2,
- 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67,
- 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0,
- 0, 0, 8,110,101,119,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,
-101, 0, 2, 0, 0, 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0,
- 0, 0, 3, 45, 49, 0, 2, 0, 0, 0, 2, 49, 0, 2, 0, 0, 0, 6,101,114,
-114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110,111,116, 32,108,111, 97,100,
- 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 3,102,112, 0, 2, 0, 0, 0, 9,
-111,112,101,110,102,105,108,101, 0, 2, 0, 0, 0, 2,114, 0, 2, 0, 0, 0,
- 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 5,114,101,
- 97,100, 0, 2, 0, 0, 0, 3, 42, 97, 0, 2, 0, 0, 0, 10, 99,108,111,115,
-101,102,105,108,101, 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0,
- 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11,
-118, 98,120, 67,111,110,115,111,108,101, 0, 2, 0, 0, 0, 8,105,117,112,118,
- 98,111,120, 0, 2, 0, 0, 0, 9,105,117,112,102,114, 97,109,101, 0, 2, 0,
- 0, 0, 8,105,117,112,104, 98,111,120, 0, 2, 0, 0, 0, 7,109, 97,114,103,
-105,110, 0, 2, 0, 0, 0, 4, 48,120, 48, 0, 2, 0, 0, 0, 4,103, 97,112,
- 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97,
- 98,101,108, 0, 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115,
- 0, 2, 0, 0, 0, 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 10,
- 97,108,105,103,110,109,101,110,116, 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72,
- 84, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 6,116,105,116,
-108,101, 0, 2, 0, 0, 0, 9, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0,
- 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 4, 53,120, 53, 0, 2,
- 0, 0, 0, 2, 53, 0, 2, 0, 0, 0, 8,109,110,117, 77, 97,105,110, 0, 2,
- 0, 0, 0, 8,105,117,112,109,101,110,117, 0, 2, 0, 0, 0, 11,105,117,112,
-115,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109,
- 0, 2, 0, 0, 0, 5, 69,120,105,116, 0, 2, 0, 0, 0, 17,114,101,116,117,
-114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 5, 70,105,
-108,101, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,105,116,101,
-109, 0, 2, 0, 0, 0, 22, 80,114,105,110,116, 32, 86,101,114,115,105,111,110,
- 32, 73,110,102,111, 46, 46, 46, 0, 2, 0, 0, 0, 9, 65, 98,111,117,116, 46,
- 46, 46, 0, 2, 0, 0, 0, 39,100,108,103, 65, 98,111,117,116, 58,112,111,112,
-117,112, 40, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82, 44, 32, 73, 85, 80, 95, 67,
- 69, 78, 84, 69, 82, 41, 0, 2, 0, 0, 0, 5, 72,101,108,112, 0, 2, 0, 0,
- 0, 8,100,108,103, 77, 97,105,110, 0, 2, 0, 0, 0, 10,105,117,112,100,105,
- 97,108,111,103, 0, 2, 0, 0, 0, 29, 67,111,109,112,108,101,116,101, 32, 73,
-117,112, 76,117, 97, 51, 32, 73,110,116,101,114,112,114,101,116,101,114, 0, 2,
- 0, 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 9, 99,108,111,115,101, 95,
- 99, 98, 0, 2, 0, 0, 0, 9,100,108,103, 65, 98,111,117,116, 0, 2, 0, 0,
- 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0, 0, 16, 84,101, 99,103,114,
- 97,102, 47, 80, 85, 67, 45, 82,105,111, 0, 2, 0, 0, 0, 18, 77, 97,114,107,
- 47, 79,118,237,100,105,111, 47, 83, 99,117,114,105, 0, 2, 0, 0, 0, 23,105,
-117,112, 64,116,101, 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,
-114, 0, 2, 0, 0, 0, 3, 79, 75, 0, 2, 0, 0, 0, 6, 53, 48, 88, 50, 48,
- 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0, 0, 0, 7,109, 97,120,
- 98,111,120, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, 2, 0, 0, 0,
- 7,109,105,110, 98,111,120, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0,
- 2, 0, 0, 0, 6, 65, 98,111,117,116, 0, 2, 0, 0, 0, 5,115,104,111,119,
- 0, 2, 0, 0, 0, 12, 73,117,112, 77, 97,105,110, 76,111,111,112, 0, 2, 0,
- 0, 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/console3_le64.lo");
-}
diff --git a/iup/srcconsole/loh/console3_le64w.loh b/iup/srcconsole/loh/console3_le64w.loh
deleted file mode 100755
index 57e9b6d..0000000
--- a/iup/srcconsole/loh/console3_le64w.loh
+++ /dev/null
@@ -1,251 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/console3_le64w.lo");
-*/
-/* ../obj/iuplua3/console3_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 99,111,110,115,111,
-108,101, 51, 46,108,117, 97, 0, 0, 0, 2,166, 17, 0, 11, 1, 25, 0, 11, 3,
- 25, 2, 11, 5, 25, 4, 4, 0, 25, 6, 15, 8, 22, 3, 11, 9, 15, 10, 11, 11,
- 11, 12, 11, 13, 11, 14, 30, 2, 2, 1, 1, 25, 7, 15, 16, 22, 2, 11, 17, 11,
- 18, 11, 11, 11, 19, 30, 1, 2, 1, 1, 25, 15, 15, 16, 22, 3, 11, 17, 11, 21,
- 11, 11, 11, 19, 11, 9, 11, 22, 30, 2, 2, 1, 1, 25, 20, 15, 7, 11, 23, 11,
- 24, 26, 15, 26, 22, 3, 11, 11, 11, 27, 11, 28, 11, 29, 11, 30, 11, 31, 30, 2,
- 2, 1, 1, 25, 25, 15, 26, 22, 3, 11, 11, 11, 27, 11, 28, 11, 33, 11, 30, 11,
- 34, 30, 2, 2, 1, 1, 25, 32, 15, 26, 22, 2, 11, 11, 11, 27, 11, 28, 11, 36,
- 30, 1, 2, 1, 1, 25, 35, 15, 26, 22, 2, 11, 11, 11, 27, 11, 28, 11, 38, 30,
- 1, 2, 1, 1, 25, 37, 15, 26, 22, 2, 11, 11, 11, 27, 11, 28, 11, 40, 30, 1,
- 2, 1, 1, 25, 39, 15, 39, 11, 30, 11, 41, 26, 15, 42, 11, 43, 11, 44, 26, 15,
- 35, 11, 43, 11, 45, 26, 15, 47, 22, 4, 15, 48, 22, 2, 15, 49, 22, 3, 15, 47,
- 22, 7, 15, 35, 15, 39, 15, 42, 15, 32, 15, 25, 29, 0, 5, 11, 50, 11, 51, 11,
- 52, 11, 53, 30, 1, 2, 1, 1, 15, 47, 22, 4, 15, 54, 15, 55, 15, 56, 29, 0,
- 3, 11, 57, 11, 58, 30, 0, 2, 1, 1, 29, 0, 2, 11, 57, 11, 59, 30, 0, 2,
- 1, 1, 29, 0, 1, 11, 60, 11, 61, 30, 0, 2, 1, 1, 29, 0, 1, 11, 57, 11,
- 62, 11, 50, 11, 63, 11, 52, 11, 64, 30, 2, 2, 1, 1, 25, 46, 15, 66, 22, 2,
- 15, 67, 22, 2, 15, 66, 22, 1, 15, 68, 22, 2, 11, 60, 11, 69, 11, 43, 11, 70,
- 30, 1, 2, 1, 1, 29, 0, 1, 2, 1, 1, 29, 0, 1, 11, 60, 11, 71, 30, 0,
- 2, 1, 1, 15, 67, 22, 2, 15, 66, 22, 2, 15, 72, 18, 73, 22, 2, 11, 60, 11,
- 74, 11, 43, 15, 4, 30, 1, 2, 1, 1, 15, 68, 22, 2, 11, 60, 11, 75, 11, 43,
- 11, 76, 30, 1, 2, 1, 1, 29, 0, 2, 2, 1, 1, 29, 0, 1, 11, 60, 11, 77,
- 30, 0, 2, 1, 1, 29, 0, 2, 2, 1, 1, 25, 65, 15, 79, 22, 4, 15, 46, 29,
- 0, 1, 11, 60, 11, 80, 11, 81, 15, 65, 11, 82, 11, 70, 30, 2, 2, 1, 1, 25,
- 78, 15, 79, 22, 5, 15, 47, 22, 8, 15, 16, 22, 1, 11, 60, 11, 80, 30, 0, 2,
- 1, 1, 15, 84, 22, 1, 11, 11, 11, 64, 30, 0, 2, 1, 1, 15, 84, 22, 1, 11,
- 11, 11, 64, 30, 0, 2, 1, 1, 15, 48, 22, 1, 15, 47, 22, 3, 15, 16, 22, 1,
- 11, 60, 11, 85, 30, 0, 2, 1, 1, 15, 16, 22, 1, 11, 60, 11, 86, 30, 0, 2,
- 1, 1, 15, 16, 22, 1, 11, 60, 11, 87, 30, 0, 2, 1, 1, 29, 0, 3, 2, 1,
- 1, 29, 0, 1, 2, 1, 1, 15, 84, 22, 1, 11, 11, 11, 64, 30, 0, 2, 1, 1,
- 15, 26, 22, 3, 11, 60, 11, 88, 11, 43, 11, 70, 11, 11, 11, 89, 30, 2, 2, 1,
- 1, 29, 0, 6, 11, 50, 11, 90, 11, 57, 11, 62, 30, 1, 2, 1, 1, 29, 0, 1,
- 11, 91, 15, 92, 11, 93, 15, 92, 11, 94, 15, 92, 11, 60, 11, 95, 30, 3, 2, 1,
- 1, 25, 83, 15, 78, 20, 96, 2, 0, 1, 15, 97, 2, 0, 0, 15, 98, 15, 78, 2,
- 0, 1, 15, 98, 15, 83, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 99, 2, 0,
- 0, 0, 10,112,114,105,110,116,118, 97,114,115, 0, 4, 0, 0, 0, 3, 0, 0,
- 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67,
- 6, 0, 15, 2, 4, 0, 2, 2, 1, 15, 3, 11, 4, 2, 0, 1, 50, 34, 15, 3,
- 15, 5, 13, 0, 2, 1, 1, 11, 6, 42, 15, 5, 13, 1, 2, 1, 1, 42, 2, 0,
- 1, 15, 2, 13, 0, 2, 2, 1, 23, 1, 23, 0, 13, 0, 4, 0, 31, 54, 41, 15,
- 3, 11, 7, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 2,
-110, 0, 2, 0, 0, 0, 2,118, 0, 2, 0, 0, 0, 8,110,101,120,116,118, 97,
-114, 0, 2, 0, 0, 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 20, 45, 45,
-112,114,105,110,116,118, 97,114,115, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0,
- 0, 0, 9,116,111,115,116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2,
- 0, 0, 0, 18, 45, 45,112,114,105,110,116,118, 97,114,115, 32, 69,110,100, 45,
- 45, 0, 2, 0, 0, 0, 11,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 0,
- 0, 0, 13, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97,
- 0, 0, 0, 0, 71, 7, 1, 15, 3, 13, 0, 4, 0, 2, 2, 2, 15, 4, 11, 5,
- 2, 0, 1, 50, 36, 15, 4, 15, 6, 13, 1, 2, 1, 1, 11, 7, 42, 15, 6, 13,
- 2, 2, 1, 1, 42, 2, 0, 1, 15, 3, 13, 0, 13, 1, 2, 2, 2, 23, 2, 23,
- 1, 13, 1, 4, 0, 31, 54, 43, 15, 4, 11, 8, 2, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 2,110, 0, 2, 0,
- 0, 0, 2,118, 0, 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,
-112,114,105,110,116, 0, 2, 0, 0, 0, 21, 45, 45,112,114,105,110,116,116, 97,
- 98,108,101, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,115,
-116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 19, 45, 45,
-112,114,105,110,116,116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0, 2, 0, 0,
- 0, 19,112,114,105,110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111,
- 0, 4, 0, 0, 0, 23, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,
-108,117, 97, 0, 0, 0, 0,241, 5, 0, 15, 0, 15, 1, 11, 2, 42, 15, 3, 18,
- 4, 42, 2, 0, 1, 15, 5, 52, 17, 15, 0, 15, 5, 18, 1, 11, 2, 42, 15, 5,
- 18, 6, 42, 2, 0, 1, 15, 7, 48, 4, 15, 7, 18, 1, 52, 17, 15, 0, 15, 7,
- 18, 1, 11, 2, 42, 15, 7, 18, 6, 42, 2, 0, 1, 15, 0, 15, 3, 18, 1, 11,
- 2, 42, 15, 3, 18, 6, 42, 2, 0, 1, 15, 0, 11, 8, 2, 0, 1, 15, 0, 11,
- 9, 2, 0, 1, 15, 0, 11, 10, 15, 3, 18, 11, 11, 12, 2, 1, 1, 42, 2, 0,
- 1, 15, 0, 11, 13, 15, 3, 18, 11, 11, 14, 2, 1, 1, 42, 2, 0, 1, 15, 3,
- 18, 11, 11, 16, 2, 1, 1, 13, 0, 52, 9, 15, 0, 11, 17, 13, 0, 2, 0, 2,
- 15, 0, 11, 18, 15, 3, 18, 11, 11, 19, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11,
- 20, 15, 3, 18, 11, 11, 21, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 22, 52, 12,
- 15, 0, 11, 23, 15, 3, 18, 22, 42, 2, 0, 1, 15, 3, 18, 24, 52, 12, 15, 0,
- 11, 25, 15, 3, 18, 24, 42, 2, 0, 1, 15, 3, 18, 26, 52, 12, 15, 0, 11, 27,
- 15, 3, 18, 26, 42, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 28, 2, 0, 0,
- 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 9, 95, 86, 69, 82, 83, 73, 79,
- 78, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 15, 95, 76, 85, 65, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0,
- 0, 0, 3,105,109, 0, 2, 0, 0, 0, 11, 95, 67, 79, 80, 89, 82, 73, 71, 72,
- 84, 0, 2, 0, 0, 0, 3, 99,100, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 32, 73,110,102,111, 0, 2, 0, 0, 0, 11, 32, 32, 83,121,115,
-116,101,109, 58, 32, 0, 2, 0, 0, 0, 10, 71,101,116, 71,108,111, 98, 97,108,
- 0, 2, 0, 0, 0, 7, 83, 89, 83, 84, 69, 77, 0, 2, 0, 0, 0, 19, 32, 32,
- 83,121,115,116,101,109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0,
- 0, 14, 83, 89, 83, 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0,
- 4,109,111,116, 0, 2, 0, 0, 0, 13, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73,
- 79, 78, 0, 2, 0, 0, 0, 18, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,
-105,111,110, 58, 32, 0, 2, 0, 0, 0, 16, 32, 32, 83, 99,114,101,101,110, 32,
- 83,105,122,101, 58, 32, 0, 2, 0, 0, 0, 11, 83, 67, 82, 69, 69, 78, 83, 73,
- 90, 69, 0, 2, 0, 0, 0, 17, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112,
-116,104, 58, 32, 0, 2, 0, 0, 0, 12, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84,
- 72, 0, 2, 0, 0, 0, 10, 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 2, 0, 0,
- 0, 18, 32, 32, 79,112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0,
- 2, 0, 0, 0, 12, 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 2, 0, 0,
- 0, 20, 32, 32, 79,112,101,110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58,
- 32, 0, 2, 0, 0, 0, 11, 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0,
- 0, 0, 19, 32, 32, 79,112,101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58,
- 32, 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0,
- 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 13,105,117,
-112,109,117,108,116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,
-110,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0,
- 5,115,105,122,101, 0, 2, 0, 0, 0, 8, 50, 48, 48,120, 49, 50, 48, 0, 2,
- 0, 0, 0, 5,102,111,110,116, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69,
- 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 9,112,111,115,
-108, 97, 98,101,108, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0,
- 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, 4, 48, 58, 48, 0,
- 2, 0, 0, 0, 4, 53, 48,120, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97,
- 98,101,108, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90,
- 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 8, 99, 97,114,101,116, 99, 98, 0, 4,
- 0, 0, 0, 49, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117,
- 97, 0, 0, 0, 0, 16, 7, 3, 15, 3, 11, 4, 13, 1, 11, 5, 42, 13, 2, 42,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 4,108,105,110, 0, 2, 0, 0, 0, 4, 99,111,108, 0, 2, 0,
- 0, 0, 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,116,105,116,
-108,101, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 11, 98,117,116, 69,120,
-101, 99,117,116,101, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110,
- 0, 2, 0, 0, 0, 6, 53, 48,120, 49, 53, 0, 2, 0, 0, 0, 6,116,105,116,
-108,101, 0, 2, 0, 0, 0, 8, 69,120,101, 99,117,116,101, 0, 2, 0, 0, 0,
- 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 28,100,111,115,116,114,105,110,
-103, 40,109,117,108, 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 41,
- 0, 2, 0, 0, 0, 17, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97,110,
-100,115, 0, 2, 0, 0, 0, 6, 67,108,101, 97,114, 0, 2, 0, 0, 0, 61,109,
-117,108, 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 32, 61, 32, 39,
- 39, 32, 32,102,105,108,101,108, 97, 98,101,108, 46,116,105,116,108,101, 32, 61,
- 32, 39, 39, 32, 32,108, 97,115,116,102,105,108,101, 32, 61, 32,110,105,108, 0,
- 2, 0, 0, 0, 12, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 2, 0, 0,
- 0, 8, 76,111, 97,100, 46, 46, 46, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,
-118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 11, 83, 97,118,101, 32, 65,
-115, 46, 46, 46, 0, 2, 0, 0, 0, 12, 98,117,116, 83, 97,118,101, 70,105,108,
-101, 0, 2, 0, 0, 0, 5, 83, 97,118,101, 0, 4, 0, 0, 0, 59, 0, 0, 0,
- 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 4,
- 1, 15, 0, 4, 0, 32, 52, 9, 15, 1, 20, 2, 2, 0, 1, 50, 48, 15, 4, 15,
- 0, 11, 5, 2, 1, 2, 25, 3, 15, 3, 4, 0, 31, 52, 20, 15, 6, 15, 3, 15,
- 7, 18, 8, 2, 0, 2, 15, 9, 15, 3, 2, 0, 1, 50, 10, 15, 10, 11, 11, 15,
- 12, 42, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 9,108,
- 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101,
- 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2,
- 0, 0, 0, 8,110,111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101,
-110,102,105,108,101, 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119,
-114,105,116,101, 0, 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,
-115, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 10, 99,108,
-111,115,101,102,105,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2,
- 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,101,
- 32, 0, 2, 0, 0, 0, 9,102,105,108,101,110, 97,109,101, 0, 2, 0, 0, 0,
- 14, 98,117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7,
- 97, 99,116,105,111,110, 0, 4, 0, 0, 0, 73, 0, 0, 0, 14, 64, 99,111,110,
-115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,136, 13, 1, 15, 1, 22, 5,
- 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 15, 11,
- 30, 4, 2, 1, 1, 15, 12, 13, 1, 15, 13, 15, 13, 2, 0, 3, 13, 1, 18, 14,
- 13, 1, 18, 16, 25, 15, 15, 17, 11, 4, 15, 15, 26, 15, 18, 13, 1, 2, 0, 1,
- 13, 2, 11, 19, 31, 52, 62, 15, 15, 4, 0, 32, 52, 10, 15, 20, 11, 21, 15, 15,
- 42, 2, 0, 1, 15, 23, 15, 15, 11, 24, 2, 1, 2, 13, 3, 4, 0, 31, 52, 20,
- 15, 25, 13, 3, 15, 26, 18, 16, 2, 0, 2, 15, 27, 13, 3, 2, 0, 1, 50, 7,
- 15, 20, 11, 28, 2, 0, 1, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 2, 0,
- 0, 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,
-105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,
-112,101, 0, 2, 0, 0, 0, 5, 83, 65, 86, 69, 0, 2, 0, 0, 0, 6,116,105,
-116,108,101, 0, 2, 0, 0, 0, 10, 83, 97,118,101, 32, 70,105,108,101, 0, 2,
- 0, 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117,
- 97, 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0,
- 0, 0, 10, 76,117, 97, 32,102,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,
-108,111,119,110,101,119, 0, 2, 0, 0, 0, 4,121,101,115, 0, 2, 0, 0, 0,
- 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 76,
- 69, 70, 84, 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0,
- 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101,
- 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0,
- 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, 0,
- 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110,
-111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 8,110,
-111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101,
- 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0,
- 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0,
- 0, 10, 99,108,111,115,101,102,105,108,101, 0, 2, 0, 0, 0, 17, 67, 97,110,
-110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 0, 4, 0, 0, 0, 94, 0,
- 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,
-153, 13, 1, 15, 1, 22, 5, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11,
- 8, 11, 9, 11, 10, 11, 11, 30, 4, 2, 1, 1, 13, 1, 20, 12, 15, 13, 15, 13,
- 2, 0, 3, 13, 1, 18, 14, 13, 1, 18, 16, 15, 17, 13, 1, 2, 0, 1, 13, 2,
- 11, 18, 32, 46, 5, 13, 2, 11, 19, 32, 52, 19, 13, 2, 11, 19, 32, 52, 10, 15,
- 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 62, 15, 23, 13, 3, 11, 24, 2, 1, 2,
- 13, 4, 4, 0, 32, 52, 12, 15, 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 32, 15,
- 25, 11, 16, 15, 26, 13, 4, 11, 27, 2, 1, 2, 26, 15, 28, 13, 4, 2, 0, 1,
- 13, 3, 25, 29, 15, 30, 11, 4, 15, 29, 26, 5, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 31, 2, 0, 0, 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,
-105,117,112,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108,
-111,103,116,121,112,101, 0, 2, 0, 0, 0, 5, 79, 80, 69, 78, 0, 2, 0, 0,
- 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, 10, 76,111, 97,100, 32, 70,105,
-108,101, 0, 2, 0, 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6,
- 42, 46,108,117, 97, 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,
-111, 0, 2, 0, 0, 0, 10, 76,117, 97, 32, 70,105,108,101,115, 0, 2, 0, 0,
- 0, 9, 97,108,108,111,119,110,101,119, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2,
- 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67,
- 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0,
- 0, 0, 8,110,101,119,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,
-101, 0, 2, 0, 0, 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0,
- 0, 0, 3, 45, 49, 0, 2, 0, 0, 0, 2, 49, 0, 2, 0, 0, 0, 6,101,114,
-114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110,111,116, 32,108,111, 97,100,
- 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 3,102,112, 0, 2, 0, 0, 0, 9,
-111,112,101,110,102,105,108,101, 0, 2, 0, 0, 0, 2,114, 0, 2, 0, 0, 0,
- 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 5,114,101,
- 97,100, 0, 2, 0, 0, 0, 3, 42, 97, 0, 2, 0, 0, 0, 10, 99,108,111,115,
-101,102,105,108,101, 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0,
- 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11,
-118, 98,120, 67,111,110,115,111,108,101, 0, 2, 0, 0, 0, 8,105,117,112,118,
- 98,111,120, 0, 2, 0, 0, 0, 9,105,117,112,102,114, 97,109,101, 0, 2, 0,
- 0, 0, 8,105,117,112,104, 98,111,120, 0, 2, 0, 0, 0, 7,109, 97,114,103,
-105,110, 0, 2, 0, 0, 0, 4, 48,120, 48, 0, 2, 0, 0, 0, 4,103, 97,112,
- 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97,
- 98,101,108, 0, 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115,
- 0, 2, 0, 0, 0, 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 10,
- 97,108,105,103,110,109,101,110,116, 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72,
- 84, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 6,116,105,116,
-108,101, 0, 2, 0, 0, 0, 9, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0,
- 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 4, 53,120, 53, 0, 2,
- 0, 0, 0, 2, 53, 0, 2, 0, 0, 0, 8,109,110,117, 77, 97,105,110, 0, 2,
- 0, 0, 0, 8,105,117,112,109,101,110,117, 0, 2, 0, 0, 0, 11,105,117,112,
-115,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109,
- 0, 2, 0, 0, 0, 5, 69,120,105,116, 0, 2, 0, 0, 0, 17,114,101,116,117,
-114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 5, 70,105,
-108,101, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,105,116,101,
-109, 0, 2, 0, 0, 0, 22, 80,114,105,110,116, 32, 86,101,114,115,105,111,110,
- 32, 73,110,102,111, 46, 46, 46, 0, 2, 0, 0, 0, 9, 65, 98,111,117,116, 46,
- 46, 46, 0, 2, 0, 0, 0, 39,100,108,103, 65, 98,111,117,116, 58,112,111,112,
-117,112, 40, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82, 44, 32, 73, 85, 80, 95, 67,
- 69, 78, 84, 69, 82, 41, 0, 2, 0, 0, 0, 5, 72,101,108,112, 0, 2, 0, 0,
- 0, 8,100,108,103, 77, 97,105,110, 0, 2, 0, 0, 0, 10,105,117,112,100,105,
- 97,108,111,103, 0, 2, 0, 0, 0, 29, 67,111,109,112,108,101,116,101, 32, 73,
-117,112, 76,117, 97, 51, 32, 73,110,116,101,114,112,114,101,116,101,114, 0, 2,
- 0, 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 9, 99,108,111,115,101, 95,
- 99, 98, 0, 2, 0, 0, 0, 9,100,108,103, 65, 98,111,117,116, 0, 2, 0, 0,
- 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0, 0, 16, 84,101, 99,103,114,
- 97,102, 47, 80, 85, 67, 45, 82,105,111, 0, 2, 0, 0, 0, 18, 77, 97,114,107,
- 47, 79,118,237,100,105,111, 47, 83, 99,117,114,105, 0, 2, 0, 0, 0, 23,105,
-117,112, 64,116,101, 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,
-114, 0, 2, 0, 0, 0, 3, 79, 75, 0, 2, 0, 0, 0, 6, 53, 48, 88, 50, 48,
- 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0, 0, 0, 7,109, 97,120,
- 98,111,120, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, 2, 0, 0, 0,
- 7,109,105,110, 98,111,120, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0,
- 2, 0, 0, 0, 6, 65, 98,111,117,116, 0, 2, 0, 0, 0, 5,115,104,111,119,
- 0, 2, 0, 0, 0, 12, 73,117,112, 77, 97,105,110, 76,111,111,112, 0, 2, 0,
- 0, 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/console3_le64w.lo");
-}
diff --git a/iup/srcconsole/loh/console5.loh b/iup/srcconsole/loh/console5.loh
deleted file mode 100755
index 9bec168..0000000
--- a/iup/srcconsole/loh/console5.loh
+++ /dev/null
@@ -1,475 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- if (luaL_loadfile(L,"../obj/iuplua51/console5.lo")==0) lua_call(L, 0, 0);
-*/
-/* ../obj/iuplua51/console5.lo */
-static const unsigned char B1[]={
- 27, 76,117, 97, 81, 0, 1, 4, 4, 4, 8, 0, 14, 0, 0, 0, 64, 99,111,110,
-115,111,108,101, 53, 46,108,117, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 15, 90, 1, 0, 0, 5, 0, 0, 0, 65, 64, 0, 0, 28, 64, 0, 1, 5,128,
- 0, 0, 74, 0, 0, 0, 9, 64,128,129, 5,128, 0, 0, 6,192, 64, 0,100, 0,
- 0, 0, 9, 64, 0,130, 5,128, 0, 0, 6,192, 64, 0,100, 64, 0, 0, 9, 64,
-128,130, 5,128, 0, 0, 6,192, 64, 0, 9,192, 65,131, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70, 64,194, 0,138,192, 0, 0,137,192, 66,133,137, 64,
- 67,134,137,192, 67,135, 92,128, 0, 1, 9, 64, 0,132, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,128, 0, 0,137,192, 68,137,137, 0,
- 69,134, 92,128, 0, 1, 9, 64, 0,136, 5,128, 0, 0, 6,192, 64, 0, 69,128,
- 0, 0, 70, 64,196, 0,138,192, 0, 0,137,128, 69,137,137, 0, 69,134,137,192,
- 69,133, 92,128, 0, 1, 9, 64,128,138, 5,128, 0, 0, 6,192, 64, 0, 6, 0,
- 66, 0,100,128, 0, 0, 9, 64, 0,140, 5,128, 0, 0, 6,192, 64, 0, 69,128,
- 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0, 71,137,137,128,
-199,142, 92,128, 0, 1, 9, 64,128,140, 5,128, 0, 0, 6,192, 64, 0, 69,128,
- 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0, 72,137,137, 64,
-200,142, 92,128, 0, 1, 9, 64,128,143, 5,128, 0, 0, 6,192, 64, 0, 69,128,
- 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137,192, 72,137, 92,128,
- 0, 1, 9, 64, 0,145, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128,
-198, 0,138,128, 0, 0,137,192, 70,134,137, 64, 73,137, 92,128, 0, 1, 9, 64,
- 0,146, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128,198, 0,138,128,
- 0, 0,137,192, 70,134,137,192, 73,137, 92,128, 0, 1, 9, 64, 0,147, 5,128,
- 0, 0, 6,192, 64, 0, 6,128, 73, 0,100,192, 0, 0, 9, 64,128,142, 5,128,
- 0, 0, 6,192, 64, 0, 6, 0, 73, 0,100, 0, 1, 0, 9, 64,128,142, 5,128,
- 0, 0, 6,192, 64, 0,100, 64, 1, 0, 9, 64, 0,148, 5,128, 0, 0, 6,192,
- 64, 0, 6,128, 72, 0,100,128, 1, 0, 9, 64,128,142, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70,128,202, 0,138,192,128, 0,197,128, 0, 0,198,192,
-202, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 1,203, 2,138, 65, 0, 1,197,129,
- 0, 0,198,129,202, 3, 10,130,128, 2, 69,130, 0, 0, 70,194,192, 4, 70,130,
-200, 4,133,130, 0, 0,134,194, 64, 5,134,130, 73, 5,197,130, 0, 0,198,194,
-192, 5,198, 2,201, 5, 5,131, 0, 0, 6,195, 64, 6, 6,195, 71, 6, 69,131,
- 0, 0, 70,195,192, 6, 70, 67,198, 6, 9,130,203,150, 9, 2,204,151, 34, 66,
-128, 2,220,129, 0, 1, 5,130, 0, 0, 6,130, 74, 4, 74, 66,128, 1,133,130,
- 0, 0,134,194, 64, 5,134, 66, 69, 5,197,130, 0, 0,198,194,192, 5,198, 2,
-194, 5, 5,131, 0, 0, 6,195, 64, 6, 6, 3, 68, 6, 73,130,204,152, 98, 66,
-128, 1, 28,130, 0, 1,137,193,204,152,162, 65, 0, 1, 92,129, 0, 1, 9, 1,
- 77,137, 34, 65,128, 0,220,128, 0, 1,137, 64,205,152,137,128,205,150,137,192,
-205,151,162, 64,128, 0, 92,128, 0, 1, 9, 64,128,148, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70, 64,206, 0,138, 0,128, 0,197,128, 0, 0,198,128,
-206, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 65,206, 2,138, 1, 0, 0,197,129,
- 0, 0,198,193,206, 3, 10,130, 0, 0, 9, 2, 79,137, 9, 66,207,142,220, 1,
- 0, 1,162, 65, 0, 0, 92,129, 0, 1, 9,129, 79,137, 34, 65,128, 0,220,128,
- 0, 1, 5,129, 0, 0, 6,129, 78, 2, 74, 65,128, 0,133,129, 0, 0,134, 65,
- 78, 3,202, 1,128, 0, 5,130, 0, 0, 6,194, 78, 4, 74,130, 0, 0, 73,194,
- 79,137,133,130, 0, 0,134,194, 64, 5,134, 66, 65, 5, 73,130,130,142, 28,130,
- 0, 1, 69,130, 0, 0, 70,194,206, 4,138,130, 0, 0,137, 2, 80,137,137, 66,
-208,142, 92, 2, 0, 1,226, 65, 0, 0,156,129, 0, 1, 73,129, 80,137, 98, 65,
-128, 0, 28, 1, 0, 1,162, 64, 0, 0, 92,128, 0, 1, 9, 64, 0,156, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 0,209, 0,138, 64,129, 0,197,128,
- 0, 0,198,192,192, 1,198, 64,202, 1,137, 64, 81,137, 5,129, 0, 0, 6,193,
- 64, 2, 6, 1, 78, 2,137, 0,129,156,137,192, 66,163, 5,129, 0, 0, 6,193,
- 64, 2, 6, 65, 70, 2,137, 0,129,163,137, 64, 79,164,162, 64,128, 0, 92,128,
- 0, 1, 9, 64,128,161, 5,128, 0, 0, 6,192, 64, 0, 6,192, 80, 0,100,192,
- 1, 0, 9, 64,128,164, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 0,
-209, 0,138, 0,129, 0,197,128, 0, 0,198,128,202, 1, 10,129, 0, 3, 69,129,
- 0, 0, 70, 65,196, 2,138, 65, 0, 0,137, 65, 81,137, 92,129, 0, 1,133,129,
- 0, 0,134,193, 82, 3,202, 65, 0, 0,201,193, 77,134,156,129, 0, 1,197,129,
- 0, 0,198,193,210, 3, 10, 66, 0, 0, 9,194, 77,134,220,129, 0, 1, 5,130,
- 0, 0, 6,194, 74, 4, 74, 2, 0, 0,133,130, 0, 0,134,130, 74, 5,202, 2,
-128, 0, 5,131, 0, 0, 6, 67, 68, 6, 74, 67, 0, 0, 73, 3, 83,137, 28,131,
- 0, 1, 69,131, 0, 0, 70, 67,196, 6,138, 67, 0, 0,137, 67, 83,137, 92, 3,
- 0, 1,226, 66, 0, 0,156, 2, 0, 1, 98, 66, 0, 0, 28,130, 0, 1, 69,130,
- 0, 0, 70,194,210, 4,138, 66, 0, 0,137,194, 77,134, 92,130, 0, 1,133,130,
- 0, 0,134,130, 70, 5,202,194, 0, 0,201,130, 83,137,201, 66,207,142,201,194,
- 83,134,156,130, 0, 1, 9, 1,212,150, 9, 65,205,152, 34, 65, 0, 3,220,128,
- 0, 1,137,128,212,168,137,128,212,169,137,128, 84,170,137, 64, 85,137,162, 64,
-128, 0, 92,128, 0, 1, 9, 64, 0,165, 5,128, 0, 0, 6,192, 64, 0, 6,192,
- 80, 0, 11,128, 85, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, 85, 0, 69,128,
- 0, 0, 70,192,192, 0, 70, 0,194, 0, 28, 64, 0, 1, 5,128, 0, 0, 6, 0,
- 86, 0, 28, 64,128, 0, 5,128, 0, 0, 6,192, 64, 0, 6,192, 80, 0, 11, 64,
- 86, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, 64, 0, 6,128, 82, 0, 11, 64,
- 86, 0, 28, 64, 0, 1, 30, 0,128, 0, 90, 0, 0, 0, 4, 8, 0, 0, 0,114,
-101,113,117,105,114,101, 0, 4, 7, 0, 0, 0,105,117,112,108,117, 97, 0, 4,
- 4, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, 0, 99,111,110,115,111,108,101,
- 0, 4, 11, 0, 0, 0,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 19, 0,
- 0, 0,112,114,105,110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111,
- 0, 4, 13, 0, 0, 0,108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 0,
- 4, 7, 0, 0, 0,109,108, 67,111,100,101, 0, 4, 10, 0, 0, 0,109,117,108,
-116,105,108,105,110,101, 0, 4, 7, 0, 0, 0,101,120,112, 97,110,100, 0, 4,
- 4, 0, 0, 0, 89, 69, 83, 0, 4, 5, 0, 0, 0,115,105,122,101, 0, 4, 8,
- 0, 0, 0, 50, 48, 48,120, 49, 50, 48, 0, 4, 5, 0, 0, 0,102,111,110,116,
- 0, 4, 18, 0, 0, 0, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76,
- 95, 49, 48, 0, 4, 12, 0, 0, 0,108, 98,108, 80,111,115,105,116,105,111,110,
- 0, 4, 6, 0, 0, 0,108, 97, 98,101,108, 0, 4, 6, 0, 0, 0,116,105,116,
-108,101, 0, 4, 4, 0, 0, 0, 48, 58, 48, 0, 4, 4, 0, 0, 0, 53, 48,120,
- 0, 4, 12, 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, 1,
- 0, 0, 0, 0, 4, 11, 0, 0, 0, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0,
- 4, 9, 0, 0, 0, 99, 97,114,101,116, 95, 99, 98, 0, 4, 11, 0, 0, 0, 98,
-117,116, 69,120,101, 99,117,116,101, 0, 4, 7, 0, 0, 0, 98,117,116,116,111,
-110, 0, 4, 6, 0, 0, 0, 53, 48,120, 49, 53, 0, 4, 8, 0, 0, 0, 69,120,
-101, 99,117,116,101, 0, 4, 7, 0, 0, 0, 97, 99,116,105,111,110, 0, 4, 39,
- 0, 0, 0,105,117,112, 46,100,111,115,116,114,105,110,103, 40,105,117,112, 46,
- 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, 97,108,117,101,
- 41, 0, 4, 17, 0, 0, 0, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97,
-110,100,115, 0, 4, 6, 0, 0, 0, 67,108,101, 97,114, 0, 4, 96, 0, 0, 0,
-105,117,112, 46, 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118,
- 97,108,117,101, 61, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101,
- 46,108, 98,108, 70,105,108,101, 78, 97,109,101, 46,116,105,116,108,101, 32, 61,
- 32, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 97,115,
-116,102,105,108,101,110, 97,109,101, 32, 61, 32,110,105,108, 0, 4, 12, 0, 0,
- 0, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 4, 8, 0, 0, 0, 76,111,
- 97,100, 46, 46, 46, 0, 4, 14, 0, 0, 0, 98,117,116, 83, 97,118,101, 97,115,
- 70,105,108,101, 0, 4, 11, 0, 0, 0, 83, 97,118,101, 32, 65,115, 46, 46, 46,
- 0, 4, 12, 0, 0, 0, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 4, 5,
- 0, 0, 0, 83, 97,118,101, 0, 4, 9, 0, 0, 0, 76,111, 97,100, 70,105,108,
-101, 0, 4, 11, 0, 0, 0,118, 98,120, 67,111,110,115,111,108,101, 0, 4, 5,
- 0, 0, 0,118, 98,111,120, 0, 4, 6, 0, 0, 0,102,114, 97,109,101, 0, 4,
- 5, 0, 0, 0,104, 98,111,120, 0, 4, 7, 0, 0, 0,109, 97,114,103,105,110,
- 0, 4, 4, 0, 0, 0, 48,120, 48, 0, 4, 4, 0, 0, 0,103, 97,112, 0, 4,
- 3, 0, 0, 0, 49, 48, 0, 4, 10, 0, 0, 0, 97,108,105,103,110,109,101,110,
-116, 0, 4, 7, 0, 0, 0, 65, 82, 73, 71, 72, 84, 0, 4, 5, 0, 0, 0, 65,
- 84, 79, 80, 0, 4, 9, 0, 0, 0, 67,111,109,109, 97,110,100,115, 0, 4, 8,
- 0, 0, 0, 65, 67, 69, 78, 84, 69, 82, 0, 4, 4, 0, 0, 0, 53,120, 53, 0,
- 4, 2, 0, 0, 0, 53, 0, 4, 8, 0, 0, 0,109,110,117, 77, 97,105,110, 0,
- 4, 5, 0, 0, 0,109,101,110,117, 0, 4, 8, 0, 0, 0,115,117, 98,109,101,
-110,117, 0, 4, 5, 0, 0, 0,105,116,101,109, 0, 4, 5, 0, 0, 0, 69,120,
-105,116, 0, 4, 17, 0, 0, 0,114,101,116,117,114,110, 32,105,117,112, 46, 67,
- 76, 79, 83, 69, 0, 4, 5, 0, 0, 0, 70,105,108,101, 0, 4, 22, 0, 0, 0,
- 80,114,105,110,116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, 46, 46,
- 46, 0, 4, 9, 0, 0, 0, 65, 98,111,117,116, 46, 46, 46, 0, 4, 51, 0, 0,
- 0,105,117,112, 46, 99,111,110,115,111,108,101, 46,100,108,103, 65, 98,111,117,
-116, 58,112,111,112,117,112, 40,105,117,112, 46, 67, 69, 78, 84, 69, 82, 44, 32,
-105,117,112, 46, 67, 69, 78, 84, 69, 82, 41, 0, 4, 5, 0, 0, 0, 72,101,108,
-112, 0, 4, 8, 0, 0, 0,100,108,103, 77, 97,105,110, 0, 4, 7, 0, 0, 0,
-100,105, 97,108,111,103, 0, 4, 15, 0, 0, 0, 73,117,112, 76,117, 97, 32, 67,
-111,110,115,111,108,101, 0, 4, 9, 0, 0, 0,100,114, 97,103,100,114,111,112,
- 0, 4, 13, 0, 0, 0,100,101,102, 97,117,108,116,101,110,116,101,114, 0, 4,
- 9, 0, 0, 0, 99,108,111,115,101, 95, 99, 98, 0, 4, 13, 0, 0, 0,100,114,
-111,112,102,105,108,101,115, 95, 99, 98, 0, 4, 9, 0, 0, 0,100,108,103, 65,
- 98,111,117,116, 0, 4, 5, 0, 0, 0,102,105,108,108, 0, 4, 16, 0, 0, 0,
- 84,101, 99,103,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 0, 4, 23, 0, 0,
- 0,105,117,112, 64,116,101, 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111,
- 46, 98,114, 0, 4, 3, 0, 0, 0, 79, 75, 0, 4, 6, 0, 0, 0, 53, 48, 88,
- 50, 48, 0, 4, 6, 0, 0, 0, 49, 48,120, 49, 48, 0, 4, 7, 0, 0, 0,109,
- 97,120, 98,111,120, 0, 4, 3, 0, 0, 0, 78, 79, 0, 4, 7, 0, 0, 0,109,
-105,110, 98,111,120, 0, 4, 7, 0, 0, 0,114,101,115,105,122,101, 0, 4, 6,
- 0, 0, 0, 65, 98,111,117,116, 0, 4, 5, 0, 0, 0,115,104,111,119, 0, 4,
- 9, 0, 0, 0, 83,101,116, 70,111, 99,117,115, 0, 4, 9, 0, 0, 0, 77, 97,
-105,110, 76,111,111,112, 0, 4, 8, 0, 0, 0,100,101,115,116,114,111,121, 0,
- 8, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, 0, 1, 0, 8,
- 30, 0, 0, 0, 69, 0, 0, 0,128, 0, 0, 0,195, 0,128, 1, 92,192,128, 1,
-197, 64, 0, 0, 1,129, 0, 0,220, 64, 0, 1, 90, 0, 0, 0, 22, 0, 4,128,
-197, 64, 0, 0, 5,193, 0, 0, 64, 1,128, 0, 28,129, 0, 1, 65, 1, 1, 0,
-133,193, 0, 0,192, 1, 0, 1,156,129, 0, 1, 21,129, 1, 2,220, 64, 0, 1,
-197, 0, 0, 0, 0, 1, 0, 0, 64, 1,128, 0,220,192,128, 1,128, 0, 0, 2,
- 64, 0,128, 1, 22, 0,251,127,197, 64, 0, 0, 1, 65, 1, 0,220, 64, 0, 1,
- 30, 0,128, 0, 6, 0, 0, 0, 4, 5, 0, 0, 0,110,101,120,116, 0, 4, 6,
- 0, 0, 0,112,114,105,110,116, 0, 4, 21, 0, 0, 0, 45, 45,112,114,105,110,
-116,116, 97, 98,108,101, 32, 83,116, 97,114,116, 45, 45, 0, 4, 9, 0, 0, 0,
-116,111,115,116,114,105,110,103, 0, 4, 2, 0, 0, 0, 61, 0, 4, 19, 0, 0,
- 0, 45, 45,112,114,105,110,116,116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0,
- 0, 0, 0, 0, 30, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0,
- 8, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0,
- 10, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0,
- 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0,
- 11, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0,
- 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,
- 14, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0,116, 0, 0, 0,
- 0, 0, 29, 0, 0, 0, 2, 0, 0, 0,110, 0, 4, 0, 0, 0, 29, 0, 0, 0,
- 2, 0, 0, 0,118, 0, 4, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 5,112, 0, 0, 0, 5, 0,
- 0, 0, 26, 0, 0, 0, 22, 0, 2,128, 5, 64, 0, 0, 65,128, 0, 0,133, 0,
- 0, 0,134,192, 64, 1,193, 0, 1, 0, 5, 1, 0, 0, 6, 65, 65, 2, 85, 0,
-129, 0, 28, 64, 0, 1, 5,128, 1, 0, 26, 0, 0, 0, 22, 0, 2,128, 5, 64,
- 0, 0, 65,192, 1, 0,133,128, 1, 0,134,192, 64, 1,193, 0, 1, 0, 5,129,
- 1, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65, 0,
- 2, 0,133, 64, 2, 0,134,192, 64, 1,193, 0, 1, 0, 5, 65, 2, 0, 6, 65,
- 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,128, 2, 0, 28, 64,
- 0, 1, 5, 64, 0, 0, 65,192, 2, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65, 0,
- 3, 0,133, 64, 2, 0,134, 64, 67, 1,193,128, 3, 0,156,128, 0, 1, 85,128,
-128, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 3, 0,133, 64, 2, 0,134, 64,
- 67, 1,193, 0, 4, 0,156,128, 0, 1, 85,128,128, 0, 28, 64, 0, 1, 5, 64,
- 2, 0, 6, 64, 67, 0, 65, 64, 4, 0, 28,128, 0, 1, 26, 0, 0, 0, 22,192,
- 0,128, 69, 64, 0, 0,129,128, 4, 0,192, 0, 0, 0, 92, 64,128, 1, 69, 64,
- 0, 0,129,192, 4, 0,197, 64, 2, 0,198, 64,195, 1, 1, 1, 5, 0,220,128,
- 0, 1,149,192, 0, 1, 92, 64, 0, 1, 69, 64, 0, 0,129, 64, 5, 0,197, 64,
- 2, 0,198, 64,195, 1, 1,129, 5, 0,220,128, 0, 1,149,192, 0, 1, 92, 64,
- 0, 1, 69, 64, 2, 0, 70,192,197, 0, 90, 0, 0, 0, 22, 64, 1,128, 69, 64,
- 0, 0,129, 0, 6, 0,197, 64, 2, 0,198,192,197, 1,149,192, 0, 1, 92, 64,
- 0, 1, 69, 64, 2, 0, 70, 64,198, 0, 90, 0, 0, 0, 22, 64, 1,128, 69, 64,
- 0, 0,129,128, 6, 0,197, 64, 2, 0,198, 64,198, 1,149,192, 0, 1, 92, 64,
- 0, 1, 69, 64, 2, 0, 70,192,198, 0, 90, 0, 0, 0, 22, 64, 1,128, 69, 64,
- 0, 0,129, 0, 7, 0,197, 64, 2, 0,198,192,198, 1,149,192, 0, 1, 92, 64,
- 0, 1, 30, 0,128, 0, 29, 0, 0, 0, 4, 3, 0, 0, 0,105,109, 0, 4, 6,
- 0, 0, 0,112,114,105,110,116, 0, 4, 4, 0, 0, 0, 73, 77, 32, 0, 4, 9,
- 0, 0, 0, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 3, 0, 0, 0, 32, 32, 0,
- 4, 11, 0, 0, 0, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 4, 3, 0, 0,
- 0, 99,100, 0, 4, 4, 0, 0, 0, 67, 68, 32, 0, 4, 5, 0, 0, 0, 73, 85,
- 80, 32, 0, 4, 4, 0, 0, 0,105,117,112, 0, 4, 1, 0, 0, 0, 0, 4, 9,
- 0, 0, 0, 73, 85, 80, 32, 73,110,102,111, 0, 4, 11, 0, 0, 0, 32, 32, 83,
-121,115,116,101,109, 58, 32, 0, 4, 10, 0, 0, 0, 71,101,116, 71,108,111, 98,
- 97,108, 0, 4, 7, 0, 0, 0, 83, 89, 83, 84, 69, 77, 0, 4, 19, 0, 0, 0,
- 32, 32, 83,121,115,116,101,109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 4,
- 14, 0, 0, 0, 83, 89, 83, 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 4, 13,
- 0, 0, 0, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 4, 18, 0, 0,
- 0, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, 0, 4,
- 16, 0, 0, 0, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122,101, 58, 32, 0,
- 4, 11, 0, 0, 0, 83, 67, 82, 69, 69, 78, 83, 73, 90, 69, 0, 4, 17, 0, 0,
- 0, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112,116,104, 58, 32, 0, 4, 12,
- 0, 0, 0, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 4, 10, 0, 0, 0,
- 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 4, 18, 0, 0, 0, 32, 32, 79,112,101,
-110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 4, 12, 0, 0, 0, 71, 76,
- 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 4, 20, 0, 0, 0, 32, 32, 79,112,101,
-110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58, 32, 0, 4, 11, 0, 0, 0,
- 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 19, 0, 0, 0, 32, 32, 79,112,
-101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 0, 0, 0, 0,112,
- 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18,
- 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18,
- 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20,
- 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20,
- 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 22,
- 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22,
- 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 23,
- 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 25,
- 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25,
- 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26,
- 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26,
- 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 29,
- 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29,
- 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31,
- 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 32,
- 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32,
- 0, 0, 0, 32, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34,
- 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34,
- 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35,
- 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35,
- 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36,
- 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36,
- 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,109,
-111,116, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46,
- 0, 0, 0, 48, 0, 0, 0, 0, 3, 0, 7, 9, 0, 0, 0,197, 0, 0, 0,198,
- 64,192, 1,198,128,192, 1, 0, 1,128, 0, 65, 1, 1, 0,128, 1, 0, 1, 21,
-129, 1, 2,201, 0,129,129, 30, 0,128, 0, 5, 0, 0, 0, 4, 4, 0, 0, 0,
-105,117,112, 0, 4, 8, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 12, 0,
- 0, 0,108, 98,108, 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0,116,
-105,116,108,101, 0, 4, 2, 0, 0, 0, 58, 0, 0, 0, 0, 0, 9, 0, 0, 0,
- 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0,
- 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 3, 0, 0, 0,
- 5, 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0,
- 0,108,105,110, 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 99,111,108,
- 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0,
- 0, 70, 0, 0, 0, 0, 1, 0, 4, 39, 0, 0, 0, 69, 0, 0, 0, 70, 64,192,
- 0, 70,128,192, 0, 23,192,192, 0, 22, 64, 1,128, 69, 0, 0, 0, 70, 64,192,
- 0, 70, 0,193, 0, 75, 64,193, 0, 92, 64, 0, 1, 22,128, 6,128, 69,192, 1,
- 0, 70, 0,194, 0,133, 0, 0, 0,134, 64, 64, 1,134,128, 64, 1,193, 64, 2,
- 0, 92,128,128, 1, 71,128, 1, 0, 69,128, 1, 0, 90, 0, 0, 0, 22,128, 2,
-128, 69,128, 1, 0, 75,128,194, 0,197, 0, 0, 0,198, 64,192, 1,198,192,194,
- 1,198, 0,195, 1, 92, 64,128, 1, 69,128, 1, 0, 75, 64,195, 0, 92, 64, 0,
- 1, 22, 0, 1,128, 69,128, 3, 0,129,192, 3, 0,197, 0, 4, 0,149,192, 0,
- 1, 92, 64, 0, 1, 30, 0,128, 0, 17, 0, 0, 0, 4, 4, 0, 0, 0,105,117,
-112, 0, 4, 8, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 13, 0, 0, 0,
-108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 0, 4, 14, 0, 0, 0, 98,
-117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 7, 0, 0, 0, 97, 99,
-116,105,111,110, 0, 4, 8, 0, 0, 0,110,101,119,102,105,108,101, 0, 4, 3,
- 0, 0, 0,105,111, 0, 4, 5, 0, 0, 0,111,112,101,110, 0, 4, 3, 0, 0,
- 0,119, 43, 0, 4, 6, 0, 0, 0,119,114,105,116,101, 0, 4, 7, 0, 0, 0,
-109,108, 67,111,100,101, 0, 4, 6, 0, 0, 0,118, 97,108,117,101, 0, 4, 6,
- 0, 0, 0, 99,108,111,115,101, 0, 4, 6, 0, 0, 0,101,114,114,111,114, 0,
- 4, 18, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,
-101, 32, 0, 4, 9, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 0, 0, 0,
- 0, 39, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0,
- 0, 59, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0,
- 0, 60, 0, 0, 0, 60, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0,
- 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0,
- 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,
- 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,
- 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 67, 0, 0,
- 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 70, 0, 0,
- 0, 1, 0, 0, 0, 5, 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 38, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 0, 1,
- 0, 7, 65, 0, 0, 0, 69, 0, 0, 0, 70, 64,192, 0,138, 64, 1, 0,137,192,
- 64,129,137, 64, 65,130,137,192, 65,131,137, 64, 66,132,197,192, 2, 0,137,192,
- 0,133, 92,128, 0, 1,139, 0,195, 0, 5, 1, 0, 0, 6, 65, 67, 2, 69, 1,
- 0, 0, 70, 65,195, 2,156, 64, 0, 2,134,128,195, 0,197, 0, 0, 0,198,192,
-195, 1, 6, 65,196, 0,201, 0, 1,136,197, 0, 0, 0,198,192,195, 1,198,128,
-196, 1, 5, 1, 0, 0, 6,193, 67, 2, 6, 1, 68, 2,201, 0, 1,130,203,192,
-196, 0,220, 64, 0, 1, 87, 0, 69, 1, 22,192, 7,128,197, 0, 0, 0,198,192,
-195, 1,198, 0,196, 1, 23, 64,197, 1, 22, 0, 1,128,197,128, 5, 0, 1,193,
- 5, 0, 69, 1, 6, 0, 21, 65, 1, 2,220, 64, 0, 1,197, 64, 6, 0,198,128,
-198, 1, 5, 1, 0, 0, 6,193, 67, 2, 6, 1, 68, 2, 65,193, 6, 0,220,128,
-128, 1,218, 0, 0, 0, 22, 64, 2,128, 11, 1,199, 1,133, 1, 0, 0,134,193,
- 67, 3,134, 65, 71, 3,134, 65, 68, 3, 28, 65,128, 1, 11,129,199, 1,128, 1,
-128, 1, 28, 65,128, 1, 22,128, 0,128, 5,129, 5, 0, 65,193, 7, 0, 28, 65,
- 0, 1, 30, 0,128, 0, 32, 0, 0, 0, 4, 4, 0, 0, 0,105,117,112, 0, 4,
- 8, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0, 0, 0,100,105, 97,
-108,111,103,116,121,112,101, 0, 4, 5, 0, 0, 0, 83, 65, 86, 69, 0, 4, 6,
- 0, 0, 0,116,105,116,108,101, 0, 4, 10, 0, 0, 0, 83, 97,118,101, 32, 70,
-105,108,101, 0, 4, 7, 0, 0, 0,102,105,108,116,101,114, 0, 4, 4, 0, 0,
- 0, 42, 46, 42, 0, 4, 11, 0, 0, 0,102,105,108,116,101,114,105,110,102,111,
- 0, 4, 10, 0, 0, 0, 65,108,108, 32,102,105,108,101,115, 0, 4, 9, 0, 0,
- 0, 97,108,108,111,119,110,101,119, 0, 4, 4, 0, 0, 0,121,101,115, 0, 4,
- 6, 0, 0, 0,112,111,112,117,112, 0, 4, 5, 0, 0, 0, 76, 69, 70, 84, 0,
- 4, 7, 0, 0, 0,115,116, 97,116,117,115, 0, 4, 8, 0, 0, 0, 99,111,110,
-115,111,108,101, 0, 4, 13, 0, 0, 0,108, 97,115,116,102,105,108,101,110, 97,
-109,101, 0, 4, 6, 0, 0, 0,118, 97,108,117,101, 0, 4, 12, 0, 0, 0,108,
- 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, 8, 0, 0, 0,100,101,115,116,
-114,111,121, 0, 4, 3, 0, 0, 0, 45, 49, 0, 0, 4, 6, 0, 0, 0,101,114,
-114,111,114, 0, 4, 18, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101,
- 32,102,105,108,101, 32, 0, 4, 9, 0, 0, 0,102,105,108,101,110, 97,109,101,
- 0, 4, 3, 0, 0, 0,105,111, 0, 4, 5, 0, 0, 0,111,112,101,110, 0, 4,
- 3, 0, 0, 0,119, 43, 0, 4, 6, 0, 0, 0,119,114,105,116,101, 0, 4, 7,
- 0, 0, 0,109,108, 67,111,100,101, 0, 4, 6, 0, 0, 0, 99,108,111,115,101,
- 0, 4, 17, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,
-108,101, 0, 0, 0, 0, 0, 65, 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 73,
- 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 74, 0, 0, 0, 74,
- 0, 0, 0, 74, 0, 0, 0, 73, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75,
- 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77,
- 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 78,
- 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78,
- 0, 0, 0, 79, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 80, 0, 0, 0, 81,
- 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 82,
- 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 84,
- 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84,
- 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 86,
- 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 87,
- 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 89, 0, 0, 0, 89,
- 0, 0, 0, 89, 0, 0, 0, 92, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0,115,
-101,108,102, 0, 0, 0, 0, 0, 64, 0, 0, 0, 3, 0, 0, 0,102,100, 0, 10,
- 0, 0, 0, 64, 0, 0, 0, 7, 0, 0, 0,115,116, 97,116,117,115, 0, 17, 0,
- 0, 0, 64, 0, 0, 0, 8, 0, 0, 0,110,101,119,102,105,108,101, 0, 49, 0,
- 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0,104, 0,
- 0, 0, 0, 1, 0, 6, 34, 0, 0, 0, 69, 0, 0, 0, 70, 64,192, 0,128, 0,
- 0, 0,193,128, 0, 0, 92,128,128, 1, 23,192,192, 0, 22, 64, 1,128,133, 0,
- 1, 0,193, 64, 1, 0, 0, 1, 0, 0,213, 0,129, 1,156, 64, 0, 1, 22,192,
- 4,128,133,128, 1, 0,134,192, 65, 1,134, 0, 66, 1,203,128,194, 0, 65,193,
- 2, 0,220,128,128, 1,137,192,128,132,139, 0,195, 0, 0, 1,128, 0,156, 64,
-128, 1,133,128, 1, 0,134,192, 65, 1,137, 0,128,134,133,128, 1, 0,134,192,
- 65, 1,134,128, 67, 1,197,128, 1, 0,198,192,193, 1,198, 64,195, 1,137,192,
-128,135, 30, 0,128, 0, 16, 0, 0, 0, 4, 3, 0, 0, 0,105,111, 0, 4, 5,
- 0, 0, 0,111,112,101,110, 0, 4, 2, 0, 0, 0,114, 0, 0, 4, 6, 0, 0,
- 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 67, 97,110,110,111,116, 32,108,
-111, 97,100, 32,102,105,108,101, 32, 0, 4, 4, 0, 0, 0,105,117,112, 0, 4,
- 8, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 7, 0, 0, 0,109,108, 67,
-111,100,101, 0, 4, 6, 0, 0, 0,118, 97,108,117,101, 0, 4, 5, 0, 0, 0,
-114,101, 97,100, 0, 4, 3, 0, 0, 0, 42, 97, 0, 4, 6, 0, 0, 0, 99,108,
-111,115,101, 0, 4, 13, 0, 0, 0,108, 97,115,116,102,105,108,101,110, 97,109,
-101, 0, 4, 12, 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4,
- 6, 0, 0, 0,116,105,116,108,101, 0, 0, 0, 0, 0, 34, 0, 0, 0, 95, 0,
- 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 96, 0,
- 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0,
- 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0,
- 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0,100, 0,
- 0, 0,100, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0,101, 0, 0, 0,101, 0,
- 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0,
- 0, 0,102, 0, 0, 0,102, 0, 0, 0,104, 0, 0, 0, 2, 0, 0, 0, 9, 0,
- 0, 0,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 33, 0, 0, 0, 8,
- 0, 0, 0,110,101,119,102,105,108,101, 0, 5, 0, 0, 0, 33, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0,121, 0, 0, 0, 0, 1, 0, 7, 37,
- 0, 0, 0, 69, 0, 0, 0, 70, 64,192, 0,138, 64, 1, 0,137,192, 64,129,137,
- 64, 65,130,137,192, 65,131,137, 64, 66,132,137,192, 66,133, 92,128, 0, 1,139,
- 0,195, 0, 5, 1, 0, 0, 6, 65, 67, 2, 69, 1, 0, 0, 70, 65,195, 2,156,
- 64, 0, 2,134,128,195, 0,198,192,195, 0, 11, 1,196, 0, 28, 65, 0, 1, 87,
- 64, 68, 1, 22, 64, 0,128, 23,128, 68, 1, 22,192, 1,128, 23,128, 68, 1, 22,
-128, 2,128, 5,193, 4, 0, 65, 1, 5, 0,128, 1,128, 1, 85,129,129, 2, 28,
- 65, 0, 1, 22, 0, 1,128, 5, 1, 0, 0, 6, 65, 69, 2, 6,129, 69, 2, 64,
- 1,128, 1, 28, 65, 0, 1, 30, 0,128, 0, 23, 0, 0, 0, 4, 4, 0, 0, 0,
-105,117,112, 0, 4, 8, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0,
- 0, 0,100,105, 97,108,111,103,116,121,112,101, 0, 4, 5, 0, 0, 0, 79, 80,
- 69, 78, 0, 4, 6, 0, 0, 0,116,105,116,108,101, 0, 4, 10, 0, 0, 0, 76,
-111, 97,100, 32, 70,105,108,101, 0, 4, 7, 0, 0, 0,102,105,108,116,101,114,
- 0, 4, 4, 0, 0, 0, 42, 46, 42, 0, 4, 11, 0, 0, 0,102,105,108,116,101,
-114,105,110,102,111, 0, 4, 10, 0, 0, 0, 65,108,108, 32, 70,105,108,101,115,
- 0, 4, 9, 0, 0, 0, 97,108,108,111,119,110,101,119, 0, 4, 3, 0, 0, 0,
- 78, 79, 0, 4, 6, 0, 0, 0,112,111,112,117,112, 0, 4, 7, 0, 0, 0, 67,
- 69, 78, 84, 69, 82, 0, 4, 7, 0, 0, 0,115,116, 97,116,117,115, 0, 4, 6,
- 0, 0, 0,118, 97,108,117,101, 0, 4, 8, 0, 0, 0,100,101,115,116,114,111,
-121, 0, 4, 3, 0, 0, 0, 45, 49, 0, 4, 2, 0, 0, 0, 49, 0, 4, 6, 0,
- 0, 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 67, 97,110,110,111,116, 32,
-108,111, 97,100, 32,102,105,108,101, 32, 0, 4, 8, 0, 0, 0, 99,111,110,115,
-111,108,101, 0, 4, 9, 0, 0, 0, 76,111, 97,100, 70,105,108,101, 0, 0, 0,
- 0, 0, 37, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,107, 0,
- 0, 0,107, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0,107, 0,
- 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0,
- 0, 0,109, 0, 0, 0,110, 0, 0, 0,111, 0, 0, 0,112, 0, 0, 0,112, 0,
- 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,115, 0,
- 0, 0,115, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,116, 0,
- 0, 0,116, 0, 0, 0,117, 0, 0, 0,119, 0, 0, 0,119, 0, 0, 0,119, 0,
- 0, 0,119, 0, 0, 0,119, 0, 0, 0,121, 0, 0, 0, 4, 0, 0, 0, 5, 0,
- 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 36, 0, 0, 0, 3, 0, 0, 0,102,
-100, 0, 9, 0, 0, 0, 36, 0, 0, 0, 7, 0, 0, 0,115,116, 97,116,117,115,
- 0, 16, 0, 0, 0, 36, 0, 0, 0, 9, 0, 0, 0,102,105,108,101,110, 97,109,
-101, 0, 17, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,166, 0,
- 0, 0,170, 0, 0, 0, 0, 5, 0, 7, 8, 0, 0, 0, 23, 0, 64, 1, 22, 0,
- 1,128, 69, 65, 0, 0, 70,129,192, 2, 70,193,192, 2,128, 1,128, 0, 92, 65,
- 0, 1, 30, 0,128, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 4, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, 0, 99,111,110,115,111,108,101,
- 0, 4, 9, 0, 0, 0, 76,111, 97,100, 70,105,108,101, 0, 0, 0, 0, 0, 8,
- 0, 0, 0,167, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,168,
- 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,170, 0, 0, 0, 5, 0, 0, 0, 5,
- 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0,
-102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0,
- 0,110,117,109, 0, 0, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0,120, 0, 0,
- 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0,121, 0, 0, 0, 0, 0, 7, 0, 0,
- 0, 0, 0, 0, 0, 90, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0,
- 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0,
- 0, 15, 0, 0, 0, 7, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0,
- 0, 17, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0,
- 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0,
- 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0,
- 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0,
- 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0,
- 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0,
- 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0,
- 0, 46, 0, 0, 0, 48, 0, 0, 0, 46, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0,
- 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0,
- 0, 51, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0,
- 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0,
- 0, 53, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0,
- 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0,
- 0, 54, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0,
- 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0,
- 0, 55, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0,
- 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0,
- 0, 58, 0, 0, 0, 58, 0, 0, 0, 58, 0, 0, 0, 70, 0, 0, 0, 58, 0, 0,
- 0, 72, 0, 0, 0, 72, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 72, 0, 0,
- 0, 94, 0, 0, 0, 94, 0, 0, 0,104, 0, 0, 0, 94, 0, 0, 0,106, 0, 0,
- 0,106, 0, 0, 0,106, 0, 0, 0,121, 0, 0, 0,106, 0, 0, 0,123, 0, 0,
- 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,125, 0, 0,
- 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0,
- 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0,
- 0,125, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,127, 0, 0,
- 0,127, 0, 0, 0,127, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, 0, 0,
- 0,129, 0, 0, 0,129, 0, 0, 0,129, 0, 0, 0,130, 0, 0, 0,130, 0, 0,
- 0,130, 0, 0, 0,125, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0,
- 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0,132, 0, 0,
- 0,132, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,134, 0, 0,
- 0,134, 0, 0, 0,131, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0,125, 0, 0,
- 0,135, 0, 0, 0,135, 0, 0, 0,125, 0, 0, 0,136, 0, 0, 0,136, 0, 0,
- 0,136, 0, 0, 0,137, 0, 0, 0,124, 0, 0, 0,137, 0, 0, 0,141, 0, 0,
- 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,143, 0, 0,
- 0,143, 0, 0, 0,143, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0,145, 0, 0,
- 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0,
- 0,147, 0, 0, 0,148, 0, 0, 0,146, 0, 0, 0,148, 0, 0, 0,149, 0, 0,
- 0,144, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0,
- 0,150, 0, 0, 0,150, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0,
- 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0,
- 0,152, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0,
- 0,153, 0, 0, 0,153, 0, 0, 0,154, 0, 0, 0,151, 0, 0, 0,154, 0, 0,
- 0,154, 0, 0, 0,150, 0, 0, 0,155, 0, 0, 0,142, 0, 0, 0,155, 0, 0,
- 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0,
- 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,160, 0, 0, 0,161, 0, 0,
- 0,161, 0, 0, 0,161, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0,163, 0, 0,
- 0,163, 0, 0, 0,163, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,164, 0, 0,
- 0,159, 0, 0, 0,164, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0,166, 0, 0,
- 0,170, 0, 0, 0,166, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,174, 0, 0,
- 0,174, 0, 0, 0,174, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0,176, 0, 0,
- 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0,
- 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0,
- 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0,
- 0,181, 0, 0, 0,181, 0, 0, 0,181, 0, 0, 0,183, 0, 0, 0,183, 0, 0,
- 0,183, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0,
- 0,185, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0,
- 0,186, 0, 0, 0,187, 0, 0, 0,184, 0, 0, 0,188, 0, 0, 0,182, 0, 0,
- 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0,
- 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0,
- 0,190, 0, 0, 0,190, 0, 0, 0,191, 0, 0, 0,191, 0, 0, 0,192, 0, 0,
- 0,177, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0,
- 0,194, 0, 0, 0,175, 0, 0, 0,194, 0, 0, 0,198, 0, 0, 0,198, 0, 0,
- 0,198, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0,199, 0, 0,
- 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,201, 0, 0,
- 0,201, 0, 0, 0,201, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,203, 0, 0,
- 0,203, 0, 0, 0,203, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0,
- 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
- if (luaL_loadbuffer(L,(const char*)B1,sizeof(B1),"../obj/iuplua51/console5.lo")==0) lua_call(L, 0, 0);
-}
diff --git a/iup/srcconsole/loh/console5_be32.loh b/iup/srcconsole/loh/console5_be32.loh
deleted file mode 100755
index 493cae4..0000000
--- a/iup/srcconsole/loh/console5_be32.loh
+++ /dev/null
@@ -1,475 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- if (luaL_loadfile(L,"../obj/iuplua51/console5_be32.lo")==0) lua_call(L, 0, 0);
-*/
-/* ../obj/iuplua51/console5_be32.lo */
-static const unsigned char B1[]={
- 27, 76,117, 97, 81, 0, 0, 4, 4, 4, 8, 0, 0, 0, 0, 14, 64, 99,111,110,
-115,111,108,101, 53, 46,108,117, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 15, 0, 0, 1, 90, 0, 0, 0, 5, 0, 0, 64, 65, 1, 0, 64, 28, 0, 0,
-128, 5, 0, 0, 0, 74,129,128, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0,
- 0,100,130, 0, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0, 64,100,130,128,
- 64, 9, 0, 0,128, 5, 0, 64,192, 6,131, 65,192, 9, 0, 0,128, 5, 0, 64,
-192, 6, 0, 0,128, 69, 0,194, 64, 70, 0, 0,192,138,133, 66,192,137,134, 67,
- 64,137,135, 67,192,137, 1, 0,128, 92,132, 0, 64, 9, 0, 0,128, 5, 0, 64,
-192, 6, 0, 0,128, 69, 0,196, 64, 70, 0, 0,128,138,137, 68,192,137,134, 69,
- 0,137, 1, 0,128, 92,136, 0, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0,
-128, 69, 0,196, 64, 70, 0, 0,192,138,137, 69,128,137,134, 69, 0,137,133, 69,
-192,137, 1, 0,128, 92,138,128, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 66,
- 0, 6, 0, 0,128,100,140, 0, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0,
-128, 69, 0,198,128, 70, 0, 0,192,138,134, 70,192,137,137, 71, 0,137,142,199,
-128,137, 1, 0,128, 92,140,128, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0,
-128, 69, 0,198,128, 70, 0, 0,192,138,134, 70,192,137,137, 72, 0,137,142,200,
- 64,137, 1, 0,128, 92,143,128, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0,
-128, 69, 0,198,128, 70, 0, 0,128,138,134, 70,192,137,137, 72,192,137, 1, 0,
-128, 92,145, 0, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0,128, 69, 0,198,
-128, 70, 0, 0,128,138,134, 70,192,137,137, 73, 64,137, 1, 0,128, 92,146, 0,
- 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0,128, 69, 0,198,128, 70, 0, 0,
-128,138,134, 70,192,137,137, 73,192,137, 1, 0,128, 92,147, 0, 64, 9, 0, 0,
-128, 5, 0, 64,192, 6, 0, 73,128, 6, 0, 0,192,100,142,128, 64, 9, 0, 0,
-128, 5, 0, 64,192, 6, 0, 73, 0, 6, 0, 1, 0,100,142,128, 64, 9, 0, 0,
-128, 5, 0, 64,192, 6, 0, 1, 64,100,148, 0, 64, 9, 0, 0,128, 5, 0, 64,
-192, 6, 0, 72,128, 6, 0, 1,128,100,142,128, 64, 9, 0, 0,128, 5, 0, 64,
-192, 6, 0, 0,128, 69, 0,202,128, 70, 0,128,192,138, 0, 0,128,197, 1,202,
-192,198, 0,128, 65, 10, 0, 0,129, 69, 2,203, 1, 70, 1, 0, 65,138, 0, 0,
-129,197, 3,202,129,198, 2,128,130, 10, 0, 0,130, 69, 4,192,194, 70, 4,200,
-130, 70, 0, 0,130,133, 5, 64,194,134, 5, 73,130,134, 0, 0,130,197, 5,192,
-194,198, 5,201, 2,198, 0, 0,131, 5, 6, 64,195, 6, 6, 71,195, 6, 0, 0,
-131, 69, 6,192,195, 70, 6,198, 67, 70,150,203,130, 9,151,204, 2, 9, 2,128,
- 66, 34, 1, 0,129,220, 0, 0,130, 5, 4, 74,130, 6, 1,128, 66, 74, 0, 0,
-130,133, 5, 64,194,134, 5, 69, 66,134, 0, 0,130,197, 5,192,194,198, 5,194,
- 2,198, 0, 0,131, 5, 6, 64,195, 6, 6, 68, 3, 6,152,204,130, 73, 1,128,
- 66, 98, 1, 0,130, 28,152,204,193,137, 1, 0, 65,162, 1, 0,129, 92,137, 77,
- 1, 9, 0,128, 65, 34, 1, 0,128,220,152,205, 64,137,150,205,128,137,151,205,
-192,137, 0,128, 64,162, 1, 0,128, 92,148,128, 64, 9, 0, 0,128, 5, 0, 64,
-192, 6, 0, 0,128, 69, 0,206, 64, 70, 0,128, 0,138, 0, 0,128,197, 1,206,
-128,198, 0,128, 65, 10, 0, 0,129, 69, 2,206, 65, 70, 0, 0, 1,138, 0, 0,
-129,197, 3,206,193,198, 0, 0,130, 10,137, 79, 2, 9,142,207, 66, 9, 1, 0,
- 1,220, 0, 0, 65,162, 1, 0,129, 92,137, 79,129, 9, 0,128, 65, 34, 1, 0,
-128,220, 0, 0,129, 5, 2, 78,129, 6, 0,128, 65, 74, 0, 0,129,133, 3, 78,
- 65,134, 0,128, 1,202, 0, 0,130, 5, 4, 78,194, 6, 0, 0,130, 74,137, 79,
-194, 73, 0, 0,130,133, 5, 64,194,134, 5, 65, 66,134,142,130,130, 73, 1, 0,
-130, 28, 0, 0,130, 69, 4,206,194, 70, 0, 0,130,138,137, 80, 2,137,142,208,
- 66,137, 1, 0, 2, 92, 0, 0, 65,226, 1, 0,129,156,137, 80,129, 73, 0,128,
- 65, 98, 1, 0, 1, 28, 0, 0, 64,162, 1, 0,128, 92,156, 0, 64, 9, 0, 0,
-128, 5, 0, 64,192, 6, 0, 0,128, 69, 0,209, 0, 70, 0,129, 64,138, 0, 0,
-128,197, 1,192,192,198, 1,202, 64,198,137, 81, 64,137, 0, 0,129, 5, 2, 64,
-193, 6, 2, 78, 1, 6,156,129, 0,137,163, 66,192,137, 0, 0,129, 5, 2, 64,
-193, 6, 2, 70, 65, 6,163,129, 0,137,164, 79, 64,137, 0,128, 64,162, 1, 0,
-128, 92,161,128, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 80,192, 6, 0, 1,
-192,100,164,128, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0,128, 69, 0,209,
- 0, 70, 0,129, 0,138, 0, 0,128,197, 1,202,128,198, 3, 0,129, 10, 0, 0,
-129, 69, 2,196, 65, 70, 0, 0, 65,138,137, 81, 65,137, 1, 0,129, 92, 0, 0,
-129,133, 3, 82,193,134, 0, 0, 65,202,134, 77,193,201, 1, 0,129,156, 0, 0,
-129,197, 3,210,193,198, 0, 0, 66, 10,134, 77,194, 9, 1, 0,129,220, 0, 0,
-130, 5, 4, 74,194, 6, 0, 0, 2, 74, 0, 0,130,133, 5, 74,130,134, 0,128,
- 2,202, 0, 0,131, 5, 6, 68, 67, 6, 0, 0, 67, 74,137, 83, 3, 73, 1, 0,
-131, 28, 0, 0,131, 69, 6,196, 67, 70, 0, 0, 67,138,137, 83, 67,137, 1, 0,
- 3, 92, 0, 0, 66,226, 1, 0, 2,156, 0, 0, 66, 98, 1, 0,130, 28, 0, 0,
-130, 69, 4,210,194, 70, 0, 0, 66,138,134, 77,194,137, 1, 0,130, 92, 0, 0,
-130,133, 5, 70,130,134, 0, 0,194,202,137, 83,130,201,142,207, 66,201,134, 83,
-194,201, 1, 0,130,156,150,212, 1, 9,152,205, 65, 9, 3, 0, 65, 34, 1, 0,
-128,220,168,212,128,137,169,212,128,137,170, 84,128,137,137, 85, 64,137, 0,128,
- 64,162, 1, 0,128, 92,165, 0, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 80,
-192, 6, 0, 85,128, 11, 1, 0, 64, 28, 0, 0,128, 5, 0, 85,192, 6, 0, 0,
-128, 69, 0,192,192, 70, 0,194, 0, 70, 1, 0, 64, 28, 0, 0,128, 5, 0, 86,
- 0, 6, 0,128, 64, 28, 0, 0,128, 5, 0, 64,192, 6, 0, 80,192, 6, 0, 86,
- 64, 11, 1, 0, 64, 28, 0, 0,128, 5, 0, 64,192, 6, 0, 82,128, 6, 0, 86,
- 64, 11, 1, 0, 64, 28, 0,128, 0, 30, 0, 0, 0, 90, 4, 0, 0, 0, 8,114,
-101,113,117,105,114,101, 0, 4, 0, 0, 0, 7,105,117,112,108,117, 97, 0, 4,
- 0, 0, 0, 4,105,117,112, 0, 4, 0, 0, 0, 8, 99,111,110,115,111,108,101,
- 0, 4, 0, 0, 0, 11,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 0, 0,
- 0, 19,112,114,105,110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111,
- 0, 4, 0, 0, 0, 13,108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 0,
- 4, 0, 0, 0, 7,109,108, 67,111,100,101, 0, 4, 0, 0, 0, 10,109,117,108,
-116,105,108,105,110,101, 0, 4, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 4,
- 0, 0, 0, 4, 89, 69, 83, 0, 4, 0, 0, 0, 5,115,105,122,101, 0, 4, 0,
- 0, 0, 8, 50, 48, 48,120, 49, 50, 48, 0, 4, 0, 0, 0, 5,102,111,110,116,
- 0, 4, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76,
- 95, 49, 48, 0, 4, 0, 0, 0, 12,108, 98,108, 80,111,115,105,116,105,111,110,
- 0, 4, 0, 0, 0, 6,108, 97, 98,101,108, 0, 4, 0, 0, 0, 6,116,105,116,
-108,101, 0, 4, 0, 0, 0, 4, 48, 58, 48, 0, 4, 0, 0, 0, 4, 53, 48,120,
- 0, 4, 0, 0, 0, 12,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, 0,
- 0, 0, 1, 0, 4, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0,
- 4, 0, 0, 0, 9, 99, 97,114,101,116, 95, 99, 98, 0, 4, 0, 0, 0, 11, 98,
-117,116, 69,120,101, 99,117,116,101, 0, 4, 0, 0, 0, 7, 98,117,116,116,111,
-110, 0, 4, 0, 0, 0, 6, 53, 48,120, 49, 53, 0, 4, 0, 0, 0, 8, 69,120,
-101, 99,117,116,101, 0, 4, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 4, 0,
- 0, 0, 39,105,117,112, 46,100,111,115,116,114,105,110,103, 40,105,117,112, 46,
- 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, 97,108,117,101,
- 41, 0, 4, 0, 0, 0, 17, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97,
-110,100,115, 0, 4, 0, 0, 0, 6, 67,108,101, 97,114, 0, 4, 0, 0, 0, 96,
-105,117,112, 46, 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118,
- 97,108,117,101, 61, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101,
- 46,108, 98,108, 70,105,108,101, 78, 97,109,101, 46,116,105,116,108,101, 32, 61,
- 32, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 97,115,
-116,102,105,108,101,110, 97,109,101, 32, 61, 32,110,105,108, 0, 4, 0, 0, 0,
- 12, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 4, 0, 0, 0, 8, 76,111,
- 97,100, 46, 46, 46, 0, 4, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115,
- 70,105,108,101, 0, 4, 0, 0, 0, 11, 83, 97,118,101, 32, 65,115, 46, 46, 46,
- 0, 4, 0, 0, 0, 12, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 4, 0,
- 0, 0, 5, 83, 97,118,101, 0, 4, 0, 0, 0, 9, 76,111, 97,100, 70,105,108,
-101, 0, 4, 0, 0, 0, 11,118, 98,120, 67,111,110,115,111,108,101, 0, 4, 0,
- 0, 0, 5,118, 98,111,120, 0, 4, 0, 0, 0, 6,102,114, 97,109,101, 0, 4,
- 0, 0, 0, 5,104, 98,111,120, 0, 4, 0, 0, 0, 7,109, 97,114,103,105,110,
- 0, 4, 0, 0, 0, 4, 48,120, 48, 0, 4, 0, 0, 0, 4,103, 97,112, 0, 4,
- 0, 0, 0, 3, 49, 48, 0, 4, 0, 0, 0, 10, 97,108,105,103,110,109,101,110,
-116, 0, 4, 0, 0, 0, 7, 65, 82, 73, 71, 72, 84, 0, 4, 0, 0, 0, 5, 65,
- 84, 79, 80, 0, 4, 0, 0, 0, 9, 67,111,109,109, 97,110,100,115, 0, 4, 0,
- 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 4, 0, 0, 0, 4, 53,120, 53, 0,
- 4, 0, 0, 0, 2, 53, 0, 4, 0, 0, 0, 8,109,110,117, 77, 97,105,110, 0,
- 4, 0, 0, 0, 5,109,101,110,117, 0, 4, 0, 0, 0, 8,115,117, 98,109,101,
-110,117, 0, 4, 0, 0, 0, 5,105,116,101,109, 0, 4, 0, 0, 0, 5, 69,120,
-105,116, 0, 4, 0, 0, 0, 17,114,101,116,117,114,110, 32,105,117,112, 46, 67,
- 76, 79, 83, 69, 0, 4, 0, 0, 0, 5, 70,105,108,101, 0, 4, 0, 0, 0, 22,
- 80,114,105,110,116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, 46, 46,
- 46, 0, 4, 0, 0, 0, 9, 65, 98,111,117,116, 46, 46, 46, 0, 4, 0, 0, 0,
- 51,105,117,112, 46, 99,111,110,115,111,108,101, 46,100,108,103, 65, 98,111,117,
-116, 58,112,111,112,117,112, 40,105,117,112, 46, 67, 69, 78, 84, 69, 82, 44, 32,
-105,117,112, 46, 67, 69, 78, 84, 69, 82, 41, 0, 4, 0, 0, 0, 5, 72,101,108,
-112, 0, 4, 0, 0, 0, 8,100,108,103, 77, 97,105,110, 0, 4, 0, 0, 0, 7,
-100,105, 97,108,111,103, 0, 4, 0, 0, 0, 15, 73,117,112, 76,117, 97, 32, 67,
-111,110,115,111,108,101, 0, 4, 0, 0, 0, 9,100,114, 97,103,100,114,111,112,
- 0, 4, 0, 0, 0, 13,100,101,102, 97,117,108,116,101,110,116,101,114, 0, 4,
- 0, 0, 0, 9, 99,108,111,115,101, 95, 99, 98, 0, 4, 0, 0, 0, 13,100,114,
-111,112,102,105,108,101,115, 95, 99, 98, 0, 4, 0, 0, 0, 9,100,108,103, 65,
- 98,111,117,116, 0, 4, 0, 0, 0, 5,102,105,108,108, 0, 4, 0, 0, 0, 16,
- 84,101, 99,103,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 0, 4, 0, 0, 0,
- 23,105,117,112, 64,116,101, 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111,
- 46, 98,114, 0, 4, 0, 0, 0, 3, 79, 75, 0, 4, 0, 0, 0, 6, 53, 48, 88,
- 50, 48, 0, 4, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 4, 0, 0, 0, 7,109,
- 97,120, 98,111,120, 0, 4, 0, 0, 0, 3, 78, 79, 0, 4, 0, 0, 0, 7,109,
-105,110, 98,111,120, 0, 4, 0, 0, 0, 7,114,101,115,105,122,101, 0, 4, 0,
- 0, 0, 6, 65, 98,111,117,116, 0, 4, 0, 0, 0, 5,115,104,111,119, 0, 4,
- 0, 0, 0, 9, 83,101,116, 70,111, 99,117,115, 0, 4, 0, 0, 0, 9, 77, 97,
-105,110, 76,111,111,112, 0, 4, 0, 0, 0, 8,100,101,115,116,114,111,121, 0,
- 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 15, 0, 1, 0, 8,
- 0, 0, 0, 30, 0, 0, 0, 69, 0, 0, 0,128, 1,128, 0,195, 1,128,192, 92,
- 0, 0, 64,197, 0, 0,129, 1, 1, 0, 64,220, 0, 0, 0, 90,128, 4, 0, 22,
- 0, 0, 64,197, 0, 0,193, 5, 0,128, 1, 64, 1, 0,129, 28, 0, 1, 1, 65,
- 0, 0,193,133, 1, 0, 1,192, 1, 0,129,156, 2, 1,129, 21, 1, 0, 64,220,
- 0, 0, 0,197, 0, 0, 1, 0, 0,128, 1, 64, 1,128,192,220, 2, 0, 0,128,
- 1,128, 0, 64,127,251, 0, 22, 0, 0, 64,197, 0, 1, 65, 1, 1, 0, 64,220,
- 0,128, 0, 30, 0, 0, 0, 6, 4, 0, 0, 0, 5,110,101,120,116, 0, 4, 0,
- 0, 0, 6,112,114,105,110,116, 0, 4, 0, 0, 0, 21, 45, 45,112,114,105,110,
-116,116, 97, 98,108,101, 32, 83,116, 97,114,116, 45, 45, 0, 4, 0, 0, 0, 9,
-116,111,115,116,114,105,110,103, 0, 4, 0, 0, 0, 2, 61, 0, 4, 0, 0, 0,
- 19, 45, 45,112,114,105,110,116,116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0,
- 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8,
- 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 10,
- 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11,
- 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11,
- 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12,
- 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 14,
- 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0, 0, 2,116, 0, 0, 0,
- 0, 0, 0, 0, 0, 29, 0, 0, 0, 2,110, 0, 0, 0, 0, 4, 0, 0, 0, 29,
- 0, 0, 0, 2,118, 0, 0, 0, 0, 4, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 5, 0, 0, 0,112, 0, 0,
- 0, 5, 0, 0, 0, 26,128, 2, 0, 22, 0, 0, 64, 5, 0, 0,128, 65, 0, 0,
- 0,133, 1, 64,192,134, 0, 1, 0,193, 0, 0, 1, 5, 2, 65, 65, 6, 0,129,
- 0, 85, 1, 0, 64, 28, 0, 1,128, 5, 0, 0, 0, 26,128, 2, 0, 22, 0, 0,
- 64, 5, 0, 1,192, 65, 0, 1,128,133, 1, 64,192,134, 0, 1, 0,193, 0, 1,
-129, 5, 2, 65, 65, 6, 0,129, 0, 85, 1, 0, 64, 28, 0, 0, 64, 5, 0, 2,
- 0, 65, 0, 2, 64,133, 1, 64,192,134, 0, 1, 0,193, 0, 2, 65, 5, 2, 65,
- 65, 6, 0,129, 0, 85, 1, 0, 64, 28, 0, 0, 64, 5, 0, 2,128, 65, 1, 0,
- 64, 28, 0, 0, 64, 5, 0, 2,192, 65, 1, 0, 64, 28, 0, 0, 64, 5, 0, 3,
- 0, 65, 0, 2, 64,133, 1, 67, 64,134, 0, 3,128,193, 1, 0,128,156, 0,128,
-128, 85, 1, 0, 64, 28, 0, 0, 64, 5, 0, 3,192, 65, 0, 2, 64,133, 1, 67,
- 64,134, 0, 4, 0,193, 1, 0,128,156, 0,128,128, 85, 1, 0, 64, 28, 0, 2,
- 64, 5, 0, 67, 64, 6, 0, 4, 64, 65, 1, 0,128, 28, 0, 0, 0, 26,128, 0,
-192, 22, 0, 0, 64, 69, 0, 4,128,129, 0, 0, 0,192, 1,128, 64, 92, 0, 0,
- 64, 69, 0, 4,192,129, 0, 2, 64,197, 1,195, 64,198, 0, 5, 1, 1, 1, 0,
-128,220, 1, 0,192,149, 1, 0, 64, 92, 0, 0, 64, 69, 0, 5, 64,129, 0, 2,
- 64,197, 1,195, 64,198, 0, 5,129, 1, 1, 0,128,220, 1, 0,192,149, 1, 0,
- 64, 92, 0, 2, 64, 69, 0,197,192, 70, 0, 0, 0, 90,128, 1, 64, 22, 0, 0,
- 64, 69, 0, 6, 0,129, 0, 2, 64,197, 1,197,192,198, 1, 0,192,149, 1, 0,
- 64, 92, 0, 2, 64, 69, 0,198, 64, 70, 0, 0, 0, 90,128, 1, 64, 22, 0, 0,
- 64, 69, 0, 6,128,129, 0, 2, 64,197, 1,198, 64,198, 1, 0,192,149, 1, 0,
- 64, 92, 0, 2, 64, 69, 0,198,192, 70, 0, 0, 0, 90,128, 1, 64, 22, 0, 0,
- 64, 69, 0, 7, 0,129, 0, 2, 64,197, 1,198,192,198, 1, 0,192,149, 1, 0,
- 64, 92, 0,128, 0, 30, 0, 0, 0, 29, 4, 0, 0, 0, 3,105,109, 0, 4, 0,
- 0, 0, 6,112,114,105,110,116, 0, 4, 0, 0, 0, 4, 73, 77, 32, 0, 4, 0,
- 0, 0, 9, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 0, 0, 0, 3, 32, 32, 0,
- 4, 0, 0, 0, 11, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 4, 0, 0, 0,
- 3, 99,100, 0, 4, 0, 0, 0, 4, 67, 68, 32, 0, 4, 0, 0, 0, 5, 73, 85,
- 80, 32, 0, 4, 0, 0, 0, 4,105,117,112, 0, 4, 0, 0, 0, 1, 0, 4, 0,
- 0, 0, 9, 73, 85, 80, 32, 73,110,102,111, 0, 4, 0, 0, 0, 11, 32, 32, 83,
-121,115,116,101,109, 58, 32, 0, 4, 0, 0, 0, 10, 71,101,116, 71,108,111, 98,
- 97,108, 0, 4, 0, 0, 0, 7, 83, 89, 83, 84, 69, 77, 0, 4, 0, 0, 0, 19,
- 32, 32, 83,121,115,116,101,109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 4,
- 0, 0, 0, 14, 83, 89, 83, 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 4, 0,
- 0, 0, 13, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 4, 0, 0, 0,
- 18, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, 0, 4,
- 0, 0, 0, 16, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122,101, 58, 32, 0,
- 4, 0, 0, 0, 11, 83, 67, 82, 69, 69, 78, 83, 73, 90, 69, 0, 4, 0, 0, 0,
- 17, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112,116,104, 58, 32, 0, 4, 0,
- 0, 0, 12, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 4, 0, 0, 0, 10,
- 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 4, 0, 0, 0, 18, 32, 32, 79,112,101,
-110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 4, 0, 0, 0, 12, 71, 76,
- 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 4, 0, 0, 0, 20, 32, 32, 79,112,101,
-110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58, 32, 0, 4, 0, 0, 0, 11,
- 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 0, 0, 0, 19, 32, 32, 79,112,
-101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 0, 0, 0, 0, 0,
- 0, 0,112, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0,
- 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0,
- 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 20, 0, 0, 0, 20, 0,
- 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0,
- 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0,
- 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0,
- 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 23, 0,
- 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0,
- 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0,
- 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 26, 0,
- 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0,
- 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0,
- 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0,
- 0, 0, 29, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0,
- 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 32, 0,
- 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0,
- 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0,
- 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0,
- 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0,
- 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0,
- 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0,
- 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0,
- 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 4,109,
-111,116, 0, 0, 0, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 46, 0, 0, 0, 48, 0, 3, 0, 7, 0, 0, 0, 9, 0, 0, 0,197, 1,
-192, 64,198, 1,192,128,198, 0,128, 1, 0, 0, 1, 1, 65, 1, 0, 1,128, 2,
- 1,129, 21,129,129, 0,201, 0,128, 0, 30, 0, 0, 0, 5, 4, 0, 0, 0, 4,
-105,117,112, 0, 4, 0, 0, 0, 8, 99,111,110,115,111,108,101, 0, 4, 0, 0,
- 0, 12,108, 98,108, 80,111,115,105,116,105,111,110, 0, 4, 0, 0, 0, 6,116,
-105,116,108,101, 0, 4, 0, 0, 0, 2, 58, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47,
- 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 3,
- 0, 0, 0, 5,115,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0,
- 4,108,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 99,111,108,
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 58, 0, 0, 0, 70, 0, 1, 0, 4, 0, 0, 0, 39, 0, 0, 0, 69, 0,192, 64,
- 70, 0,192,128, 70, 0,192,192, 23,128, 1, 64, 22, 0, 0, 0, 69, 0,192, 64,
- 70, 0,193, 0, 70, 0,193, 64, 75, 1, 0, 64, 92,128, 6,128, 22, 0, 1,192,
- 69, 0,194, 0, 70, 0, 0, 0,133, 1, 64, 64,134, 1, 64,128,134, 0, 2, 64,
-193, 1,128,128, 92, 0, 1,128, 71, 0, 1,128, 69, 0, 0, 0, 90,128, 2,128,
- 22, 0, 1,128, 69, 0,194,128, 75, 0, 0, 0,197, 1,192, 64,198, 1,194,192,
-198, 1,195, 0,198, 1,128, 64, 92, 0, 1,128, 69, 0,195, 64, 75, 1, 0, 64,
- 92,128, 1, 0, 22, 0, 3,128, 69, 0, 3,192,129, 0, 4, 0,197, 1, 0,192,
-149, 1, 0, 64, 92, 0,128, 0, 30, 0, 0, 0, 17, 4, 0, 0, 0, 4,105,117,
-112, 0, 4, 0, 0, 0, 8, 99,111,110,115,111,108,101, 0, 4, 0, 0, 0, 13,
-108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 0, 4, 0, 0, 0, 14, 98,
-117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 0, 0, 0, 7, 97, 99,
-116,105,111,110, 0, 4, 0, 0, 0, 8,110,101,119,102,105,108,101, 0, 4, 0,
- 0, 0, 3,105,111, 0, 4, 0, 0, 0, 5,111,112,101,110, 0, 4, 0, 0, 0,
- 3,119, 43, 0, 4, 0, 0, 0, 6,119,114,105,116,101, 0, 4, 0, 0, 0, 7,
-109,108, 67,111,100,101, 0, 4, 0, 0, 0, 6,118, 97,108,117,101, 0, 4, 0,
- 0, 0, 6, 99,108,111,115,101, 0, 4, 0, 0, 0, 6,101,114,114,111,114, 0,
- 4, 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,
-101, 32, 0, 4, 0, 0, 0, 9,102,105,108,101,110, 97,109,101, 0, 0, 0, 0,
- 0, 0, 0, 0, 39, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0,
- 59, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0,
- 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0,
- 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0,
- 62, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0,
- 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0,
- 64, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0,
- 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0,
- 70, 0, 0, 0, 1, 0, 0, 0, 5,115,101,108,102, 0, 0, 0, 0, 0, 0, 0,
- 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 92, 0, 1,
- 0, 7, 0, 0, 0, 65, 0, 0, 0, 69, 0,192, 64, 70, 0, 1, 64,138,129, 64,
-192,137,130, 65, 64,137,131, 65,192,137,132, 66, 64,137, 0, 2,192,197,133, 0,
-192,137, 1, 0,128, 92, 0,195, 0,139, 0, 0, 1, 5, 2, 67, 65, 6, 0, 0,
- 1, 69, 2,195, 65, 70, 2, 0, 64,156, 0,195,128,134, 0, 0, 0,197, 1,195,
-192,198, 0,196, 65, 6,136, 1, 0,201, 0, 0, 0,197, 1,195,192,198, 1,196,
-128,198, 0, 0, 1, 5, 2, 67,193, 6, 2, 68, 1, 6,130, 1, 0,201, 0,196,
-192,203, 1, 0, 64,220, 1, 69, 0, 87,128, 7,192, 22, 0, 0, 0,197, 1,195,
-192,198, 1,196, 0,198, 1,197, 64, 23,128, 1, 0, 22, 0, 5,128,197, 0, 5,
-193, 1, 0, 6, 1, 69, 2, 1, 65, 21, 1, 0, 64,220, 0, 6, 64,197, 1,198,
-128,198, 0, 0, 1, 5, 2, 67,193, 6, 2, 68, 1, 6, 0, 6,193, 65, 1,128,
-128,220, 0, 0, 0,218,128, 2, 64, 22, 1,199, 1, 11, 0, 0, 1,133, 3, 67,
-193,134, 3, 71, 65,134, 3, 68, 65,134, 1,128, 65, 28, 1,199,129, 11, 1,128,
- 1,128, 1,128, 65, 28,128, 0,128, 22, 0, 5,129, 5, 0, 7,193, 65, 1, 0,
- 65, 28, 0,128, 0, 30, 0, 0, 0, 32, 4, 0, 0, 0, 4,105,117,112, 0, 4,
- 0, 0, 0, 8,102,105,108,101,100,108,103, 0, 4, 0, 0, 0, 11,100,105, 97,
-108,111,103,116,121,112,101, 0, 4, 0, 0, 0, 5, 83, 65, 86, 69, 0, 4, 0,
- 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 0, 10, 83, 97,118,101, 32, 70,
-105,108,101, 0, 4, 0, 0, 0, 7,102,105,108,116,101,114, 0, 4, 0, 0, 0,
- 4, 42, 46, 42, 0, 4, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,111,
- 0, 4, 0, 0, 0, 10, 65,108,108, 32,102,105,108,101,115, 0, 4, 0, 0, 0,
- 9, 97,108,108,111,119,110,101,119, 0, 4, 0, 0, 0, 4,121,101,115, 0, 4,
- 0, 0, 0, 6,112,111,112,117,112, 0, 4, 0, 0, 0, 5, 76, 69, 70, 84, 0,
- 4, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 4, 0, 0, 0, 8, 99,111,110,
-115,111,108,101, 0, 4, 0, 0, 0, 13,108, 97,115,116,102,105,108,101,110, 97,
-109,101, 0, 4, 0, 0, 0, 6,118, 97,108,117,101, 0, 4, 0, 0, 0, 12,108,
- 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, 0, 0, 0, 8,100,101,115,116,
-114,111,121, 0, 4, 0, 0, 0, 3, 45, 49, 0, 0, 4, 0, 0, 0, 6,101,114,
-114,111,114, 0, 4, 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97,118,101,
- 32,102,105,108,101, 32, 0, 4, 0, 0, 0, 9,102,105,108,101,110, 97,109,101,
- 0, 4, 0, 0, 0, 3,105,111, 0, 4, 0, 0, 0, 5,111,112,101,110, 0, 4,
- 0, 0, 0, 3,119, 43, 0, 4, 0, 0, 0, 6,119,114,105,116,101, 0, 4, 0,
- 0, 0, 7,109,108, 67,111,100,101, 0, 4, 0, 0, 0, 6, 99,108,111,115,101,
- 0, 4, 0, 0, 0, 17, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,
-108,101, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 73, 0, 0, 0, 73, 0,
- 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 74, 0,
- 0, 0, 74, 0, 0, 0, 74, 0, 0, 0, 73, 0, 0, 0, 75, 0, 0, 0, 75, 0,
- 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 76, 0,
- 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 78, 0,
- 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0,
- 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 80, 0,
- 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0,
- 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0,
- 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0,
- 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 85, 0, 0, 0, 86, 0,
- 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0,
- 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 89, 0,
- 0, 0, 89, 0, 0, 0, 89, 0, 0, 0, 92, 0, 0, 0, 4, 0, 0, 0, 5,115,
-101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 3,102,100, 0, 0,
- 0, 0, 10, 0, 0, 0, 64, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 0, 0,
- 0, 17, 0, 0, 0, 64, 0, 0, 0, 8,110,101,119,102,105,108,101, 0, 0, 0,
- 0, 49, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0,
- 0,104, 0, 1, 0, 6, 0, 0, 0, 34, 0, 0, 0, 69, 0,192, 64, 70, 0, 0,
- 0,128, 0, 0,128,193, 1,128,128, 92, 0,192,192, 23,128, 1, 64, 22, 0, 1,
- 0,133, 0, 1, 64,193, 0, 0, 1, 0, 1,129, 0,213, 1, 0, 64,156,128, 4,
-192, 22, 0, 1,128,133, 1, 65,192,134, 1, 66, 0,134, 0,194,128,203, 0, 2,
-193, 65, 1,128,128,220,132,128,192,137, 0,195, 0,139, 0,128, 1, 0, 1,128,
- 64,156, 0, 1,128,133, 1, 65,192,134,134,128, 0,137, 0, 1,128,133, 1, 65,
-192,134, 1, 67,128,134, 0, 1,128,197, 1,193,192,198, 1,195, 64,198,135,128,
-192,137, 0,128, 0, 30, 0, 0, 0, 16, 4, 0, 0, 0, 3,105,111, 0, 4, 0,
- 0, 0, 5,111,112,101,110, 0, 4, 0, 0, 0, 2,114, 0, 0, 4, 0, 0, 0,
- 6,101,114,114,111,114, 0, 4, 0, 0, 0, 18, 67, 97,110,110,111,116, 32,108,
-111, 97,100, 32,102,105,108,101, 32, 0, 4, 0, 0, 0, 4,105,117,112, 0, 4,
- 0, 0, 0, 8, 99,111,110,115,111,108,101, 0, 4, 0, 0, 0, 7,109,108, 67,
-111,100,101, 0, 4, 0, 0, 0, 6,118, 97,108,117,101, 0, 4, 0, 0, 0, 5,
-114,101, 97,100, 0, 4, 0, 0, 0, 3, 42, 97, 0, 4, 0, 0, 0, 6, 99,108,
-111,115,101, 0, 4, 0, 0, 0, 13,108, 97,115,116,102,105,108,101,110, 97,109,
-101, 0, 4, 0, 0, 0, 12,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4,
- 0, 0, 0, 6,116,105,116,108,101, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0,
- 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0,
- 0, 96, 0, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0,
- 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0,
- 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0,
- 0,100, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0,101, 0, 0,
- 0,101, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0,
- 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,104, 0, 0, 0, 2, 0, 0,
- 0, 9,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0,
- 0, 0, 8,110,101,119,102,105,108,101, 0, 0, 0, 0, 5, 0, 0, 0, 33, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0,121, 0, 1, 0, 7, 0,
- 0, 0, 37, 0, 0, 0, 69, 0,192, 64, 70, 0, 1, 64,138,129, 64,192,137,130,
- 65, 64,137,131, 65,192,137,132, 66, 64,137,133, 66,192,137, 1, 0,128, 92, 0,
-195, 0,139, 0, 0, 1, 5, 2, 67, 65, 6, 0, 0, 1, 69, 2,195, 65, 70, 2,
- 0, 64,156, 0,195,128,134, 0,195,192,198, 0,196, 1, 11, 1, 0, 65, 28, 1,
- 68, 64, 87,128, 0, 64, 22, 1, 68,128, 23,128, 1,192, 22, 1, 68,128, 23,128,
- 2,128, 22, 0, 4,193, 5, 0, 5, 1, 65, 1,128, 1,128, 2,129,129, 85, 1,
- 0, 65, 28,128, 1, 0, 22, 0, 0, 1, 5, 2, 69, 65, 6, 2, 69,129, 6, 1,
-128, 1, 64, 1, 0, 65, 28, 0,128, 0, 30, 0, 0, 0, 23, 4, 0, 0, 0, 4,
-105,117,112, 0, 4, 0, 0, 0, 8,102,105,108,101,100,108,103, 0, 4, 0, 0,
- 0, 11,100,105, 97,108,111,103,116,121,112,101, 0, 4, 0, 0, 0, 5, 79, 80,
- 69, 78, 0, 4, 0, 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 0, 10, 76,
-111, 97,100, 32, 70,105,108,101, 0, 4, 0, 0, 0, 7,102,105,108,116,101,114,
- 0, 4, 0, 0, 0, 4, 42, 46, 42, 0, 4, 0, 0, 0, 11,102,105,108,116,101,
-114,105,110,102,111, 0, 4, 0, 0, 0, 10, 65,108,108, 32, 70,105,108,101,115,
- 0, 4, 0, 0, 0, 9, 97,108,108,111,119,110,101,119, 0, 4, 0, 0, 0, 3,
- 78, 79, 0, 4, 0, 0, 0, 6,112,111,112,117,112, 0, 4, 0, 0, 0, 7, 67,
- 69, 78, 84, 69, 82, 0, 4, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 4, 0,
- 0, 0, 6,118, 97,108,117,101, 0, 4, 0, 0, 0, 8,100,101,115,116,114,111,
-121, 0, 4, 0, 0, 0, 3, 45, 49, 0, 4, 0, 0, 0, 2, 49, 0, 4, 0, 0,
- 0, 6,101,114,114,111,114, 0, 4, 0, 0, 0, 18, 67, 97,110,110,111,116, 32,
-108,111, 97,100, 32,102,105,108,101, 32, 0, 4, 0, 0, 0, 8, 99,111,110,115,
-111,108,101, 0, 4, 0, 0, 0, 9, 76,111, 97,100, 70,105,108,101, 0, 0, 0,
- 0, 0, 0, 0, 0, 37, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,107, 0, 0,
- 0,107, 0, 0, 0,107, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0,108, 0, 0,
- 0,107, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0,
- 0,109, 0, 0, 0,109, 0, 0, 0,110, 0, 0, 0,111, 0, 0, 0,112, 0, 0,
- 0,112, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, 0,
- 0,115, 0, 0, 0,115, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,116, 0, 0,
- 0,116, 0, 0, 0,116, 0, 0, 0,117, 0, 0, 0,119, 0, 0, 0,119, 0, 0,
- 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, 0, 0,121, 0, 0, 0, 4, 0, 0,
- 0, 5,115,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 3,102,
-100, 0, 0, 0, 0, 9, 0, 0, 0, 36, 0, 0, 0, 7,115,116, 97,116,117,115,
- 0, 0, 0, 0, 16, 0, 0, 0, 36, 0, 0, 0, 9,102,105,108,101,110, 97,109,
-101, 0, 0, 0, 0, 17, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,166, 0, 0, 0,170, 0, 5, 0, 7, 0, 0, 0, 8, 1, 64, 0, 23,128, 1,
- 0, 22, 0, 0, 65, 69, 2,192,129, 70, 2,192,193, 70, 0,128, 1,128, 1, 0,
- 65, 92, 0,128, 0, 30, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 0, 0, 0, 4,105,117,112, 0, 4, 0, 0, 0, 8, 99,111,110,115,111,108,101,
- 0, 4, 0, 0, 0, 9, 76,111, 97,100, 70,105,108,101, 0, 0, 0, 0, 0, 0,
- 0, 0, 8, 0, 0, 0,167, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,168, 0,
- 0, 0,168, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,170, 0, 0, 0, 5, 0,
- 0, 0, 5,115,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9,
-102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
- 4,110,117,109, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 2,120, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 2,121, 0, 0, 0, 0, 0, 0, 0, 0,
- 7, 0, 0, 0, 0, 0, 0, 1, 90, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0,
- 7, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0,
- 37, 0, 0, 0, 17, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0,
- 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0,
- 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0,
- 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0,
- 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0,
- 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0,
- 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 46, 0, 0, 0,
- 46, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 46, 0, 0, 0, 50, 0, 0, 0,
- 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0,
- 50, 0, 0, 0, 51, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0,
- 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0,
- 52, 0, 0, 0, 53, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0,
- 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0,
- 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0,
- 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0,
- 55, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0,
- 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0,
- 56, 0, 0, 0, 58, 0, 0, 0, 58, 0, 0, 0, 58, 0, 0, 0, 70, 0, 0, 0,
- 58, 0, 0, 0, 72, 0, 0, 0, 72, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0,
- 72, 0, 0, 0, 94, 0, 0, 0, 94, 0, 0, 0,104, 0, 0, 0, 94, 0, 0, 0,
-106, 0, 0, 0,106, 0, 0, 0,106, 0, 0, 0,121, 0, 0, 0,106, 0, 0, 0,
-123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,
-125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,
-125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,
-125, 0, 0, 0,125, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,
-127, 0, 0, 0,127, 0, 0, 0,127, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,
-128, 0, 0, 0,129, 0, 0, 0,129, 0, 0, 0,129, 0, 0, 0,130, 0, 0, 0,
-130, 0, 0, 0,130, 0, 0, 0,125, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,
-131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0,
-132, 0, 0, 0,132, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,
-134, 0, 0, 0,134, 0, 0, 0,131, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0,
-125, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0,125, 0, 0, 0,136, 0, 0, 0,
-136, 0, 0, 0,136, 0, 0, 0,137, 0, 0, 0,124, 0, 0, 0,137, 0, 0, 0,
-141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,
-143, 0, 0, 0,143, 0, 0, 0,143, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0,
-145, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,
-147, 0, 0, 0,147, 0, 0, 0,148, 0, 0, 0,146, 0, 0, 0,148, 0, 0, 0,
-149, 0, 0, 0,144, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,
-150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,
-152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,
-152, 0, 0, 0,152, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,
-153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,154, 0, 0, 0,151, 0, 0, 0,
-154, 0, 0, 0,154, 0, 0, 0,150, 0, 0, 0,155, 0, 0, 0,142, 0, 0, 0,
-155, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,
-159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,160, 0, 0, 0,
-161, 0, 0, 0,161, 0, 0, 0,161, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0,
-163, 0, 0, 0,163, 0, 0, 0,163, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,
-164, 0, 0, 0,159, 0, 0, 0,164, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0,
-166, 0, 0, 0,170, 0, 0, 0,166, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,
-174, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0,
-176, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,
-178, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,
-179, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,
-180, 0, 0, 0,181, 0, 0, 0,181, 0, 0, 0,181, 0, 0, 0,183, 0, 0, 0,
-183, 0, 0, 0,183, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,
-185, 0, 0, 0,185, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,
-186, 0, 0, 0,186, 0, 0, 0,187, 0, 0, 0,184, 0, 0, 0,188, 0, 0, 0,
-182, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,
-189, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,
-190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,191, 0, 0, 0,191, 0, 0, 0,
-192, 0, 0, 0,177, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,
-193, 0, 0, 0,194, 0, 0, 0,175, 0, 0, 0,194, 0, 0, 0,198, 0, 0, 0,
-198, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0,
-199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,
-201, 0, 0, 0,201, 0, 0, 0,201, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,
-203, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,
-204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0,
- 0,
-};
-
- if (luaL_loadbuffer(L,(const char*)B1,sizeof(B1),"../obj/iuplua51/console5_be32.lo")==0) lua_call(L, 0, 0);
-}
diff --git a/iup/srcconsole/loh/console5_be64.loh b/iup/srcconsole/loh/console5_be64.loh
deleted file mode 100755
index 4e08445..0000000
--- a/iup/srcconsole/loh/console5_be64.loh
+++ /dev/null
@@ -1,524 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- if (luaL_loadfile(L,"../obj/iuplua51/console5_be64.lo")==0) lua_call(L, 0, 0);
-*/
-/* ../obj/iuplua51/console5_be64.lo */
-static const unsigned char B1[]={
- 27, 76,117, 97, 81, 0, 1, 4, 8, 4, 8, 0, 14, 0, 0, 0, 0, 0, 0, 0,
- 64, 99,111,110,115,111,108,101, 53, 46,108,117, 97, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 15, 90, 1, 0, 0, 5, 0, 0, 0, 65, 64, 0, 0, 28, 64,
- 0, 1, 5,128, 0, 0, 74, 0, 0, 0, 9, 64,128,129, 5,128, 0, 0, 6,192,
- 64, 0,100, 0, 0, 0, 9, 64, 0,130, 5,128, 0, 0, 6,192, 64, 0,100, 64,
- 0, 0, 9, 64,128,130, 5,128, 0, 0, 6,192, 64, 0, 9,192, 65,131, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,194, 0,138,192, 0, 0,137,192,
- 66,133,137, 64, 67,134,137,192, 67,135, 92,128, 0, 1, 9, 64, 0,132, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,128, 0, 0,137,192,
- 68,137,137, 0, 69,134, 92,128, 0, 1, 9, 64, 0,136, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,192, 0, 0,137,128, 69,137,137, 0,
- 69,134,137,192, 69,133, 92,128, 0, 1, 9, 64,128,138, 5,128, 0, 0, 6,192,
- 64, 0, 6, 0, 66, 0,100,128, 0, 0, 9, 64, 0,140, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0,
- 71,137,137,128,199,142, 92,128, 0, 1, 9, 64,128,140, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0,
- 72,137,137, 64,200,142, 92,128, 0, 1, 9, 64,128,143, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137,192,
- 72,137, 92,128, 0, 1, 9, 64, 0,145, 5,128, 0, 0, 6,192, 64, 0, 69,128,
- 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137, 64, 73,137, 92,128,
- 0, 1, 9, 64, 0,146, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128,
-198, 0,138,128, 0, 0,137,192, 70,134,137,192, 73,137, 92,128, 0, 1, 9, 64,
- 0,147, 5,128, 0, 0, 6,192, 64, 0, 6,128, 73, 0,100,192, 0, 0, 9, 64,
-128,142, 5,128, 0, 0, 6,192, 64, 0, 6, 0, 73, 0,100, 0, 1, 0, 9, 64,
-128,142, 5,128, 0, 0, 6,192, 64, 0,100, 64, 1, 0, 9, 64, 0,148, 5,128,
- 0, 0, 6,192, 64, 0, 6,128, 72, 0,100,128, 1, 0, 9, 64,128,142, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128,202, 0,138,192,128, 0,197,128,
- 0, 0,198,192,202, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 1,203, 2,138, 65,
- 0, 1,197,129, 0, 0,198,129,202, 3, 10,130,128, 2, 69,130, 0, 0, 70,194,
-192, 4, 70,130,200, 4,133,130, 0, 0,134,194, 64, 5,134,130, 73, 5,197,130,
- 0, 0,198,194,192, 5,198, 2,201, 5, 5,131, 0, 0, 6,195, 64, 6, 6,195,
- 71, 6, 69,131, 0, 0, 70,195,192, 6, 70, 67,198, 6, 9,130,203,150, 9, 2,
-204,151, 34, 66,128, 2,220,129, 0, 1, 5,130, 0, 0, 6,130, 74, 4, 74, 66,
-128, 1,133,130, 0, 0,134,194, 64, 5,134, 66, 69, 5,197,130, 0, 0,198,194,
-192, 5,198, 2,194, 5, 5,131, 0, 0, 6,195, 64, 6, 6, 3, 68, 6, 73,130,
-204,152, 98, 66,128, 1, 28,130, 0, 1,137,193,204,152,162, 65, 0, 1, 92,129,
- 0, 1, 9, 1, 77,137, 34, 65,128, 0,220,128, 0, 1,137, 64,205,152,137,128,
-205,150,137,192,205,151,162, 64,128, 0, 92,128, 0, 1, 9, 64,128,148, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,206, 0,138, 0,128, 0,197,128,
- 0, 0,198,128,206, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 65,206, 2,138, 1,
- 0, 0,197,129, 0, 0,198,193,206, 3, 10,130, 0, 0, 9, 2, 79,137, 9, 66,
-207,142,220, 1, 0, 1,162, 65, 0, 0, 92,129, 0, 1, 9,129, 79,137, 34, 65,
-128, 0,220,128, 0, 1, 5,129, 0, 0, 6,129, 78, 2, 74, 65,128, 0,133,129,
- 0, 0,134, 65, 78, 3,202, 1,128, 0, 5,130, 0, 0, 6,194, 78, 4, 74,130,
- 0, 0, 73,194, 79,137,133,130, 0, 0,134,194, 64, 5,134, 66, 65, 5, 73,130,
-130,142, 28,130, 0, 1, 69,130, 0, 0, 70,194,206, 4,138,130, 0, 0,137, 2,
- 80,137,137, 66,208,142, 92, 2, 0, 1,226, 65, 0, 0,156,129, 0, 1, 73,129,
- 80,137, 98, 65,128, 0, 28, 1, 0, 1,162, 64, 0, 0, 92,128, 0, 1, 9, 64,
- 0,156, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 0,209, 0,138, 64,
-129, 0,197,128, 0, 0,198,192,192, 1,198, 64,202, 1,137, 64, 81,137, 5,129,
- 0, 0, 6,193, 64, 2, 6, 1, 78, 2,137, 0,129,156,137,192, 66,163, 5,129,
- 0, 0, 6,193, 64, 2, 6, 65, 70, 2,137, 0,129,163,137, 64, 79,164,162, 64,
-128, 0, 92,128, 0, 1, 9, 64,128,161, 5,128, 0, 0, 6,192, 64, 0, 6,192,
- 80, 0,100,192, 1, 0, 9, 64,128,164, 5,128, 0, 0, 6,192, 64, 0, 69,128,
- 0, 0, 70, 0,209, 0,138, 0,129, 0,197,128, 0, 0,198,128,202, 1, 10,129,
- 0, 3, 69,129, 0, 0, 70, 65,196, 2,138, 65, 0, 0,137, 65, 81,137, 92,129,
- 0, 1,133,129, 0, 0,134,193, 82, 3,202, 65, 0, 0,201,193, 77,134,156,129,
- 0, 1,197,129, 0, 0,198,193,210, 3, 10, 66, 0, 0, 9,194, 77,134,220,129,
- 0, 1, 5,130, 0, 0, 6,194, 74, 4, 74, 2, 0, 0,133,130, 0, 0,134,130,
- 74, 5,202, 2,128, 0, 5,131, 0, 0, 6, 67, 68, 6, 74, 67, 0, 0, 73, 3,
- 83,137, 28,131, 0, 1, 69,131, 0, 0, 70, 67,196, 6,138, 67, 0, 0,137, 67,
- 83,137, 92, 3, 0, 1,226, 66, 0, 0,156, 2, 0, 1, 98, 66, 0, 0, 28,130,
- 0, 1, 69,130, 0, 0, 70,194,210, 4,138, 66, 0, 0,137,194, 77,134, 92,130,
- 0, 1,133,130, 0, 0,134,130, 70, 5,202,194, 0, 0,201,130, 83,137,201, 66,
-207,142,201,194, 83,134,156,130, 0, 1, 9, 1,212,150, 9, 65,205,152, 34, 65,
- 0, 3,220,128, 0, 1,137,128,212,168,137,128,212,169,137,128, 84,170,137, 64,
- 85,137,162, 64,128, 0, 92,128, 0, 1, 9, 64, 0,165, 5,128, 0, 0, 6,192,
- 64, 0, 6,192, 80, 0, 11,128, 85, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192,
- 85, 0, 69,128, 0, 0, 70,192,192, 0, 70, 0,194, 0, 28, 64, 0, 1, 5,128,
- 0, 0, 6, 0, 86, 0, 28, 64,128, 0, 5,128, 0, 0, 6,192, 64, 0, 6,192,
- 80, 0, 11, 64, 86, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, 64, 0, 6,128,
- 82, 0, 11, 64, 86, 0, 28, 64, 0, 1, 30, 0,128, 0, 90, 0, 0, 0, 4, 8,
- 0, 0, 0, 0, 0, 0, 0,114,101,113,117,105,114,101, 0, 4, 7, 0, 0, 0,
- 0, 0, 0, 0,105,117,112,108,117, 97, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,
-105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101,
- 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116,116, 97, 98,108,101,
- 0, 4, 19, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116, 95,118,101,114,115,
-105,111,110, 95,105,110,102,111, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,
-115,116,102,105,108,101,110, 97,109,101, 0, 0, 4, 7, 0, 0, 0, 0, 0, 0,
- 0,109,108, 67,111,100,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0,109,117,108,
-116,105,108,105,110,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,101,120,112, 97,
-110,100, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 89, 69, 83, 0, 4, 5, 0, 0,
- 0, 0, 0, 0, 0,115,105,122,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 50,
- 48, 48,120, 49, 50, 48, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,102,111,110,116,
- 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79,
- 82, 77, 65, 76, 95, 49, 48, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108,
- 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,108, 97,
- 98,101,108, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,116,105,116,108,101, 0, 4,
- 4, 0, 0, 0, 0, 0, 0, 0, 48, 58, 48, 0, 4, 4, 0, 0, 0, 0, 0, 0,
- 0, 53, 48,120, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,108,
-101, 78, 97,109,101, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11, 0, 0,
- 0, 0, 0, 0, 0, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0, 4, 9, 0, 0,
- 0, 0, 0, 0, 0, 99, 97,114,101,116, 95, 99, 98, 0, 4, 11, 0, 0, 0, 0,
- 0, 0, 0, 98,117,116, 69,120,101, 99,117,116,101, 0, 4, 7, 0, 0, 0, 0,
- 0, 0, 0, 98,117,116,116,111,110, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 53,
- 48,120, 49, 53, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 69,120,101, 99,117,116,
-101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 97, 99,116,105,111,110, 0, 4, 39,
- 0, 0, 0, 0, 0, 0, 0,105,117,112, 46,100,111,115,116,114,105,110,103, 40,
-105,117,112, 46, 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118,
- 97,108,117,101, 41, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 98,117,116, 67,108,
-101, 97,114, 67,111,109,109, 97,110,100,115, 0, 4, 6, 0, 0, 0, 0, 0, 0,
- 0, 67,108,101, 97,114, 0, 4, 96, 0, 0, 0, 0, 0, 0, 0,105,117,112, 46,
- 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, 97,108,117,101,
- 61, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 98,108,
- 70,105,108,101, 78, 97,109,101, 46,116,105,116,108,101, 32, 61, 32, 39, 39, 32,
- 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 97,115,116,102,105,108,
-101,110, 97,109,101, 32, 61, 32,110,105,108, 0, 4, 12, 0, 0, 0, 0, 0, 0,
- 0, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 4, 8, 0, 0, 0, 0, 0,
- 0, 0, 76,111, 97,100, 46, 46, 46, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 98,
-117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 11, 0, 0, 0, 0, 0,
- 0, 0, 83, 97,118,101, 32, 65,115, 46, 46, 46, 0, 4, 12, 0, 0, 0, 0, 0,
- 0, 0, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 4, 5, 0, 0, 0, 0,
- 0, 0, 0, 83, 97,118,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,
-100, 70,105,108,101, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,118, 98,120, 67,111,
-110,115,111,108,101, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,118, 98,111,120, 0,
- 4, 6, 0, 0, 0, 0, 0, 0, 0,102,114, 97,109,101, 0, 4, 5, 0, 0, 0,
- 0, 0, 0, 0,104, 98,111,120, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109, 97,
-114,103,105,110, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 48,120, 48, 0, 4, 4,
- 0, 0, 0, 0, 0, 0, 0,103, 97,112, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,
- 49, 48, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 97,108,105,103,110,109,101,110,
-116, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 65, 82, 73, 71, 72, 84, 0, 4, 5,
- 0, 0, 0, 0, 0, 0, 0, 65, 84, 79, 80, 0, 4, 9, 0, 0, 0, 0, 0, 0,
- 0, 67,111,109,109, 97,110,100,115, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 65,
- 67, 69, 78, 84, 69, 82, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 53,120, 53, 0,
- 4, 2, 0, 0, 0, 0, 0, 0, 0, 53, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,
-109,110,117, 77, 97,105,110, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,109,101,110,
-117, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,115,117, 98,109,101,110,117, 0, 4,
- 5, 0, 0, 0, 0, 0, 0, 0,105,116,101,109, 0, 4, 5, 0, 0, 0, 0, 0,
- 0, 0, 69,120,105,116, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0,114,101,116,117,
-114,110, 32,105,117,112, 46, 67, 76, 79, 83, 69, 0, 4, 5, 0, 0, 0, 0, 0,
- 0, 0, 70,105,108,101, 0, 4, 22, 0, 0, 0, 0, 0, 0, 0, 80,114,105,110,
-116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, 46, 46, 46, 0, 4, 9,
- 0, 0, 0, 0, 0, 0, 0, 65, 98,111,117,116, 46, 46, 46, 0, 4, 51, 0, 0,
- 0, 0, 0, 0, 0,105,117,112, 46, 99,111,110,115,111,108,101, 46,100,108,103,
- 65, 98,111,117,116, 58,112,111,112,117,112, 40,105,117,112, 46, 67, 69, 78, 84,
- 69, 82, 44, 32,105,117,112, 46, 67, 69, 78, 84, 69, 82, 41, 0, 4, 5, 0, 0,
- 0, 0, 0, 0, 0, 72,101,108,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,
-108,103, 77, 97,105,110, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,100,105, 97,108,
-111,103, 0, 4, 15, 0, 0, 0, 0, 0, 0, 0, 73,117,112, 76,117, 97, 32, 67,
-111,110,115,111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,100,114, 97,103,
-100,114,111,112, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,100,101,102, 97,117,108,
-116,101,110,116,101,114, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115,
-101, 95, 99, 98, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,100,114,111,112,102,105,
-108,101,115, 95, 99, 98, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,100,108,103, 65,
- 98,111,117,116, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,102,105,108,108, 0, 4,
- 16, 0, 0, 0, 0, 0, 0, 0, 84,101, 99,103,114, 97,102, 47, 80, 85, 67, 45,
- 82,105,111, 0, 4, 23, 0, 0, 0, 0, 0, 0, 0,105,117,112, 64,116,101, 99,
-103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,114, 0, 4, 3, 0, 0,
- 0, 0, 0, 0, 0, 79, 75, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 53, 48, 88,
- 50, 48, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 49, 48,120, 49, 48, 0, 4, 7,
- 0, 0, 0, 0, 0, 0, 0,109, 97,120, 98,111,120, 0, 4, 3, 0, 0, 0, 0,
- 0, 0, 0, 78, 79, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,105,110, 98,111,
-120, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,114,101,115,105,122,101, 0, 4, 6,
- 0, 0, 0, 0, 0, 0, 0, 65, 98,111,117,116, 0, 4, 5, 0, 0, 0, 0, 0,
- 0, 0,115,104,111,119, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 83,101,116, 70,
-111, 99,117,115, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 77, 97,105,110, 76,111,
-111,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111,121, 0,
- 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0,
- 0, 1, 0, 8, 30, 0, 0, 0, 69, 0, 0, 0,128, 0, 0, 0,195, 0,128, 1,
- 92,192,128, 1,197, 64, 0, 0, 1,129, 0, 0,220, 64, 0, 1, 90, 0, 0, 0,
- 22, 0, 4,128,197, 64, 0, 0, 5,193, 0, 0, 64, 1,128, 0, 28,129, 0, 1,
- 65, 1, 1, 0,133,193, 0, 0,192, 1, 0, 1,156,129, 0, 1, 21,129, 1, 2,
-220, 64, 0, 1,197, 0, 0, 0, 0, 1, 0, 0, 64, 1,128, 0,220,192,128, 1,
-128, 0, 0, 2, 64, 0,128, 1, 22, 0,251,127,197, 64, 0, 0, 1, 65, 1, 0,
-220, 64, 0, 1, 30, 0,128, 0, 6, 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0,
- 0,110,101,120,116, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116,
- 0, 4, 21, 0, 0, 0, 0, 0, 0, 0, 45, 45,112,114,105,110,116,116, 97, 98,
-108,101, 32, 83,116, 97,114,116, 45, 45, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,
-116,111,115,116,114,105,110,103, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 61, 0,
- 4, 19, 0, 0, 0, 0, 0, 0, 0, 45, 45,112,114,105,110,116,116, 97, 98,108,
-101, 32, 69,110,100, 45, 45, 0, 0, 0, 0, 0, 30, 0, 0, 0, 8, 0, 0, 0,
- 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0,
- 9, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0,
- 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0,
- 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0,
- 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0,
- 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0, 0, 0, 29, 0, 0, 0, 2, 0,
- 0, 0, 0, 0, 0, 0,110, 0, 4, 0, 0, 0, 29, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0,118, 0, 4, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 5,112, 0,
- 0, 0, 5, 0, 0, 0, 26, 0, 0, 0, 22, 0, 2,128, 5, 64, 0, 0, 65,128,
- 0, 0,133, 0, 0, 0,134,192, 64, 1,193, 0, 1, 0, 5, 1, 0, 0, 6, 65,
- 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5,128, 1, 0, 26, 0, 0, 0, 22, 0,
- 2,128, 5, 64, 0, 0, 65,192, 1, 0,133,128, 1, 0,134,192, 64, 1,193, 0,
- 1, 0, 5,129, 1, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64,
- 0, 0, 65, 0, 2, 0,133, 64, 2, 0,134,192, 64, 1,193, 0, 1, 0, 5, 65,
- 2, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,128,
- 2, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 2, 0, 28, 64, 0, 1, 5, 64,
- 0, 0, 65, 0, 3, 0,133, 64, 2, 0,134, 64, 67, 1,193,128, 3, 0,156,128,
- 0, 1, 85,128,128, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 3, 0,133, 64,
- 2, 0,134, 64, 67, 1,193, 0, 4, 0,156,128, 0, 1, 85,128,128, 0, 28, 64,
- 0, 1, 5, 64, 2, 0, 6, 64, 67, 0, 65, 64, 4, 0, 28,128, 0, 1, 26, 0,
- 0, 0, 22,192, 0,128, 69, 64, 0, 0,129,128, 4, 0,192, 0, 0, 0, 92, 64,
-128, 1, 69, 64, 0, 0,129,192, 4, 0,197, 64, 2, 0,198, 64,195, 1, 1, 1,
- 5, 0,220,128, 0, 1,149,192, 0, 1, 92, 64, 0, 1, 69, 64, 0, 0,129, 64,
- 5, 0,197, 64, 2, 0,198, 64,195, 1, 1,129, 5, 0,220,128, 0, 1,149,192,
- 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70,192,197, 0, 90, 0, 0, 0, 22, 64,
- 1,128, 69, 64, 0, 0,129, 0, 6, 0,197, 64, 2, 0,198,192,197, 1,149,192,
- 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70, 64,198, 0, 90, 0, 0, 0, 22, 64,
- 1,128, 69, 64, 0, 0,129,128, 6, 0,197, 64, 2, 0,198, 64,198, 1,149,192,
- 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70,192,198, 0, 90, 0, 0, 0, 22, 64,
- 1,128, 69, 64, 0, 0,129, 0, 7, 0,197, 64, 2, 0,198,192,198, 1,149,192,
- 0, 1, 92, 64, 0, 1, 30, 0,128, 0, 29, 0, 0, 0, 4, 3, 0, 0, 0, 0,
- 0, 0, 0,105,109, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116,
- 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 73, 77, 32, 0, 4, 9, 0, 0, 0, 0,
- 0, 0, 0, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 3, 0, 0, 0, 0, 0, 0,
- 0, 32, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 95, 67, 79, 80, 89, 82, 73,
- 71, 72, 84, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 99,100, 0, 4, 4, 0, 0,
- 0, 0, 0, 0, 0, 67, 68, 32, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 73, 85,
- 80, 32, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 73, 85, 80, 32, 73,
-110,102,111, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83,121,115,116,101,
-109, 58, 32, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 71,101,116, 71,108,111, 98,
- 97,108, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 83, 89, 83, 84, 69, 77, 0, 4,
- 19, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83,121,115,116,101,109, 32, 86,101,114,
-115,105,111,110, 58, 32, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 83, 89, 83, 84,
- 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0, 77,
- 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 4, 18, 0, 0, 0, 0, 0, 0,
- 0, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, 0, 4,
- 16, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122,
-101, 58, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 83, 67, 82, 69, 69, 78, 83,
- 73, 90, 69, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83, 99,114,101,101,
-110, 32, 68,101,112,116,104, 58, 32, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0, 83,
- 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0,
- 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 32,
- 32, 79,112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 4, 12, 0,
- 0, 0, 0, 0, 0, 0, 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 4, 20,
- 0, 0, 0, 0, 0, 0, 0, 32, 32, 79,112,101,110, 71, 76, 32, 82,101,110,100,
-101,114,101,114, 58, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 71, 76, 95, 86,
- 69, 82, 83, 73, 79, 78, 0, 4, 19, 0, 0, 0, 0, 0, 0, 0, 32, 32, 79,112,
-101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 0, 0, 0, 0,112,
- 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18,
- 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18,
- 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20,
- 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20,
- 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 22,
- 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22,
- 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 23,
- 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 25,
- 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25,
- 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26,
- 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26,
- 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 29,
- 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29,
- 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31,
- 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 32,
- 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32,
- 0, 0, 0, 32, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34,
- 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34,
- 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35,
- 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35,
- 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36,
- 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36,
- 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0,
- 0, 0, 0,109,111,116, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 3, 0, 7, 9,
- 0, 0, 0,197, 0, 0, 0,198, 64,192, 1,198,128,192, 1, 0, 1,128, 0, 65,
- 1, 1, 0,128, 1, 0, 1, 21,129, 1, 2,201, 0,129,129, 30, 0,128, 0, 5,
- 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0,
- 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 12, 0, 0, 0, 0, 0,
- 0, 0,108, 98,108, 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0, 0,
- 0, 0, 0,116,105,116,108,101, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 58, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0,
- 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0,
- 48, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108,102,
- 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,108,105,110,
- 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 99,111,108,
- 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 58, 0, 0, 0, 70, 0, 0, 0, 0, 1, 0, 4, 39, 0, 0, 0, 69, 0, 0,
- 0, 70, 64,192, 0, 70,128,192, 0, 23,192,192, 0, 22, 64, 1,128, 69, 0, 0,
- 0, 70, 64,192, 0, 70, 0,193, 0, 75, 64,193, 0, 92, 64, 0, 1, 22,128, 6,
-128, 69,192, 1, 0, 70, 0,194, 0,133, 0, 0, 0,134, 64, 64, 1,134,128, 64,
- 1,193, 64, 2, 0, 92,128,128, 1, 71,128, 1, 0, 69,128, 1, 0, 90, 0, 0,
- 0, 22,128, 2,128, 69,128, 1, 0, 75,128,194, 0,197, 0, 0, 0,198, 64,192,
- 1,198,192,194, 1,198, 0,195, 1, 92, 64,128, 1, 69,128, 1, 0, 75, 64,195,
- 0, 92, 64, 0, 1, 22, 0, 1,128, 69,128, 3, 0,129,192, 3, 0,197, 0, 4,
- 0,149,192, 0, 1, 92, 64, 0, 1, 30, 0,128, 0, 17, 0, 0, 0, 4, 4, 0,
- 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,
-111,110,115,111,108,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,115,116,
-102,105,108,101,110, 97,109,101, 0, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 98,
-117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, 0,
- 0, 0, 97, 99,116,105,111,110, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,110,101,
-119,102,105,108,101, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,105,111, 0, 4, 5,
- 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4, 3, 0, 0, 0, 0, 0, 0,
- 0,119, 43, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,119,114,105,116,101, 0, 4,
- 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,101, 0, 4, 6, 0, 0, 0,
- 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 99,
-108,111,115,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114,111,114, 0,
- 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101,
- 32,102,105,108,101, 32, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,
-110, 97,109,101, 0, 0, 0, 0, 0, 39, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0,
- 0, 59, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0,
- 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 62, 0, 0,
- 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0,
- 0, 62, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,
- 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,
- 0, 64, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0,
- 0, 65, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0,
- 0, 67, 0, 0, 0, 70, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0,
- 0,115,101,108,102, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 0, 1, 0, 7, 65, 0,
- 0, 0, 69, 0, 0, 0, 70, 64,192, 0,138, 64, 1, 0,137,192, 64,129,137, 64,
- 65,130,137,192, 65,131,137, 64, 66,132,197,192, 2, 0,137,192, 0,133, 92,128,
- 0, 1,139, 0,195, 0, 5, 1, 0, 0, 6, 65, 67, 2, 69, 1, 0, 0, 70, 65,
-195, 2,156, 64, 0, 2,134,128,195, 0,197, 0, 0, 0,198,192,195, 1, 6, 65,
-196, 0,201, 0, 1,136,197, 0, 0, 0,198,192,195, 1,198,128,196, 1, 5, 1,
- 0, 0, 6,193, 67, 2, 6, 1, 68, 2,201, 0, 1,130,203,192,196, 0,220, 64,
- 0, 1, 87, 0, 69, 1, 22,192, 7,128,197, 0, 0, 0,198,192,195, 1,198, 0,
-196, 1, 23, 64,197, 1, 22, 0, 1,128,197,128, 5, 0, 1,193, 5, 0, 69, 1,
- 6, 0, 21, 65, 1, 2,220, 64, 0, 1,197, 64, 6, 0,198,128,198, 1, 5, 1,
- 0, 0, 6,193, 67, 2, 6, 1, 68, 2, 65,193, 6, 0,220,128,128, 1,218, 0,
- 0, 0, 22, 64, 2,128, 11, 1,199, 1,133, 1, 0, 0,134,193, 67, 3,134, 65,
- 71, 3,134, 65, 68, 3, 28, 65,128, 1, 11,129,199, 1,128, 1,128, 1, 28, 65,
-128, 1, 22,128, 0,128, 5,129, 5, 0, 65,193, 7, 0, 28, 65, 0, 1, 30, 0,
-128, 0, 32, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4,
- 8, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0, 0,
- 0, 0, 0, 0, 0,100,105, 97,108,111,103,116,121,112,101, 0, 4, 5, 0, 0,
- 0, 0, 0, 0, 0, 83, 65, 86, 69, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,116,
-105,116,108,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 83, 97,118,101, 32, 70,
-105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,102,105,108,116,101,114, 0,
- 4, 4, 0, 0, 0, 0, 0, 0, 0, 42, 46, 42, 0, 4, 11, 0, 0, 0, 0, 0,
- 0, 0,102,105,108,116,101,114,105,110,102,111, 0, 4, 10, 0, 0, 0, 0, 0,
- 0, 0, 65,108,108, 32,102,105,108,101,115, 0, 4, 9, 0, 0, 0, 0, 0, 0,
- 0, 97,108,108,111,119,110,101,119, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,121,
-101,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,111,112,117,112, 0, 4, 5,
- 0, 0, 0, 0, 0, 0, 0, 76, 69, 70, 84, 0, 4, 7, 0, 0, 0, 0, 0, 0,
- 0,115,116, 97,116,117,115, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,
-115,111,108,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,115,116,102,105,
-108,101,110, 97,109,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,118, 97,108,117,
-101, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97,
-109,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111,121, 0,
- 4, 3, 0, 0, 0, 0, 0, 0, 0, 45, 49, 0, 0, 4, 6, 0, 0, 0, 0, 0,
- 0, 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,
-110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 4, 9, 0, 0, 0,
- 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 4, 3, 0, 0, 0, 0, 0,
- 0, 0,105,111, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4,
- 3, 0, 0, 0, 0, 0, 0, 0,119, 43, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,
-119,114,105,116,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,
-101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115,101, 0, 4, 17, 0,
- 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,
-108,101, 0, 0, 0, 0, 0, 65, 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 73,
- 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 74, 0, 0, 0, 74,
- 0, 0, 0, 74, 0, 0, 0, 73, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75,
- 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77,
- 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 78,
- 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78,
- 0, 0, 0, 79, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 80, 0, 0, 0, 81,
- 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 82,
- 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 84,
- 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84,
- 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 86,
- 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 87,
- 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 89, 0, 0, 0, 89,
- 0, 0, 0, 89, 0, 0, 0, 92, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0,
- 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 64, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0,102,100, 0, 10, 0, 0, 0, 64, 0, 0, 0, 7, 0, 0, 0, 0,
- 0, 0, 0,115,116, 97,116,117,115, 0, 17, 0, 0, 0, 64, 0, 0, 0, 8, 0,
- 0, 0, 0, 0, 0, 0,110,101,119,102,105,108,101, 0, 49, 0, 0, 0, 64, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0,104, 0,
- 0, 0, 0, 1, 0, 6, 34, 0, 0, 0, 69, 0, 0, 0, 70, 64,192, 0,128, 0,
- 0, 0,193,128, 0, 0, 92,128,128, 1, 23,192,192, 0, 22, 64, 1,128,133, 0,
- 1, 0,193, 64, 1, 0, 0, 1, 0, 0,213, 0,129, 1,156, 64, 0, 1, 22,192,
- 4,128,133,128, 1, 0,134,192, 65, 1,134, 0, 66, 1,203,128,194, 0, 65,193,
- 2, 0,220,128,128, 1,137,192,128,132,139, 0,195, 0, 0, 1,128, 0,156, 64,
-128, 1,133,128, 1, 0,134,192, 65, 1,137, 0,128,134,133,128, 1, 0,134,192,
- 65, 1,134,128, 67, 1,197,128, 1, 0,198,192,193, 1,198, 64,195, 1,137,192,
-128,135, 30, 0,128, 0, 16, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,105,
-111, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4, 2, 0, 0,
- 0, 0, 0, 0, 0,114, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114,
-111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32,108,
-111, 97,100, 32,102,105,108,101, 32, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,
-117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0,
- 4, 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,101, 0, 4, 6, 0, 0,
- 0, 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,
-114,101, 97,100, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 42, 97, 0, 4, 6, 0,
- 0, 0, 0, 0, 0, 0, 99,108,111,115,101, 0, 4, 13, 0, 0, 0, 0, 0, 0,
- 0,108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 4, 12, 0, 0, 0, 0,
- 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, 6, 0, 0, 0,
- 0, 0, 0, 0,116,105,116,108,101, 0, 0, 0, 0, 0, 34, 0, 0, 0, 95, 0,
- 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 96, 0,
- 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0,
- 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0,
- 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0,100, 0,
- 0, 0,100, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0,101, 0, 0, 0,101, 0,
- 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0,
- 0, 0,102, 0, 0, 0,102, 0, 0, 0,104, 0, 0, 0, 2, 0, 0, 0, 9, 0,
- 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 33,
- 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,110,101,119,102,105,108,101, 0, 5,
- 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,
- 0, 0, 0,121, 0, 0, 0, 0, 1, 0, 7, 37, 0, 0, 0, 69, 0, 0, 0, 70,
- 64,192, 0,138, 64, 1, 0,137,192, 64,129,137, 64, 65,130,137,192, 65,131,137,
- 64, 66,132,137,192, 66,133, 92,128, 0, 1,139, 0,195, 0, 5, 1, 0, 0, 6,
- 65, 67, 2, 69, 1, 0, 0, 70, 65,195, 2,156, 64, 0, 2,134,128,195, 0,198,
-192,195, 0, 11, 1,196, 0, 28, 65, 0, 1, 87, 64, 68, 1, 22, 64, 0,128, 23,
-128, 68, 1, 22,192, 1,128, 23,128, 68, 1, 22,128, 2,128, 5,193, 4, 0, 65,
- 1, 5, 0,128, 1,128, 1, 85,129,129, 2, 28, 65, 0, 1, 22, 0, 1,128, 5,
- 1, 0, 0, 6, 65, 69, 2, 6,129, 69, 2, 64, 1,128, 1, 28, 65, 0, 1, 30,
- 0,128, 0, 23, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0,
- 4, 8, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0,
- 0, 0, 0, 0, 0, 0,100,105, 97,108,111,103,116,121,112,101, 0, 4, 5, 0,
- 0, 0, 0, 0, 0, 0, 79, 80, 69, 78, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,
-116,105,116,108,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,100, 32,
- 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,102,105,108,116,101,114,
- 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 42, 46, 42, 0, 4, 11, 0, 0, 0, 0,
- 0, 0, 0,102,105,108,116,101,114,105,110,102,111, 0, 4, 10, 0, 0, 0, 0,
- 0, 0, 0, 65,108,108, 32, 70,105,108,101,115, 0, 4, 9, 0, 0, 0, 0, 0,
- 0, 0, 97,108,108,111,119,110,101,119, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,
- 78, 79, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,111,112,117,112, 0, 4, 7,
- 0, 0, 0, 0, 0, 0, 0, 67, 69, 78, 84, 69, 82, 0, 4, 7, 0, 0, 0, 0,
- 0, 0, 0,115,116, 97,116,117,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,118,
- 97,108,117,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111,
-121, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 45, 49, 0, 4, 2, 0, 0, 0, 0,
- 0, 0, 0, 49, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114,111,114, 0,
- 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32,108,111, 97,100,
- 32,102,105,108,101, 32, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,
-111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,100, 70,105,108,
-101, 0, 0, 0, 0, 0, 37, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,107, 0,
- 0, 0,107, 0, 0, 0,107, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0,108, 0,
- 0, 0,107, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0,
- 0, 0,109, 0, 0, 0,109, 0, 0, 0,110, 0, 0, 0,111, 0, 0, 0,112, 0,
- 0, 0,112, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0,
- 0, 0,115, 0, 0, 0,115, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,116, 0,
- 0, 0,116, 0, 0, 0,116, 0, 0, 0,117, 0, 0, 0,119, 0, 0, 0,119, 0,
- 0, 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, 0, 0,121, 0, 0, 0, 4, 0,
- 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 36,
- 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,102,100, 0, 9, 0, 0, 0, 36, 0,
- 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,115,116, 97,116,117,115, 0, 16, 0, 0,
- 0, 36, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109,
-101, 0, 17, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,166, 0, 0, 0,170, 0, 0, 0, 0, 5, 0, 7, 8, 0, 0, 0, 23, 0,
- 64, 1, 22, 0, 1,128, 69, 65, 0, 0, 70,129,192, 2, 70,193,192, 2,128, 1,
-128, 0, 92, 65, 0, 1, 30, 0,128, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0,
- 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 9, 0, 0, 0, 0, 0,
- 0, 0, 76,111, 97,100, 70,105,108,101, 0, 0, 0, 0, 0, 8, 0, 0, 0,167,
- 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,168,
- 0, 0, 0,168, 0, 0, 0,170, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0,
- 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0,
- 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 7, 0, 0,
- 0, 4, 0, 0, 0, 0, 0, 0, 0,110,117,109, 0, 0, 0, 0, 0, 7, 0, 0,
- 0, 2, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 7, 0, 0, 0, 2,
- 0, 0, 0, 0, 0, 0, 0,121, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0,
- 0, 90, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0,
- 0, 3, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0,
- 0, 7, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 17, 0, 0,
- 0, 41, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0,
- 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0,
- 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0,
- 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0,
- 0, 43, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0,
- 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0,
- 0, 44, 0, 0, 0, 44, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0,
- 0, 48, 0, 0, 0, 46, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0,
- 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0,
- 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0,
- 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0,
- 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0,
- 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0,
- 0, 54, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0,
- 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0,
- 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0,
- 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 58, 0, 0,
- 0, 58, 0, 0, 0, 58, 0, 0, 0, 70, 0, 0, 0, 58, 0, 0, 0, 72, 0, 0,
- 0, 72, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 72, 0, 0, 0, 94, 0, 0,
- 0, 94, 0, 0, 0,104, 0, 0, 0, 94, 0, 0, 0,106, 0, 0, 0,106, 0, 0,
- 0,106, 0, 0, 0,121, 0, 0, 0,106, 0, 0, 0,123, 0, 0, 0,123, 0, 0,
- 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,125, 0, 0, 0,125, 0, 0,
- 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0,
- 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0,
- 0,126, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,127, 0, 0, 0,127, 0, 0,
- 0,127, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,129, 0, 0,
- 0,129, 0, 0, 0,129, 0, 0, 0,130, 0, 0, 0,130, 0, 0, 0,130, 0, 0,
- 0,125, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0,
- 0,131, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0,132, 0, 0, 0,132, 0, 0,
- 0,133, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,134, 0, 0, 0,134, 0, 0,
- 0,131, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0,125, 0, 0, 0,135, 0, 0,
- 0,135, 0, 0, 0,125, 0, 0, 0,136, 0, 0, 0,136, 0, 0, 0,136, 0, 0,
- 0,137, 0, 0, 0,124, 0, 0, 0,137, 0, 0, 0,141, 0, 0, 0,141, 0, 0,
- 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,143, 0, 0, 0,143, 0, 0,
- 0,143, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0,147, 0, 0,
- 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0,
- 0,148, 0, 0, 0,146, 0, 0, 0,148, 0, 0, 0,149, 0, 0, 0,144, 0, 0,
- 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0,
- 0,150, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0,
- 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0,
- 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0,
- 0,153, 0, 0, 0,154, 0, 0, 0,151, 0, 0, 0,154, 0, 0, 0,154, 0, 0,
- 0,150, 0, 0, 0,155, 0, 0, 0,142, 0, 0, 0,155, 0, 0, 0,159, 0, 0,
- 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0,
- 0,159, 0, 0, 0,159, 0, 0, 0,160, 0, 0, 0,161, 0, 0, 0,161, 0, 0,
- 0,161, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0,163, 0, 0, 0,163, 0, 0,
- 0,163, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,164, 0, 0, 0,159, 0, 0,
- 0,164, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0,170, 0, 0,
- 0,166, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,174, 0, 0,
- 0,174, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0,178, 0, 0,
- 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,179, 0, 0,
- 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,180, 0, 0,
- 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,181, 0, 0,
- 0,181, 0, 0, 0,181, 0, 0, 0,183, 0, 0, 0,183, 0, 0, 0,183, 0, 0,
- 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0,
- 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0,
- 0,187, 0, 0, 0,184, 0, 0, 0,188, 0, 0, 0,182, 0, 0, 0,189, 0, 0,
- 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,190, 0, 0,
- 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0,
- 0,190, 0, 0, 0,191, 0, 0, 0,191, 0, 0, 0,192, 0, 0, 0,177, 0, 0,
- 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,194, 0, 0,
- 0,175, 0, 0, 0,194, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,198, 0, 0,
- 0,198, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0,
- 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,201, 0, 0, 0,201, 0, 0,
- 0,201, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,203, 0, 0,
- 0,203, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0,
- 0,204, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-};
-
- if (luaL_loadbuffer(L,(const char*)B1,sizeof(B1),"../obj/iuplua51/console5_be64.lo")==0) lua_call(L, 0, 0);
-}
diff --git a/iup/srcconsole/loh/console5_le64.loh b/iup/srcconsole/loh/console5_le64.loh
deleted file mode 100755
index 083405d..0000000
--- a/iup/srcconsole/loh/console5_le64.loh
+++ /dev/null
@@ -1,524 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- if (luaL_loadfile(L,"../obj/iuplua51/console5_le64.lo")==0) lua_call(L, 0, 0);
-*/
-/* ../obj/iuplua51/console5_le64.lo */
-static const unsigned char B1[]={
- 27, 76,117, 97, 81, 0, 1, 4, 8, 4, 8, 0, 14, 0, 0, 0, 0, 0, 0, 0,
- 64, 99,111,110,115,111,108,101, 53, 46,108,117, 97, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 15, 90, 1, 0, 0, 5, 0, 0, 0, 65, 64, 0, 0, 28, 64,
- 0, 1, 5,128, 0, 0, 74, 0, 0, 0, 9, 64,128,129, 5,128, 0, 0, 6,192,
- 64, 0,100, 0, 0, 0, 9, 64, 0,130, 5,128, 0, 0, 6,192, 64, 0,100, 64,
- 0, 0, 9, 64,128,130, 5,128, 0, 0, 6,192, 64, 0, 9,192, 65,131, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,194, 0,138,192, 0, 0,137,192,
- 66,133,137, 64, 67,134,137,192, 67,135, 92,128, 0, 1, 9, 64, 0,132, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,128, 0, 0,137,192,
- 68,137,137, 0, 69,134, 92,128, 0, 1, 9, 64, 0,136, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,192, 0, 0,137,128, 69,137,137, 0,
- 69,134,137,192, 69,133, 92,128, 0, 1, 9, 64,128,138, 5,128, 0, 0, 6,192,
- 64, 0, 6, 0, 66, 0,100,128, 0, 0, 9, 64, 0,140, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0,
- 71,137,137,128,199,142, 92,128, 0, 1, 9, 64,128,140, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0,
- 72,137,137, 64,200,142, 92,128, 0, 1, 9, 64,128,143, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137,192,
- 72,137, 92,128, 0, 1, 9, 64, 0,145, 5,128, 0, 0, 6,192, 64, 0, 69,128,
- 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137, 64, 73,137, 92,128,
- 0, 1, 9, 64, 0,146, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128,
-198, 0,138,128, 0, 0,137,192, 70,134,137,192, 73,137, 92,128, 0, 1, 9, 64,
- 0,147, 5,128, 0, 0, 6,192, 64, 0, 6,128, 73, 0,100,192, 0, 0, 9, 64,
-128,142, 5,128, 0, 0, 6,192, 64, 0, 6, 0, 73, 0,100, 0, 1, 0, 9, 64,
-128,142, 5,128, 0, 0, 6,192, 64, 0,100, 64, 1, 0, 9, 64, 0,148, 5,128,
- 0, 0, 6,192, 64, 0, 6,128, 72, 0,100,128, 1, 0, 9, 64,128,142, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128,202, 0,138,192,128, 0,197,128,
- 0, 0,198,192,202, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 1,203, 2,138, 65,
- 0, 1,197,129, 0, 0,198,129,202, 3, 10,130,128, 2, 69,130, 0, 0, 70,194,
-192, 4, 70,130,200, 4,133,130, 0, 0,134,194, 64, 5,134,130, 73, 5,197,130,
- 0, 0,198,194,192, 5,198, 2,201, 5, 5,131, 0, 0, 6,195, 64, 6, 6,195,
- 71, 6, 69,131, 0, 0, 70,195,192, 6, 70, 67,198, 6, 9,130,203,150, 9, 2,
-204,151, 34, 66,128, 2,220,129, 0, 1, 5,130, 0, 0, 6,130, 74, 4, 74, 66,
-128, 1,133,130, 0, 0,134,194, 64, 5,134, 66, 69, 5,197,130, 0, 0,198,194,
-192, 5,198, 2,194, 5, 5,131, 0, 0, 6,195, 64, 6, 6, 3, 68, 6, 73,130,
-204,152, 98, 66,128, 1, 28,130, 0, 1,137,193,204,152,162, 65, 0, 1, 92,129,
- 0, 1, 9, 1, 77,137, 34, 65,128, 0,220,128, 0, 1,137, 64,205,152,137,128,
-205,150,137,192,205,151,162, 64,128, 0, 92,128, 0, 1, 9, 64,128,148, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,206, 0,138, 0,128, 0,197,128,
- 0, 0,198,128,206, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 65,206, 2,138, 1,
- 0, 0,197,129, 0, 0,198,193,206, 3, 10,130, 0, 0, 9, 2, 79,137, 9, 66,
-207,142,220, 1, 0, 1,162, 65, 0, 0, 92,129, 0, 1, 9,129, 79,137, 34, 65,
-128, 0,220,128, 0, 1, 5,129, 0, 0, 6,129, 78, 2, 74, 65,128, 0,133,129,
- 0, 0,134, 65, 78, 3,202, 1,128, 0, 5,130, 0, 0, 6,194, 78, 4, 74,130,
- 0, 0, 73,194, 79,137,133,130, 0, 0,134,194, 64, 5,134, 66, 65, 5, 73,130,
-130,142, 28,130, 0, 1, 69,130, 0, 0, 70,194,206, 4,138,130, 0, 0,137, 2,
- 80,137,137, 66,208,142, 92, 2, 0, 1,226, 65, 0, 0,156,129, 0, 1, 73,129,
- 80,137, 98, 65,128, 0, 28, 1, 0, 1,162, 64, 0, 0, 92,128, 0, 1, 9, 64,
- 0,156, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 0,209, 0,138, 64,
-129, 0,197,128, 0, 0,198,192,192, 1,198, 64,202, 1,137, 64, 81,137, 5,129,
- 0, 0, 6,193, 64, 2, 6, 1, 78, 2,137, 0,129,156,137,192, 66,163, 5,129,
- 0, 0, 6,193, 64, 2, 6, 65, 70, 2,137, 0,129,163,137, 64, 79,164,162, 64,
-128, 0, 92,128, 0, 1, 9, 64,128,161, 5,128, 0, 0, 6,192, 64, 0, 6,192,
- 80, 0,100,192, 1, 0, 9, 64,128,164, 5,128, 0, 0, 6,192, 64, 0, 69,128,
- 0, 0, 70, 0,209, 0,138, 0,129, 0,197,128, 0, 0,198,128,202, 1, 10,129,
- 0, 3, 69,129, 0, 0, 70, 65,196, 2,138, 65, 0, 0,137, 65, 81,137, 92,129,
- 0, 1,133,129, 0, 0,134,193, 82, 3,202, 65, 0, 0,201,193, 77,134,156,129,
- 0, 1,197,129, 0, 0,198,193,210, 3, 10, 66, 0, 0, 9,194, 77,134,220,129,
- 0, 1, 5,130, 0, 0, 6,194, 74, 4, 74, 2, 0, 0,133,130, 0, 0,134,130,
- 74, 5,202, 2,128, 0, 5,131, 0, 0, 6, 67, 68, 6, 74, 67, 0, 0, 73, 3,
- 83,137, 28,131, 0, 1, 69,131, 0, 0, 70, 67,196, 6,138, 67, 0, 0,137, 67,
- 83,137, 92, 3, 0, 1,226, 66, 0, 0,156, 2, 0, 1, 98, 66, 0, 0, 28,130,
- 0, 1, 69,130, 0, 0, 70,194,210, 4,138, 66, 0, 0,137,194, 77,134, 92,130,
- 0, 1,133,130, 0, 0,134,130, 70, 5,202,194, 0, 0,201,130, 83,137,201, 66,
-207,142,201,194, 83,134,156,130, 0, 1, 9, 1,212,150, 9, 65,205,152, 34, 65,
- 0, 3,220,128, 0, 1,137,128,212,168,137,128,212,169,137,128, 84,170,137, 64,
- 85,137,162, 64,128, 0, 92,128, 0, 1, 9, 64, 0,165, 5,128, 0, 0, 6,192,
- 64, 0, 6,192, 80, 0, 11,128, 85, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192,
- 85, 0, 69,128, 0, 0, 70,192,192, 0, 70, 0,194, 0, 28, 64, 0, 1, 5,128,
- 0, 0, 6, 0, 86, 0, 28, 64,128, 0, 5,128, 0, 0, 6,192, 64, 0, 6,192,
- 80, 0, 11, 64, 86, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, 64, 0, 6,128,
- 82, 0, 11, 64, 86, 0, 28, 64, 0, 1, 30, 0,128, 0, 90, 0, 0, 0, 4, 8,
- 0, 0, 0, 0, 0, 0, 0,114,101,113,117,105,114,101, 0, 4, 7, 0, 0, 0,
- 0, 0, 0, 0,105,117,112,108,117, 97, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,
-105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101,
- 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116,116, 97, 98,108,101,
- 0, 4, 19, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116, 95,118,101,114,115,
-105,111,110, 95,105,110,102,111, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,
-115,116,102,105,108,101,110, 97,109,101, 0, 0, 4, 7, 0, 0, 0, 0, 0, 0,
- 0,109,108, 67,111,100,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0,109,117,108,
-116,105,108,105,110,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,101,120,112, 97,
-110,100, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 89, 69, 83, 0, 4, 5, 0, 0,
- 0, 0, 0, 0, 0,115,105,122,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 50,
- 48, 48,120, 49, 50, 48, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,102,111,110,116,
- 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79,
- 82, 77, 65, 76, 95, 49, 48, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108,
- 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,108, 97,
- 98,101,108, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,116,105,116,108,101, 0, 4,
- 4, 0, 0, 0, 0, 0, 0, 0, 48, 58, 48, 0, 4, 4, 0, 0, 0, 0, 0, 0,
- 0, 53, 48,120, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,108,
-101, 78, 97,109,101, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11, 0, 0,
- 0, 0, 0, 0, 0, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0, 4, 9, 0, 0,
- 0, 0, 0, 0, 0, 99, 97,114,101,116, 95, 99, 98, 0, 4, 11, 0, 0, 0, 0,
- 0, 0, 0, 98,117,116, 69,120,101, 99,117,116,101, 0, 4, 7, 0, 0, 0, 0,
- 0, 0, 0, 98,117,116,116,111,110, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 53,
- 48,120, 49, 53, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 69,120,101, 99,117,116,
-101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 97, 99,116,105,111,110, 0, 4, 39,
- 0, 0, 0, 0, 0, 0, 0,105,117,112, 46,100,111,115,116,114,105,110,103, 40,
-105,117,112, 46, 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118,
- 97,108,117,101, 41, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 98,117,116, 67,108,
-101, 97,114, 67,111,109,109, 97,110,100,115, 0, 4, 6, 0, 0, 0, 0, 0, 0,
- 0, 67,108,101, 97,114, 0, 4, 96, 0, 0, 0, 0, 0, 0, 0,105,117,112, 46,
- 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, 97,108,117,101,
- 61, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 98,108,
- 70,105,108,101, 78, 97,109,101, 46,116,105,116,108,101, 32, 61, 32, 39, 39, 32,
- 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 97,115,116,102,105,108,
-101,110, 97,109,101, 32, 61, 32,110,105,108, 0, 4, 12, 0, 0, 0, 0, 0, 0,
- 0, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 4, 8, 0, 0, 0, 0, 0,
- 0, 0, 76,111, 97,100, 46, 46, 46, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 98,
-117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 11, 0, 0, 0, 0, 0,
- 0, 0, 83, 97,118,101, 32, 65,115, 46, 46, 46, 0, 4, 12, 0, 0, 0, 0, 0,
- 0, 0, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 4, 5, 0, 0, 0, 0,
- 0, 0, 0, 83, 97,118,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,
-100, 70,105,108,101, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,118, 98,120, 67,111,
-110,115,111,108,101, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,118, 98,111,120, 0,
- 4, 6, 0, 0, 0, 0, 0, 0, 0,102,114, 97,109,101, 0, 4, 5, 0, 0, 0,
- 0, 0, 0, 0,104, 98,111,120, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109, 97,
-114,103,105,110, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 48,120, 48, 0, 4, 4,
- 0, 0, 0, 0, 0, 0, 0,103, 97,112, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,
- 49, 48, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 97,108,105,103,110,109,101,110,
-116, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 65, 82, 73, 71, 72, 84, 0, 4, 5,
- 0, 0, 0, 0, 0, 0, 0, 65, 84, 79, 80, 0, 4, 9, 0, 0, 0, 0, 0, 0,
- 0, 67,111,109,109, 97,110,100,115, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 65,
- 67, 69, 78, 84, 69, 82, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 53,120, 53, 0,
- 4, 2, 0, 0, 0, 0, 0, 0, 0, 53, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,
-109,110,117, 77, 97,105,110, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,109,101,110,
-117, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,115,117, 98,109,101,110,117, 0, 4,
- 5, 0, 0, 0, 0, 0, 0, 0,105,116,101,109, 0, 4, 5, 0, 0, 0, 0, 0,
- 0, 0, 69,120,105,116, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0,114,101,116,117,
-114,110, 32,105,117,112, 46, 67, 76, 79, 83, 69, 0, 4, 5, 0, 0, 0, 0, 0,
- 0, 0, 70,105,108,101, 0, 4, 22, 0, 0, 0, 0, 0, 0, 0, 80,114,105,110,
-116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, 46, 46, 46, 0, 4, 9,
- 0, 0, 0, 0, 0, 0, 0, 65, 98,111,117,116, 46, 46, 46, 0, 4, 51, 0, 0,
- 0, 0, 0, 0, 0,105,117,112, 46, 99,111,110,115,111,108,101, 46,100,108,103,
- 65, 98,111,117,116, 58,112,111,112,117,112, 40,105,117,112, 46, 67, 69, 78, 84,
- 69, 82, 44, 32,105,117,112, 46, 67, 69, 78, 84, 69, 82, 41, 0, 4, 5, 0, 0,
- 0, 0, 0, 0, 0, 72,101,108,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,
-108,103, 77, 97,105,110, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,100,105, 97,108,
-111,103, 0, 4, 15, 0, 0, 0, 0, 0, 0, 0, 73,117,112, 76,117, 97, 32, 67,
-111,110,115,111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,100,114, 97,103,
-100,114,111,112, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,100,101,102, 97,117,108,
-116,101,110,116,101,114, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115,
-101, 95, 99, 98, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,100,114,111,112,102,105,
-108,101,115, 95, 99, 98, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,100,108,103, 65,
- 98,111,117,116, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,102,105,108,108, 0, 4,
- 16, 0, 0, 0, 0, 0, 0, 0, 84,101, 99,103,114, 97,102, 47, 80, 85, 67, 45,
- 82,105,111, 0, 4, 23, 0, 0, 0, 0, 0, 0, 0,105,117,112, 64,116,101, 99,
-103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,114, 0, 4, 3, 0, 0,
- 0, 0, 0, 0, 0, 79, 75, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 53, 48, 88,
- 50, 48, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 49, 48,120, 49, 48, 0, 4, 7,
- 0, 0, 0, 0, 0, 0, 0,109, 97,120, 98,111,120, 0, 4, 3, 0, 0, 0, 0,
- 0, 0, 0, 78, 79, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,105,110, 98,111,
-120, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,114,101,115,105,122,101, 0, 4, 6,
- 0, 0, 0, 0, 0, 0, 0, 65, 98,111,117,116, 0, 4, 5, 0, 0, 0, 0, 0,
- 0, 0,115,104,111,119, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 83,101,116, 70,
-111, 99,117,115, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 77, 97,105,110, 76,111,
-111,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111,121, 0,
- 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0,
- 0, 1, 0, 8, 30, 0, 0, 0, 69, 0, 0, 0,128, 0, 0, 0,195, 0,128, 1,
- 92,192,128, 1,197, 64, 0, 0, 1,129, 0, 0,220, 64, 0, 1, 90, 0, 0, 0,
- 22, 0, 4,128,197, 64, 0, 0, 5,193, 0, 0, 64, 1,128, 0, 28,129, 0, 1,
- 65, 1, 1, 0,133,193, 0, 0,192, 1, 0, 1,156,129, 0, 1, 21,129, 1, 2,
-220, 64, 0, 1,197, 0, 0, 0, 0, 1, 0, 0, 64, 1,128, 0,220,192,128, 1,
-128, 0, 0, 2, 64, 0,128, 1, 22, 0,251,127,197, 64, 0, 0, 1, 65, 1, 0,
-220, 64, 0, 1, 30, 0,128, 0, 6, 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0,
- 0,110,101,120,116, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116,
- 0, 4, 21, 0, 0, 0, 0, 0, 0, 0, 45, 45,112,114,105,110,116,116, 97, 98,
-108,101, 32, 83,116, 97,114,116, 45, 45, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,
-116,111,115,116,114,105,110,103, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 61, 0,
- 4, 19, 0, 0, 0, 0, 0, 0, 0, 45, 45,112,114,105,110,116,116, 97, 98,108,
-101, 32, 69,110,100, 45, 45, 0, 0, 0, 0, 0, 30, 0, 0, 0, 8, 0, 0, 0,
- 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0,
- 9, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0,
- 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0,
- 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0,
- 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0,
- 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0, 0, 0, 29, 0, 0, 0, 2, 0,
- 0, 0, 0, 0, 0, 0,110, 0, 4, 0, 0, 0, 29, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0,118, 0, 4, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 5,112, 0,
- 0, 0, 5, 0, 0, 0, 26, 0, 0, 0, 22, 0, 2,128, 5, 64, 0, 0, 65,128,
- 0, 0,133, 0, 0, 0,134,192, 64, 1,193, 0, 1, 0, 5, 1, 0, 0, 6, 65,
- 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5,128, 1, 0, 26, 0, 0, 0, 22, 0,
- 2,128, 5, 64, 0, 0, 65,192, 1, 0,133,128, 1, 0,134,192, 64, 1,193, 0,
- 1, 0, 5,129, 1, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64,
- 0, 0, 65, 0, 2, 0,133, 64, 2, 0,134,192, 64, 1,193, 0, 1, 0, 5, 65,
- 2, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,128,
- 2, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 2, 0, 28, 64, 0, 1, 5, 64,
- 0, 0, 65, 0, 3, 0,133, 64, 2, 0,134, 64, 67, 1,193,128, 3, 0,156,128,
- 0, 1, 85,128,128, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 3, 0,133, 64,
- 2, 0,134, 64, 67, 1,193, 0, 4, 0,156,128, 0, 1, 85,128,128, 0, 28, 64,
- 0, 1, 5, 64, 2, 0, 6, 64, 67, 0, 65, 64, 4, 0, 28,128, 0, 1, 26, 0,
- 0, 0, 22,192, 0,128, 69, 64, 0, 0,129,128, 4, 0,192, 0, 0, 0, 92, 64,
-128, 1, 69, 64, 0, 0,129,192, 4, 0,197, 64, 2, 0,198, 64,195, 1, 1, 1,
- 5, 0,220,128, 0, 1,149,192, 0, 1, 92, 64, 0, 1, 69, 64, 0, 0,129, 64,
- 5, 0,197, 64, 2, 0,198, 64,195, 1, 1,129, 5, 0,220,128, 0, 1,149,192,
- 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70,192,197, 0, 90, 0, 0, 0, 22, 64,
- 1,128, 69, 64, 0, 0,129, 0, 6, 0,197, 64, 2, 0,198,192,197, 1,149,192,
- 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70, 64,198, 0, 90, 0, 0, 0, 22, 64,
- 1,128, 69, 64, 0, 0,129,128, 6, 0,197, 64, 2, 0,198, 64,198, 1,149,192,
- 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70,192,198, 0, 90, 0, 0, 0, 22, 64,
- 1,128, 69, 64, 0, 0,129, 0, 7, 0,197, 64, 2, 0,198,192,198, 1,149,192,
- 0, 1, 92, 64, 0, 1, 30, 0,128, 0, 29, 0, 0, 0, 4, 3, 0, 0, 0, 0,
- 0, 0, 0,105,109, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116,
- 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 73, 77, 32, 0, 4, 9, 0, 0, 0, 0,
- 0, 0, 0, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 3, 0, 0, 0, 0, 0, 0,
- 0, 32, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 95, 67, 79, 80, 89, 82, 73,
- 71, 72, 84, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 99,100, 0, 4, 4, 0, 0,
- 0, 0, 0, 0, 0, 67, 68, 32, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 73, 85,
- 80, 32, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 73, 85, 80, 32, 73,
-110,102,111, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83,121,115,116,101,
-109, 58, 32, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 71,101,116, 71,108,111, 98,
- 97,108, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 83, 89, 83, 84, 69, 77, 0, 4,
- 19, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83,121,115,116,101,109, 32, 86,101,114,
-115,105,111,110, 58, 32, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 83, 89, 83, 84,
- 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0, 77,
- 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 4, 18, 0, 0, 0, 0, 0, 0,
- 0, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, 0, 4,
- 16, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122,
-101, 58, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 83, 67, 82, 69, 69, 78, 83,
- 73, 90, 69, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83, 99,114,101,101,
-110, 32, 68,101,112,116,104, 58, 32, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0, 83,
- 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0,
- 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 32,
- 32, 79,112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 4, 12, 0,
- 0, 0, 0, 0, 0, 0, 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 4, 20,
- 0, 0, 0, 0, 0, 0, 0, 32, 32, 79,112,101,110, 71, 76, 32, 82,101,110,100,
-101,114,101,114, 58, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 71, 76, 95, 86,
- 69, 82, 83, 73, 79, 78, 0, 4, 19, 0, 0, 0, 0, 0, 0, 0, 32, 32, 79,112,
-101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 0, 0, 0, 0,112,
- 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18,
- 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18,
- 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20,
- 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20,
- 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 22,
- 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22,
- 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 23,
- 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 25,
- 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25,
- 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26,
- 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26,
- 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 29,
- 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29,
- 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31,
- 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 32,
- 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32,
- 0, 0, 0, 32, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34,
- 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34,
- 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35,
- 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35,
- 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36,
- 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36,
- 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0,
- 0, 0, 0,109,111,116, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 3, 0, 7, 9,
- 0, 0, 0,197, 0, 0, 0,198, 64,192, 1,198,128,192, 1, 0, 1,128, 0, 65,
- 1, 1, 0,128, 1, 0, 1, 21,129, 1, 2,201, 0,129,129, 30, 0,128, 0, 5,
- 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0,
- 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 12, 0, 0, 0, 0, 0,
- 0, 0,108, 98,108, 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0, 0,
- 0, 0, 0,116,105,116,108,101, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 58, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0,
- 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0,
- 48, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108,102,
- 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,108,105,110,
- 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 99,111,108,
- 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 58, 0, 0, 0, 70, 0, 0, 0, 0, 1, 0, 4, 39, 0, 0, 0, 69, 0, 0,
- 0, 70, 64,192, 0, 70,128,192, 0, 23,192,192, 0, 22, 64, 1,128, 69, 0, 0,
- 0, 70, 64,192, 0, 70, 0,193, 0, 75, 64,193, 0, 92, 64, 0, 1, 22,128, 6,
-128, 69,192, 1, 0, 70, 0,194, 0,133, 0, 0, 0,134, 64, 64, 1,134,128, 64,
- 1,193, 64, 2, 0, 92,128,128, 1, 71,128, 1, 0, 69,128, 1, 0, 90, 0, 0,
- 0, 22,128, 2,128, 69,128, 1, 0, 75,128,194, 0,197, 0, 0, 0,198, 64,192,
- 1,198,192,194, 1,198, 0,195, 1, 92, 64,128, 1, 69,128, 1, 0, 75, 64,195,
- 0, 92, 64, 0, 1, 22, 0, 1,128, 69,128, 3, 0,129,192, 3, 0,197, 0, 4,
- 0,149,192, 0, 1, 92, 64, 0, 1, 30, 0,128, 0, 17, 0, 0, 0, 4, 4, 0,
- 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,
-111,110,115,111,108,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,115,116,
-102,105,108,101,110, 97,109,101, 0, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 98,
-117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, 0,
- 0, 0, 97, 99,116,105,111,110, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,110,101,
-119,102,105,108,101, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,105,111, 0, 4, 5,
- 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4, 3, 0, 0, 0, 0, 0, 0,
- 0,119, 43, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,119,114,105,116,101, 0, 4,
- 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,101, 0, 4, 6, 0, 0, 0,
- 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 99,
-108,111,115,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114,111,114, 0,
- 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101,
- 32,102,105,108,101, 32, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,
-110, 97,109,101, 0, 0, 0, 0, 0, 39, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0,
- 0, 59, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0,
- 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 62, 0, 0,
- 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0,
- 0, 62, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,
- 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,
- 0, 64, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0,
- 0, 65, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0,
- 0, 67, 0, 0, 0, 70, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0,
- 0,115,101,108,102, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 0, 1, 0, 7, 65, 0,
- 0, 0, 69, 0, 0, 0, 70, 64,192, 0,138, 64, 1, 0,137,192, 64,129,137, 64,
- 65,130,137,192, 65,131,137, 64, 66,132,197,192, 2, 0,137,192, 0,133, 92,128,
- 0, 1,139, 0,195, 0, 5, 1, 0, 0, 6, 65, 67, 2, 69, 1, 0, 0, 70, 65,
-195, 2,156, 64, 0, 2,134,128,195, 0,197, 0, 0, 0,198,192,195, 1, 6, 65,
-196, 0,201, 0, 1,136,197, 0, 0, 0,198,192,195, 1,198,128,196, 1, 5, 1,
- 0, 0, 6,193, 67, 2, 6, 1, 68, 2,201, 0, 1,130,203,192,196, 0,220, 64,
- 0, 1, 87, 0, 69, 1, 22,192, 7,128,197, 0, 0, 0,198,192,195, 1,198, 0,
-196, 1, 23, 64,197, 1, 22, 0, 1,128,197,128, 5, 0, 1,193, 5, 0, 69, 1,
- 6, 0, 21, 65, 1, 2,220, 64, 0, 1,197, 64, 6, 0,198,128,198, 1, 5, 1,
- 0, 0, 6,193, 67, 2, 6, 1, 68, 2, 65,193, 6, 0,220,128,128, 1,218, 0,
- 0, 0, 22, 64, 2,128, 11, 1,199, 1,133, 1, 0, 0,134,193, 67, 3,134, 65,
- 71, 3,134, 65, 68, 3, 28, 65,128, 1, 11,129,199, 1,128, 1,128, 1, 28, 65,
-128, 1, 22,128, 0,128, 5,129, 5, 0, 65,193, 7, 0, 28, 65, 0, 1, 30, 0,
-128, 0, 32, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4,
- 8, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0, 0,
- 0, 0, 0, 0, 0,100,105, 97,108,111,103,116,121,112,101, 0, 4, 5, 0, 0,
- 0, 0, 0, 0, 0, 83, 65, 86, 69, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,116,
-105,116,108,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 83, 97,118,101, 32, 70,
-105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,102,105,108,116,101,114, 0,
- 4, 4, 0, 0, 0, 0, 0, 0, 0, 42, 46, 42, 0, 4, 11, 0, 0, 0, 0, 0,
- 0, 0,102,105,108,116,101,114,105,110,102,111, 0, 4, 10, 0, 0, 0, 0, 0,
- 0, 0, 65,108,108, 32,102,105,108,101,115, 0, 4, 9, 0, 0, 0, 0, 0, 0,
- 0, 97,108,108,111,119,110,101,119, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,121,
-101,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,111,112,117,112, 0, 4, 5,
- 0, 0, 0, 0, 0, 0, 0, 76, 69, 70, 84, 0, 4, 7, 0, 0, 0, 0, 0, 0,
- 0,115,116, 97,116,117,115, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,
-115,111,108,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,115,116,102,105,
-108,101,110, 97,109,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,118, 97,108,117,
-101, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97,
-109,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111,121, 0,
- 4, 3, 0, 0, 0, 0, 0, 0, 0, 45, 49, 0, 0, 4, 6, 0, 0, 0, 0, 0,
- 0, 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,
-110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 4, 9, 0, 0, 0,
- 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 4, 3, 0, 0, 0, 0, 0,
- 0, 0,105,111, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4,
- 3, 0, 0, 0, 0, 0, 0, 0,119, 43, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,
-119,114,105,116,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,
-101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115,101, 0, 4, 17, 0,
- 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,
-108,101, 0, 0, 0, 0, 0, 65, 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 73,
- 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 74, 0, 0, 0, 74,
- 0, 0, 0, 74, 0, 0, 0, 73, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75,
- 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77,
- 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 78,
- 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78,
- 0, 0, 0, 79, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 80, 0, 0, 0, 81,
- 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 82,
- 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 84,
- 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84,
- 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 86,
- 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 87,
- 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 89, 0, 0, 0, 89,
- 0, 0, 0, 89, 0, 0, 0, 92, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0,
- 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 64, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0,102,100, 0, 10, 0, 0, 0, 64, 0, 0, 0, 7, 0, 0, 0, 0,
- 0, 0, 0,115,116, 97,116,117,115, 0, 17, 0, 0, 0, 64, 0, 0, 0, 8, 0,
- 0, 0, 0, 0, 0, 0,110,101,119,102,105,108,101, 0, 49, 0, 0, 0, 64, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0,104, 0,
- 0, 0, 0, 1, 0, 6, 34, 0, 0, 0, 69, 0, 0, 0, 70, 64,192, 0,128, 0,
- 0, 0,193,128, 0, 0, 92,128,128, 1, 23,192,192, 0, 22, 64, 1,128,133, 0,
- 1, 0,193, 64, 1, 0, 0, 1, 0, 0,213, 0,129, 1,156, 64, 0, 1, 22,192,
- 4,128,133,128, 1, 0,134,192, 65, 1,134, 0, 66, 1,203,128,194, 0, 65,193,
- 2, 0,220,128,128, 1,137,192,128,132,139, 0,195, 0, 0, 1,128, 0,156, 64,
-128, 1,133,128, 1, 0,134,192, 65, 1,137, 0,128,134,133,128, 1, 0,134,192,
- 65, 1,134,128, 67, 1,197,128, 1, 0,198,192,193, 1,198, 64,195, 1,137,192,
-128,135, 30, 0,128, 0, 16, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,105,
-111, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4, 2, 0, 0,
- 0, 0, 0, 0, 0,114, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114,
-111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32,108,
-111, 97,100, 32,102,105,108,101, 32, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,
-117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0,
- 4, 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,101, 0, 4, 6, 0, 0,
- 0, 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,
-114,101, 97,100, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 42, 97, 0, 4, 6, 0,
- 0, 0, 0, 0, 0, 0, 99,108,111,115,101, 0, 4, 13, 0, 0, 0, 0, 0, 0,
- 0,108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 4, 12, 0, 0, 0, 0,
- 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, 6, 0, 0, 0,
- 0, 0, 0, 0,116,105,116,108,101, 0, 0, 0, 0, 0, 34, 0, 0, 0, 95, 0,
- 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 96, 0,
- 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0,
- 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0,
- 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0,100, 0,
- 0, 0,100, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0,101, 0, 0, 0,101, 0,
- 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0,
- 0, 0,102, 0, 0, 0,102, 0, 0, 0,104, 0, 0, 0, 2, 0, 0, 0, 9, 0,
- 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 33,
- 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,110,101,119,102,105,108,101, 0, 5,
- 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,
- 0, 0, 0,121, 0, 0, 0, 0, 1, 0, 7, 37, 0, 0, 0, 69, 0, 0, 0, 70,
- 64,192, 0,138, 64, 1, 0,137,192, 64,129,137, 64, 65,130,137,192, 65,131,137,
- 64, 66,132,137,192, 66,133, 92,128, 0, 1,139, 0,195, 0, 5, 1, 0, 0, 6,
- 65, 67, 2, 69, 1, 0, 0, 70, 65,195, 2,156, 64, 0, 2,134,128,195, 0,198,
-192,195, 0, 11, 1,196, 0, 28, 65, 0, 1, 87, 64, 68, 1, 22, 64, 0,128, 23,
-128, 68, 1, 22,192, 1,128, 23,128, 68, 1, 22,128, 2,128, 5,193, 4, 0, 65,
- 1, 5, 0,128, 1,128, 1, 85,129,129, 2, 28, 65, 0, 1, 22, 0, 1,128, 5,
- 1, 0, 0, 6, 65, 69, 2, 6,129, 69, 2, 64, 1,128, 1, 28, 65, 0, 1, 30,
- 0,128, 0, 23, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0,
- 4, 8, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0,
- 0, 0, 0, 0, 0, 0,100,105, 97,108,111,103,116,121,112,101, 0, 4, 5, 0,
- 0, 0, 0, 0, 0, 0, 79, 80, 69, 78, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,
-116,105,116,108,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,100, 32,
- 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,102,105,108,116,101,114,
- 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 42, 46, 42, 0, 4, 11, 0, 0, 0, 0,
- 0, 0, 0,102,105,108,116,101,114,105,110,102,111, 0, 4, 10, 0, 0, 0, 0,
- 0, 0, 0, 65,108,108, 32, 70,105,108,101,115, 0, 4, 9, 0, 0, 0, 0, 0,
- 0, 0, 97,108,108,111,119,110,101,119, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,
- 78, 79, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,111,112,117,112, 0, 4, 7,
- 0, 0, 0, 0, 0, 0, 0, 67, 69, 78, 84, 69, 82, 0, 4, 7, 0, 0, 0, 0,
- 0, 0, 0,115,116, 97,116,117,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,118,
- 97,108,117,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111,
-121, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 45, 49, 0, 4, 2, 0, 0, 0, 0,
- 0, 0, 0, 49, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114,111,114, 0,
- 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32,108,111, 97,100,
- 32,102,105,108,101, 32, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,
-111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,100, 70,105,108,
-101, 0, 0, 0, 0, 0, 37, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,107, 0,
- 0, 0,107, 0, 0, 0,107, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0,108, 0,
- 0, 0,107, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0,
- 0, 0,109, 0, 0, 0,109, 0, 0, 0,110, 0, 0, 0,111, 0, 0, 0,112, 0,
- 0, 0,112, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0,
- 0, 0,115, 0, 0, 0,115, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,116, 0,
- 0, 0,116, 0, 0, 0,116, 0, 0, 0,117, 0, 0, 0,119, 0, 0, 0,119, 0,
- 0, 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, 0, 0,121, 0, 0, 0, 4, 0,
- 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 36,
- 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,102,100, 0, 9, 0, 0, 0, 36, 0,
- 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,115,116, 97,116,117,115, 0, 16, 0, 0,
- 0, 36, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109,
-101, 0, 17, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,166, 0, 0, 0,170, 0, 0, 0, 0, 5, 0, 7, 8, 0, 0, 0, 23, 0,
- 64, 1, 22, 0, 1,128, 69, 65, 0, 0, 70,129,192, 2, 70,193,192, 2,128, 1,
-128, 0, 92, 65, 0, 1, 30, 0,128, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0,
- 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 9, 0, 0, 0, 0, 0,
- 0, 0, 76,111, 97,100, 70,105,108,101, 0, 0, 0, 0, 0, 8, 0, 0, 0,167,
- 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,168,
- 0, 0, 0,168, 0, 0, 0,170, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0,
- 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0,
- 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 7, 0, 0,
- 0, 4, 0, 0, 0, 0, 0, 0, 0,110,117,109, 0, 0, 0, 0, 0, 7, 0, 0,
- 0, 2, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 7, 0, 0, 0, 2,
- 0, 0, 0, 0, 0, 0, 0,121, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0,
- 0, 90, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0,
- 0, 3, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0,
- 0, 7, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 17, 0, 0,
- 0, 41, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0,
- 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0,
- 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0,
- 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0,
- 0, 43, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0,
- 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0,
- 0, 44, 0, 0, 0, 44, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0,
- 0, 48, 0, 0, 0, 46, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0,
- 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0,
- 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0,
- 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0,
- 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0,
- 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0,
- 0, 54, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0,
- 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0,
- 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0,
- 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 58, 0, 0,
- 0, 58, 0, 0, 0, 58, 0, 0, 0, 70, 0, 0, 0, 58, 0, 0, 0, 72, 0, 0,
- 0, 72, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 72, 0, 0, 0, 94, 0, 0,
- 0, 94, 0, 0, 0,104, 0, 0, 0, 94, 0, 0, 0,106, 0, 0, 0,106, 0, 0,
- 0,106, 0, 0, 0,121, 0, 0, 0,106, 0, 0, 0,123, 0, 0, 0,123, 0, 0,
- 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,125, 0, 0, 0,125, 0, 0,
- 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0,
- 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0,
- 0,126, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,127, 0, 0, 0,127, 0, 0,
- 0,127, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,129, 0, 0,
- 0,129, 0, 0, 0,129, 0, 0, 0,130, 0, 0, 0,130, 0, 0, 0,130, 0, 0,
- 0,125, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0,
- 0,131, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0,132, 0, 0, 0,132, 0, 0,
- 0,133, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,134, 0, 0, 0,134, 0, 0,
- 0,131, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0,125, 0, 0, 0,135, 0, 0,
- 0,135, 0, 0, 0,125, 0, 0, 0,136, 0, 0, 0,136, 0, 0, 0,136, 0, 0,
- 0,137, 0, 0, 0,124, 0, 0, 0,137, 0, 0, 0,141, 0, 0, 0,141, 0, 0,
- 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,143, 0, 0, 0,143, 0, 0,
- 0,143, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0,147, 0, 0,
- 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0,
- 0,148, 0, 0, 0,146, 0, 0, 0,148, 0, 0, 0,149, 0, 0, 0,144, 0, 0,
- 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0,
- 0,150, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0,
- 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0,
- 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0,
- 0,153, 0, 0, 0,154, 0, 0, 0,151, 0, 0, 0,154, 0, 0, 0,154, 0, 0,
- 0,150, 0, 0, 0,155, 0, 0, 0,142, 0, 0, 0,155, 0, 0, 0,159, 0, 0,
- 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0,
- 0,159, 0, 0, 0,159, 0, 0, 0,160, 0, 0, 0,161, 0, 0, 0,161, 0, 0,
- 0,161, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0,163, 0, 0, 0,163, 0, 0,
- 0,163, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,164, 0, 0, 0,159, 0, 0,
- 0,164, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0,170, 0, 0,
- 0,166, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,174, 0, 0,
- 0,174, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0,178, 0, 0,
- 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,179, 0, 0,
- 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,180, 0, 0,
- 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,181, 0, 0,
- 0,181, 0, 0, 0,181, 0, 0, 0,183, 0, 0, 0,183, 0, 0, 0,183, 0, 0,
- 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0,
- 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0,
- 0,187, 0, 0, 0,184, 0, 0, 0,188, 0, 0, 0,182, 0, 0, 0,189, 0, 0,
- 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,190, 0, 0,
- 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0,
- 0,190, 0, 0, 0,191, 0, 0, 0,191, 0, 0, 0,192, 0, 0, 0,177, 0, 0,
- 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,194, 0, 0,
- 0,175, 0, 0, 0,194, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,198, 0, 0,
- 0,198, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0,
- 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,201, 0, 0, 0,201, 0, 0,
- 0,201, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,203, 0, 0,
- 0,203, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0,
- 0,204, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-};
-
- if (luaL_loadbuffer(L,(const char*)B1,sizeof(B1),"../obj/iuplua51/console5_le64.lo")==0) lua_call(L, 0, 0);
-}
diff --git a/iup/srcconsole/loh/console5_le64w.loh b/iup/srcconsole/loh/console5_le64w.loh
deleted file mode 100755
index ff23f43..0000000
--- a/iup/srcconsole/loh/console5_le64w.loh
+++ /dev/null
@@ -1,525 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- if (luaL_loadfile(L,"../obj/iuplua51/console5_le64w.lo")==0) lua_call(L, 0, 0);
-*/
-/* ../obj/iuplua51/console5_le64w.lo */
-static const unsigned char B1[]={
- 27, 76,117, 97, 81, 0, 1, 4, 8, 4, 8, 0, 14, 0, 0, 0, 0, 0, 0, 0,
- 64, 99,111,110,115,111,108,101, 53, 46,108,117, 97, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 15, 90, 1, 0, 0, 5, 0, 0, 0, 65, 64, 0, 0, 28, 64,
- 0, 1, 5,128, 0, 0, 74, 0, 0, 0, 9, 64,128,129, 5,128, 0, 0, 6,192,
- 64, 0,100, 0, 0, 0, 9, 64, 0,130, 5,128, 0, 0, 6,192, 64, 0,100, 64,
- 0, 0, 9, 64,128,130, 5,128, 0, 0, 6,192, 64, 0, 9,192, 65,131, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,194, 0,138,192, 0, 0,137,192,
- 66,133,137, 64, 67,134,137,192, 67,135, 92,128, 0, 1, 9, 64, 0,132, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,128, 0, 0,137,192,
- 68,137,137, 0, 69,134, 92,128, 0, 1, 9, 64, 0,136, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,192, 0, 0,137,128, 69,137,137, 0,
- 69,134,137,192, 69,133, 92,128, 0, 1, 9, 64,128,138, 5,128, 0, 0, 6,192,
- 64, 0, 6, 0, 66, 0,100,128, 0, 0, 9, 64, 0,140, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0,
- 71,137,137,128,199,142, 92,128, 0, 1, 9, 64,128,140, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0,
- 72,137,137, 64,200,142, 92,128, 0, 1, 9, 64,128,143, 5,128, 0, 0, 6,192,
- 64, 0, 69,128, 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137,192,
- 72,137, 92,128, 0, 1, 9, 64, 0,145, 5,128, 0, 0, 6,192, 64, 0, 69,128,
- 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137, 64, 73,137, 92,128,
- 0, 1, 9, 64, 0,146, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128,
-198, 0,138,128, 0, 0,137,192, 70,134,137,192, 73,137, 92,128, 0, 1, 9, 64,
- 0,147, 5,128, 0, 0, 6,192, 64, 0, 6,128, 73, 0,100,192, 0, 0, 9, 64,
-128,142, 5,128, 0, 0, 6,192, 64, 0, 6, 0, 73, 0,100, 0, 1, 0, 9, 64,
-128,142, 5,128, 0, 0, 6,192, 64, 0,100, 64, 1, 0, 9, 64, 0,148, 5,128,
- 0, 0, 6,192, 64, 0, 6,128, 72, 0,100,128, 1, 0, 9, 64,128,142, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128,202, 0,138,192,128, 0,197,128,
- 0, 0,198,192,202, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 1,203, 2,138, 65,
- 0, 1,197,129, 0, 0,198,129,202, 3, 10,130,128, 2, 69,130, 0, 0, 70,194,
-192, 4, 70,130,200, 4,133,130, 0, 0,134,194, 64, 5,134,130, 73, 5,197,130,
- 0, 0,198,194,192, 5,198, 2,201, 5, 5,131, 0, 0, 6,195, 64, 6, 6,195,
- 71, 6, 69,131, 0, 0, 70,195,192, 6, 70, 67,198, 6, 9,130,203,150, 9, 2,
-204,151, 34, 66,128, 2,220,129, 0, 1, 5,130, 0, 0, 6,130, 74, 4, 74, 66,
-128, 1,133,130, 0, 0,134,194, 64, 5,134, 66, 69, 5,197,130, 0, 0,198,194,
-192, 5,198, 2,194, 5, 5,131, 0, 0, 6,195, 64, 6, 6, 3, 68, 6, 73,130,
-204,152, 98, 66,128, 1, 28,130, 0, 1,137,193,204,152,162, 65, 0, 1, 92,129,
- 0, 1, 9, 1, 77,137, 34, 65,128, 0,220,128, 0, 1,137, 64,205,152,137,128,
-205,150,137,192,205,151,162, 64,128, 0, 92,128, 0, 1, 9, 64,128,148, 5,128,
- 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,206, 0,138, 0,128, 0,197,128,
- 0, 0,198,128,206, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 65,206, 2,138, 1,
- 0, 0,197,129, 0, 0,198,193,206, 3, 10,130, 0, 0, 9, 2, 79,137, 9, 66,
-207,142,220, 1, 0, 1,162, 65, 0, 0, 92,129, 0, 1, 9,129, 79,137, 34, 65,
-128, 0,220,128, 0, 1, 5,129, 0, 0, 6,129, 78, 2, 74, 65,128, 0,133,129,
- 0, 0,134, 65, 78, 3,202, 1,128, 0, 5,130, 0, 0, 6,194, 78, 4, 74,130,
- 0, 0, 73,194, 79,137,133,130, 0, 0,134,194, 64, 5,134, 66, 65, 5, 73,130,
-130,142, 28,130, 0, 1, 69,130, 0, 0, 70,194,206, 4,138,130, 0, 0,137, 2,
- 80,137,137, 66,208,142, 92, 2, 0, 1,226, 65, 0, 0,156,129, 0, 1, 73,129,
- 80,137, 98, 65,128, 0, 28, 1, 0, 1,162, 64, 0, 0, 92,128, 0, 1, 9, 64,
- 0,156, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 0,209, 0,138, 64,
-129, 0,197,128, 0, 0,198,192,192, 1,198, 64,202, 1,137, 64, 81,137, 5,129,
- 0, 0, 6,193, 64, 2, 6, 1, 78, 2,137, 0,129,156,137,192, 66,163, 5,129,
- 0, 0, 6,193, 64, 2, 6, 65, 70, 2,137, 0,129,163,137, 64, 79,164,162, 64,
-128, 0, 92,128, 0, 1, 9, 64,128,161, 5,128, 0, 0, 6,192, 64, 0, 6,192,
- 80, 0,100,192, 1, 0, 9, 64,128,164, 5,128, 0, 0, 6,192, 64, 0, 69,128,
- 0, 0, 70, 0,209, 0,138, 0,129, 0,197,128, 0, 0,198,128,202, 1, 10,129,
- 0, 3, 69,129, 0, 0, 70, 65,196, 2,138, 65, 0, 0,137, 65, 81,137, 92,129,
- 0, 1,133,129, 0, 0,134,193, 82, 3,202, 65, 0, 0,201,193, 77,134,156,129,
- 0, 1,197,129, 0, 0,198,193,210, 3, 10, 66, 0, 0, 9,194, 77,134,220,129,
- 0, 1, 5,130, 0, 0, 6,194, 74, 4, 74, 2, 0, 0,133,130, 0, 0,134,130,
- 74, 5,202, 2,128, 0, 5,131, 0, 0, 6, 67, 68, 6, 74, 67, 0, 0, 73, 3,
- 83,137, 28,131, 0, 1, 69,131, 0, 0, 70, 67,196, 6,138, 67, 0, 0,137, 67,
- 83,137, 92, 3, 0, 1,226, 66, 0, 0,156, 2, 0, 1, 98, 66, 0, 0, 28,130,
- 0, 1, 69,130, 0, 0, 70,194,210, 4,138, 66, 0, 0,137,194, 77,134, 92,130,
- 0, 1,133,130, 0, 0,134,130, 70, 5,202,194, 0, 0,201,130, 83,137,201, 66,
-207,142,201,194, 83,134,156,130, 0, 1, 9, 1,212,150, 9, 65,205,152, 34, 65,
- 0, 3,220,128, 0, 1,137,128,212,168,137,128,212,169,137,128, 84,170,137, 64,
- 85,137,162, 64,128, 0, 92,128, 0, 1, 9, 64, 0,165, 5,128, 0, 0, 6,192,
- 64, 0, 6,192, 80, 0, 11,128, 85, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192,
- 85, 0, 69,128, 0, 0, 70,192,192, 0, 70, 0,194, 0, 28, 64, 0, 1, 5,128,
- 0, 0, 6, 0, 86, 0, 28, 64,128, 0, 5,128, 0, 0, 6,192, 64, 0, 6,192,
- 80, 0, 11, 64, 86, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, 64, 0, 6,128,
- 82, 0, 11, 64, 86, 0, 28, 64, 0, 1, 30, 0,128, 0, 90, 0, 0, 0, 4, 8,
- 0, 0, 0, 0, 0, 0, 0,114,101,113,117,105,114,101, 0, 4, 7, 0, 0, 0,
- 0, 0, 0, 0,105,117,112,108,117, 97, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,
-105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101,
- 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116,116, 97, 98,108,101,
- 0, 4, 19, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116, 95,118,101,114,115,
-105,111,110, 95,105,110,102,111, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,
-115,116,102,105,108,101,110, 97,109,101, 0, 0, 4, 7, 0, 0, 0, 0, 0, 0,
- 0,109,108, 67,111,100,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0,109,117,108,
-116,105,108,105,110,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,101,120,112, 97,
-110,100, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 89, 69, 83, 0, 4, 5, 0, 0,
- 0, 0, 0, 0, 0,115,105,122,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 50,
- 48, 48,120, 49, 50, 48, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,102,111,110,116,
- 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79,
- 82, 77, 65, 76, 95, 49, 48, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108,
- 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,108, 97,
- 98,101,108, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,116,105,116,108,101, 0, 4,
- 4, 0, 0, 0, 0, 0, 0, 0, 48, 58, 48, 0, 4, 4, 0, 0, 0, 0, 0, 0,
- 0, 53, 48,120, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,108,
-101, 78, 97,109,101, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11, 0, 0,
- 0, 0, 0, 0, 0, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0, 4, 9, 0, 0,
- 0, 0, 0, 0, 0, 99, 97,114,101,116, 95, 99, 98, 0, 4, 11, 0, 0, 0, 0,
- 0, 0, 0, 98,117,116, 69,120,101, 99,117,116,101, 0, 4, 7, 0, 0, 0, 0,
- 0, 0, 0, 98,117,116,116,111,110, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 53,
- 48,120, 49, 53, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 69,120,101, 99,117,116,
-101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 97, 99,116,105,111,110, 0, 4, 39,
- 0, 0, 0, 0, 0, 0, 0,105,117,112, 46,100,111,115,116,114,105,110,103, 40,
-105,117,112, 46, 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118,
- 97,108,117,101, 41, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 98,117,116, 67,108,
-101, 97,114, 67,111,109,109, 97,110,100,115, 0, 4, 6, 0, 0, 0, 0, 0, 0,
- 0, 67,108,101, 97,114, 0, 4, 96, 0, 0, 0, 0, 0, 0, 0,105,117,112, 46,
- 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, 97,108,117,101,
- 61, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 98,108,
- 70,105,108,101, 78, 97,109,101, 46,116,105,116,108,101, 32, 61, 32, 39, 39, 32,
- 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 97,115,116,102,105,108,
-101,110, 97,109,101, 32, 61, 32,110,105,108, 0, 4, 12, 0, 0, 0, 0, 0, 0,
- 0, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 4, 8, 0, 0, 0, 0, 0,
- 0, 0, 76,111, 97,100, 46, 46, 46, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 98,
-117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 11, 0, 0, 0, 0, 0,
- 0, 0, 83, 97,118,101, 32, 65,115, 46, 46, 46, 0, 4, 12, 0, 0, 0, 0, 0,
- 0, 0, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 4, 5, 0, 0, 0, 0,
- 0, 0, 0, 83, 97,118,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,
-100, 70,105,108,101, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,118, 98,120, 67,111,
-110,115,111,108,101, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,118, 98,111,120, 0,
- 4, 6, 0, 0, 0, 0, 0, 0, 0,102,114, 97,109,101, 0, 4, 5, 0, 0, 0,
- 0, 0, 0, 0,104, 98,111,120, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109, 97,
-114,103,105,110, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 48,120, 48, 0, 4, 4,
- 0, 0, 0, 0, 0, 0, 0,103, 97,112, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,
- 49, 48, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 97,108,105,103,110,109,101,110,
-116, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 65, 82, 73, 71, 72, 84, 0, 4, 5,
- 0, 0, 0, 0, 0, 0, 0, 65, 84, 79, 80, 0, 4, 9, 0, 0, 0, 0, 0, 0,
- 0, 67,111,109,109, 97,110,100,115, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 65,
- 67, 69, 78, 84, 69, 82, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 53,120, 53, 0,
- 4, 2, 0, 0, 0, 0, 0, 0, 0, 53, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,
-109,110,117, 77, 97,105,110, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,109,101,110,
-117, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,115,117, 98,109,101,110,117, 0, 4,
- 5, 0, 0, 0, 0, 0, 0, 0,105,116,101,109, 0, 4, 5, 0, 0, 0, 0, 0,
- 0, 0, 69,120,105,116, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0,114,101,116,117,
-114,110, 32,105,117,112, 46, 67, 76, 79, 83, 69, 0, 4, 5, 0, 0, 0, 0, 0,
- 0, 0, 70,105,108,101, 0, 4, 22, 0, 0, 0, 0, 0, 0, 0, 80,114,105,110,
-116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, 46, 46, 46, 0, 4, 9,
- 0, 0, 0, 0, 0, 0, 0, 65, 98,111,117,116, 46, 46, 46, 0, 4, 51, 0, 0,
- 0, 0, 0, 0, 0,105,117,112, 46, 99,111,110,115,111,108,101, 46,100,108,103,
- 65, 98,111,117,116, 58,112,111,112,117,112, 40,105,117,112, 46, 67, 69, 78, 84,
- 69, 82, 44, 32,105,117,112, 46, 67, 69, 78, 84, 69, 82, 41, 0, 4, 5, 0, 0,
- 0, 0, 0, 0, 0, 72,101,108,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,
-108,103, 77, 97,105,110, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,100,105, 97,108,
-111,103, 0, 4, 15, 0, 0, 0, 0, 0, 0, 0, 73,117,112, 76,117, 97, 32, 67,
-111,110,115,111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,100,114, 97,103,
-100,114,111,112, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,100,101,102, 97,117,108,
-116,101,110,116,101,114, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115,
-101, 95, 99, 98, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,100,114,111,112,102,105,
-108,101,115, 95, 99, 98, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,100,108,103, 65,
- 98,111,117,116, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,102,105,108,108, 0, 4,
- 16, 0, 0, 0, 0, 0, 0, 0, 84,101, 99,103,114, 97,102, 47, 80, 85, 67, 45,
- 82,105,111, 0, 4, 23, 0, 0, 0, 0, 0, 0, 0,105,117,112, 64,116,101, 99,
-103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,114, 0, 4, 3, 0, 0,
- 0, 0, 0, 0, 0, 79, 75, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 53, 48, 88,
- 50, 48, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 49, 48,120, 49, 48, 0, 4, 7,
- 0, 0, 0, 0, 0, 0, 0,109, 97,120, 98,111,120, 0, 4, 3, 0, 0, 0, 0,
- 0, 0, 0, 78, 79, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,105,110, 98,111,
-120, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,114,101,115,105,122,101, 0, 4, 6,
- 0, 0, 0, 0, 0, 0, 0, 65, 98,111,117,116, 0, 4, 5, 0, 0, 0, 0, 0,
- 0, 0,115,104,111,119, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 83,101,116, 70,
-111, 99,117,115, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 77, 97,105,110, 76,111,
-111,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111,121, 0,
- 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0,
- 0, 1, 0, 8, 30, 0, 0, 0, 69, 0, 0, 0,128, 0, 0, 0,195, 0,128, 1,
- 92,192,128, 1,197, 64, 0, 0, 1,129, 0, 0,220, 64, 0, 1, 87,192,192, 0,
- 22, 0, 4,128,197, 64, 0, 0, 5, 1, 1, 0, 64, 1,128, 0, 28,129, 0, 1,
- 65, 65, 1, 0,133, 1, 1, 0,192, 1, 0, 1,156,129, 0, 1, 21,129, 1, 2,
-220, 64, 0, 1,197, 0, 0, 0, 0, 1, 0, 0, 64, 1,128, 0,220,192,128, 1,
-128, 0, 0, 2, 64, 0,128, 1, 22, 0,251,127,197, 64, 0, 0, 1,129, 1, 0,
-220, 64, 0, 1, 30, 0,128, 0, 7, 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0,
- 0,110,101,120,116, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116,
- 0, 4, 21, 0, 0, 0, 0, 0, 0, 0, 45, 45,112,114,105,110,116,116, 97, 98,
-108,101, 32, 83,116, 97,114,116, 45, 45, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0,
- 0,116,111,115,116,114,105,110,103, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 61,
- 0, 4, 19, 0, 0, 0, 0, 0, 0, 0, 45, 45,112,114,105,110,116,116, 97, 98,
-108,101, 32, 69,110,100, 45, 45, 0, 0, 0, 0, 0, 30, 0, 0, 0, 8, 0, 0,
- 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0,
- 0, 9, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0,
- 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0,
- 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0,
- 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0,
- 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0,
- 0, 2, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0, 0, 0, 29, 0, 0, 0, 2,
- 0, 0, 0, 0, 0, 0, 0,110, 0, 4, 0, 0, 0, 29, 0, 0, 0, 2, 0, 0,
- 0, 0, 0, 0, 0,118, 0, 4, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 5,112,
- 0, 0, 0, 5, 0, 0, 0, 26, 0, 0, 0, 22, 0, 2,128, 5, 64, 0, 0, 65,
-128, 0, 0,133, 0, 0, 0,134,192, 64, 1,193, 0, 1, 0, 5, 1, 0, 0, 6,
- 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5,128, 1, 0, 26, 0, 0, 0, 22,
- 0, 2,128, 5, 64, 0, 0, 65,192, 1, 0,133,128, 1, 0,134,192, 64, 1,193,
- 0, 1, 0, 5,129, 1, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5,
- 64, 0, 0, 65, 0, 2, 0,133, 64, 2, 0,134,192, 64, 1,193, 0, 1, 0, 5,
- 65, 2, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,
-128, 2, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 2, 0, 28, 64, 0, 1, 5,
- 64, 0, 0, 65, 0, 3, 0,133, 64, 2, 0,134, 64, 67, 1,193,128, 3, 0,156,
-128, 0, 1, 85,128,128, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 3, 0,133,
- 64, 2, 0,134, 64, 67, 1,193, 0, 4, 0,156,128, 0, 1, 85,128,128, 0, 28,
- 64, 0, 1, 5, 64, 2, 0, 6, 64, 67, 0, 65, 64, 4, 0, 28,128, 0, 1, 26,
- 0, 0, 0, 22,192, 0,128, 69, 64, 0, 0,129,128, 4, 0,192, 0, 0, 0, 92,
- 64,128, 1, 69, 64, 0, 0,129,192, 4, 0,197, 64, 2, 0,198, 64,195, 1, 1,
- 1, 5, 0,220,128, 0, 1,149,192, 0, 1, 92, 64, 0, 1, 69, 64, 0, 0,129,
- 64, 5, 0,197, 64, 2, 0,198, 64,195, 1, 1,129, 5, 0,220,128, 0, 1,149,
-192, 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70,192,197, 0, 90, 0, 0, 0, 22,
- 64, 1,128, 69, 64, 0, 0,129, 0, 6, 0,197, 64, 2, 0,198,192,197, 1,149,
-192, 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70, 64,198, 0, 90, 0, 0, 0, 22,
- 64, 1,128, 69, 64, 0, 0,129,128, 6, 0,197, 64, 2, 0,198, 64,198, 1,149,
-192, 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70,192,198, 0, 90, 0, 0, 0, 22,
- 64, 1,128, 69, 64, 0, 0,129, 0, 7, 0,197, 64, 2, 0,198,192,198, 1,149,
-192, 0, 1, 92, 64, 0, 1, 30, 0,128, 0, 29, 0, 0, 0, 4, 3, 0, 0, 0,
- 0, 0, 0, 0,105,109, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,
-116, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 73, 77, 32, 0, 4, 9, 0, 0, 0,
- 0, 0, 0, 0, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 3, 0, 0, 0, 0, 0,
- 0, 0, 32, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 95, 67, 79, 80, 89, 82,
- 73, 71, 72, 84, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 99,100, 0, 4, 4, 0,
- 0, 0, 0, 0, 0, 0, 67, 68, 32, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 73,
- 85, 80, 32, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 73, 85, 80, 32,
- 73,110,102,111, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83,121,115,116,
-101,109, 58, 32, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 71,101,116, 71,108,111,
- 98, 97,108, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 83, 89, 83, 84, 69, 77, 0,
- 4, 19, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83,121,115,116,101,109, 32, 86,101,
-114,115,105,111,110, 58, 32, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 83, 89, 83,
- 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,
- 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 4, 18, 0, 0, 0, 0, 0,
- 0, 0, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, 0,
- 4, 16, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83, 99,114,101,101,110, 32, 83,105,
-122,101, 58, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 83, 67, 82, 69, 69, 78,
- 83, 73, 90, 69, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83, 99,114,101,
-101,110, 32, 68,101,112,116,104, 58, 32, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,
- 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 4, 10, 0, 0, 0, 0, 0, 0,
- 0, 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0,
- 32, 32, 79,112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 4, 12,
- 0, 0, 0, 0, 0, 0, 0, 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 4,
- 20, 0, 0, 0, 0, 0, 0, 0, 32, 32, 79,112,101,110, 71, 76, 32, 82,101,110,
-100,101,114,101,114, 58, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 71, 76, 95,
- 86, 69, 82, 83, 73, 79, 78, 0, 4, 19, 0, 0, 0, 0, 0, 0, 0, 32, 32, 79,
-112,101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 0, 0, 0, 0,
-112, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0,
- 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0,
- 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0,
- 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0,
- 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0,
- 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0,
- 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0,
- 23, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0,
- 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0,
- 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0,
- 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0,
- 26, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0,
- 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0,
- 29, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0,
- 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0,
- 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0,
- 32, 0, 0, 0, 32, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0,
- 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0,
- 34, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0,
- 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0,
- 35, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0,
- 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0,
- 36, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0,109,111,116, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 3, 0, 7,
- 9, 0, 0, 0,197, 0, 0, 0,198, 64,192, 1,198,128,192, 1, 0, 1,128, 0,
- 65, 1, 1, 0,128, 1, 0, 1, 21,129, 1, 2,201, 0,129,129, 30, 0,128, 0,
- 5, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0,
- 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 12, 0, 0, 0, 0,
- 0, 0, 0,108, 98,108, 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0,
- 0, 0, 0, 0,116,105,116,108,101, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 58,
- 0, 0, 0, 0, 0, 9, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0,
- 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0,
- 0, 48, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108,
-102, 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,108,105,
-110, 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 99,111,
-108, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 58, 0, 0, 0, 70, 0, 0, 0, 0, 1, 0, 4, 39, 0, 0, 0, 69, 0,
- 0, 0, 70, 64,192, 0, 70,128,192, 0, 23,192,192, 0, 22, 64, 1,128, 69, 0,
- 0, 0, 70, 64,192, 0, 70, 0,193, 0, 75, 64,193, 0, 92, 64, 0, 1, 22,128,
- 6,128, 69,192, 1, 0, 70, 0,194, 0,133, 0, 0, 0,134, 64, 64, 1,134,128,
- 64, 1,193, 64, 2, 0, 92,128,128, 1, 71,128, 1, 0, 69,128, 1, 0, 87,192,
-192, 0, 22,128, 2,128, 69,128, 1, 0, 75,128,194, 0,197, 0, 0, 0,198, 64,
-192, 1,198,192,194, 1,198, 0,195, 1, 92, 64,128, 1, 69,128, 1, 0, 75, 64,
-195, 0, 92, 64, 0, 1, 22, 0, 1,128, 69,128, 3, 0,129,192, 3, 0,197, 0,
- 4, 0,149,192, 0, 1, 92, 64, 0, 1, 30, 0,128, 0, 17, 0, 0, 0, 4, 4,
- 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,
- 99,111,110,115,111,108,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,115,
-116,102,105,108,101,110, 97,109,101, 0, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0,
- 98,117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 7, 0, 0, 0, 0,
- 0, 0, 0, 97, 99,116,105,111,110, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,110,
-101,119,102,105,108,101, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,105,111, 0, 4,
- 5, 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4, 3, 0, 0, 0, 0, 0,
- 0, 0,119, 43, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,119,114,105,116,101, 0,
- 4, 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,101, 0, 4, 6, 0, 0,
- 0, 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,
- 99,108,111,115,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114,111,114,
- 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,
-101, 32,102,105,108,101, 32, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,
-101,110, 97,109,101, 0, 0, 0, 0, 0, 39, 0, 0, 0, 59, 0, 0, 0, 59, 0,
- 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 60, 0,
- 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 62, 0,
- 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0,
- 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0,
- 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0,
- 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0,
- 0, 0, 65, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0,
- 0, 0, 67, 0, 0, 0, 70, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
- 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 0, 1, 0, 7, 65,
- 0, 0, 0, 69, 0, 0, 0, 70, 64,192, 0,138, 64, 1, 0,137,192, 64,129,137,
- 64, 65,130,137,192, 65,131,137, 64, 66,132,197,192, 2, 0,137,192, 0,133, 92,
-128, 0, 1,139, 0,195, 0, 5, 1, 0, 0, 6, 65, 67, 2, 69, 1, 0, 0, 70,
- 65,195, 2,156, 64, 0, 2,134,128,195, 0,197, 0, 0, 0,198,192,195, 1, 6,
- 65,196, 0,201, 0, 1,136,197, 0, 0, 0,198,192,195, 1,198,128,196, 1, 5,
- 1, 0, 0, 6,193, 67, 2, 6, 1, 68, 2,201, 0, 1,130,203,192,196, 0,220,
- 64, 0, 1, 87, 0, 69, 1, 22,192, 7,128,197, 0, 0, 0,198,192,195, 1,198,
- 0,196, 1, 23, 64,197, 1, 22, 0, 1,128,197,128, 5, 0, 1,193, 5, 0, 69,
- 1, 6, 0, 21, 65, 1, 2,220, 64, 0, 1,197, 64, 6, 0,198,128,198, 1, 5,
- 1, 0, 0, 6,193, 67, 2, 6, 1, 68, 2, 65,193, 6, 0,220,128,128, 1, 87,
- 64,197, 1, 22, 64, 2,128, 11, 1,199, 1,133, 1, 0, 0,134,193, 67, 3,134,
- 65, 71, 3,134, 65, 68, 3, 28, 65,128, 1, 11,129,199, 1,128, 1,128, 1, 28,
- 65,128, 1, 22,128, 0,128, 5,129, 5, 0, 65,193, 7, 0, 28, 65, 0, 1, 30,
- 0,128, 0, 32, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0,
- 4, 8, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0,
- 0, 0, 0, 0, 0, 0,100,105, 97,108,111,103,116,121,112,101, 0, 4, 5, 0,
- 0, 0, 0, 0, 0, 0, 83, 65, 86, 69, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,
-116,105,116,108,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 83, 97,118,101, 32,
- 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,102,105,108,116,101,114,
- 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 42, 46,119,108,117, 97, 0, 4, 11, 0,
- 0, 0, 0, 0, 0, 0,102,105,108,116,101,114,105,110,102,111, 0, 4, 10, 0,
- 0, 0, 0, 0, 0, 0, 76,117, 97, 32,102,105,108,101,115, 0, 4, 9, 0, 0,
- 0, 0, 0, 0, 0, 97,108,108,111,119,110,101,119, 0, 4, 4, 0, 0, 0, 0,
- 0, 0, 0,121,101,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,111,112,117,
-112, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 76, 69, 70, 84, 0, 4, 7, 0, 0,
- 0, 0, 0, 0, 0,115,116, 97,116,117,115, 0, 4, 8, 0, 0, 0, 0, 0, 0,
- 0, 99,111,110,115,111,108,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,
-115,116,102,105,108,101,110, 97,109,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,
-118, 97,108,117,101, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,
-108,101, 78, 97,109,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,
-114,111,121, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 45, 49, 0, 0, 4, 6, 0,
- 0, 0, 0, 0, 0, 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0,
- 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 4,
- 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 4, 3, 0,
- 0, 0, 0, 0, 0, 0,105,111, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,111,112,
-101,110, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,119, 43, 0, 4, 6, 0, 0, 0,
- 0, 0, 0, 0,119,114,105,116,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,
-108, 67,111,100,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115,101,
- 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,
-101, 32,102,105,108,101, 0, 0, 0, 0, 0, 65, 0, 0, 0, 73, 0, 0, 0, 73,
- 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 74,
- 0, 0, 0, 74, 0, 0, 0, 74, 0, 0, 0, 73, 0, 0, 0, 75, 0, 0, 0, 75,
- 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 76,
- 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 78,
- 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78,
- 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 80,
- 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81,
- 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82,
- 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84,
- 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 85, 0, 0, 0, 86,
- 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86,
- 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 89,
- 0, 0, 0, 89, 0, 0, 0, 89, 0, 0, 0, 92, 0, 0, 0, 4, 0, 0, 0, 5,
- 0, 0, 0, 0, 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 64, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0,102,100, 0, 10, 0, 0, 0, 64, 0, 0, 0, 7,
- 0, 0, 0, 0, 0, 0, 0,115,116, 97,116,117,115, 0, 17, 0, 0, 0, 64, 0,
- 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,110,101,119,102,105,108,101, 0, 49, 0,
- 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0,
- 0, 0,104, 0, 0, 0, 0, 1, 0, 6, 34, 0, 0, 0, 69, 0, 0, 0, 70, 64,
-192, 0,128, 0, 0, 0,193,128, 0, 0, 92,128,128, 1, 23,192,192, 0, 22, 64,
- 1,128,133, 0, 1, 0,193, 64, 1, 0, 0, 1, 0, 0,213, 0,129, 1,156, 64,
- 0, 1, 22,192, 4,128,133,128, 1, 0,134,192, 65, 1,134, 0, 66, 1,203,128,
-194, 0, 65,193, 2, 0,220,128,128, 1,137,192,128,132,139, 0,195, 0, 0, 1,
-128, 0,156, 64,128, 1,133,128, 1, 0,134,192, 65, 1,137, 0,128,134,133,128,
- 1, 0,134,192, 65, 1,134,128, 67, 1,197,128, 1, 0,198,192,193, 1,198, 64,
-195, 1,137,192,128,135, 30, 0,128, 0, 16, 0, 0, 0, 4, 3, 0, 0, 0, 0,
- 0, 0, 0,105,111, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0,
- 4, 2, 0, 0, 0, 0, 0, 0, 0,114, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0,
- 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,
-111,116, 32,108,111, 97,100, 32,102,105,108,101, 32, 0, 4, 4, 0, 0, 0, 0,
- 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,
-111,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,101, 0,
- 4, 6, 0, 0, 0, 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 5, 0, 0, 0,
- 0, 0, 0, 0,114,101, 97,100, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 42, 97,
- 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115,101, 0, 4, 13, 0, 0,
- 0, 0, 0, 0, 0,108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 4, 12,
- 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4,
- 6, 0, 0, 0, 0, 0, 0, 0,116,105,116,108,101, 0, 0, 0, 0, 0, 34, 0,
- 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0,
- 0, 0, 96, 0, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0,
- 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 99, 0, 0, 0, 99, 0,
- 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0,
- 0, 0,100, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0,101, 0,
- 0, 0,101, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0,
- 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,104, 0, 0, 0, 2, 0,
- 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 0,
- 0, 0, 0, 33, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,110,101,119,102,105,
-108,101, 0, 5, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,106, 0, 0, 0,121, 0, 0, 0, 0, 1, 0, 7, 37, 0, 0, 0, 69,
- 0, 0, 0, 70, 64,192, 0,138, 64, 1, 0,137,192, 64,129,137, 64, 65,130,137,
-192, 65,131,137, 64, 66,132,137,192, 66,133, 92,128, 0, 1,139, 0,195, 0, 5,
- 1, 0, 0, 6, 65, 67, 2, 69, 1, 0, 0, 70, 65,195, 2,156, 64, 0, 2,134,
-128,195, 0,198,192,195, 0, 11, 1,196, 0, 28, 65, 0, 1, 87, 64, 68, 1, 22,
- 64, 0,128, 23,128, 68, 1, 22,192, 1,128, 23,128, 68, 1, 22,128, 2,128, 5,
-193, 4, 0, 65, 1, 5, 0,128, 1,128, 1, 85,129,129, 2, 28, 65, 0, 1, 22,
- 0, 1,128, 5, 1, 0, 0, 6, 65, 69, 2, 6,129, 69, 2, 64, 1,128, 1, 28,
- 65, 0, 1, 30, 0,128, 0, 23, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,
-105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,100,108,103,
- 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,100,105, 97,108,111,103,116,121,112,101,
- 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 79, 80, 69, 78, 0, 4, 6, 0, 0, 0,
- 0, 0, 0, 0,116,105,116,108,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 76,
-111, 97,100, 32, 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,102,105,
-108,116,101,114, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 42, 46,119,108,117, 97,
- 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,102,105,108,116,101,114,105,110,102,111,
- 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 76,117, 97, 32, 70,105,108,101,115, 0,
- 4, 9, 0, 0, 0, 0, 0, 0, 0, 97,108,108,111,119,110,101,119, 0, 4, 3,
- 0, 0, 0, 0, 0, 0, 0, 78, 79, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,
-111,112,117,112, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 67, 69, 78, 84, 69, 82,
- 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,115,116, 97,116,117,115, 0, 4, 6, 0,
- 0, 0, 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 8, 0, 0, 0, 0, 0, 0,
- 0,100,101,115,116,114,111,121, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 45, 49,
- 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 49, 0, 4, 6, 0, 0, 0, 0, 0, 0,
- 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,
-111,116, 32,108,111, 97,100, 32,102,105,108,101, 32, 0, 4, 8, 0, 0, 0, 0,
- 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,
- 76,111, 97,100, 70,105,108,101, 0, 0, 0, 0, 0, 37, 0, 0, 0,107, 0, 0,
- 0,107, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,108, 0, 0,
- 0,108, 0, 0, 0,108, 0, 0, 0,107, 0, 0, 0,109, 0, 0, 0,109, 0, 0,
- 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,110, 0, 0,
- 0,111, 0, 0, 0,112, 0, 0, 0,112, 0, 0, 0,114, 0, 0, 0,114, 0, 0,
- 0,114, 0, 0, 0,114, 0, 0, 0,115, 0, 0, 0,115, 0, 0, 0,116, 0, 0,
- 0,116, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,117, 0, 0,
- 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, 0,
- 0,121, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108,
-102, 0, 0, 0, 0, 0, 36, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,102,100,
- 0, 9, 0, 0, 0, 36, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,115,116, 97,
-116,117,115, 0, 16, 0, 0, 0, 36, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
-102,105,108,101,110, 97,109,101, 0, 17, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,166, 0, 0, 0,170, 0, 0, 0, 0, 5, 0,
- 7, 8, 0, 0, 0, 23, 0, 64, 1, 22, 0, 1,128, 69, 65, 0, 0, 70,129,192,
- 2, 70,193,192, 2,128, 1,128, 0, 92, 65, 0, 1, 30, 0,128, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,
-117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0,
- 4, 9, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,100, 70,105,108,101, 0, 0, 0,
- 0, 0, 8, 0, 0, 0,167, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,168, 0,
- 0, 0,168, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,170, 0, 0, 0, 5, 0,
- 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 7,
- 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,110,117,109, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,
- 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,121, 0, 0, 0, 0, 0,
- 7, 0, 0, 0, 0, 0, 0, 0, 90, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0,
- 7, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0,
- 37, 0, 0, 0, 17, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0,
- 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0,
- 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0,
- 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0,
- 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0,
- 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0,
- 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 46, 0, 0, 0,
- 46, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 46, 0, 0, 0, 50, 0, 0, 0,
- 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0,
- 50, 0, 0, 0, 51, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0,
- 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0,
- 52, 0, 0, 0, 53, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0,
- 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0,
- 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0,
- 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0,
- 55, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0,
- 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0,
- 56, 0, 0, 0, 58, 0, 0, 0, 58, 0, 0, 0, 58, 0, 0, 0, 70, 0, 0, 0,
- 58, 0, 0, 0, 72, 0, 0, 0, 72, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0,
- 72, 0, 0, 0, 94, 0, 0, 0, 94, 0, 0, 0,104, 0, 0, 0, 94, 0, 0, 0,
-106, 0, 0, 0,106, 0, 0, 0,106, 0, 0, 0,121, 0, 0, 0,106, 0, 0, 0,
-123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,
-125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,
-125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,
-125, 0, 0, 0,125, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,
-127, 0, 0, 0,127, 0, 0, 0,127, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,
-128, 0, 0, 0,129, 0, 0, 0,129, 0, 0, 0,129, 0, 0, 0,130, 0, 0, 0,
-130, 0, 0, 0,130, 0, 0, 0,125, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,
-131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0,
-132, 0, 0, 0,132, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,
-134, 0, 0, 0,134, 0, 0, 0,131, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0,
-125, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0,125, 0, 0, 0,136, 0, 0, 0,
-136, 0, 0, 0,136, 0, 0, 0,137, 0, 0, 0,124, 0, 0, 0,137, 0, 0, 0,
-141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,
-143, 0, 0, 0,143, 0, 0, 0,143, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0,
-145, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,
-147, 0, 0, 0,147, 0, 0, 0,148, 0, 0, 0,146, 0, 0, 0,148, 0, 0, 0,
-149, 0, 0, 0,144, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,
-150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,
-152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,
-152, 0, 0, 0,152, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,
-153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,154, 0, 0, 0,151, 0, 0, 0,
-154, 0, 0, 0,154, 0, 0, 0,150, 0, 0, 0,155, 0, 0, 0,142, 0, 0, 0,
-155, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,
-159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,160, 0, 0, 0,
-161, 0, 0, 0,161, 0, 0, 0,161, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0,
-163, 0, 0, 0,163, 0, 0, 0,163, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,
-164, 0, 0, 0,159, 0, 0, 0,164, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0,
-166, 0, 0, 0,170, 0, 0, 0,166, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,
-174, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0,
-176, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,
-178, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,
-179, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,
-180, 0, 0, 0,181, 0, 0, 0,181, 0, 0, 0,181, 0, 0, 0,183, 0, 0, 0,
-183, 0, 0, 0,183, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,
-185, 0, 0, 0,185, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,
-186, 0, 0, 0,186, 0, 0, 0,187, 0, 0, 0,184, 0, 0, 0,188, 0, 0, 0,
-182, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,
-189, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,
-190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,191, 0, 0, 0,191, 0, 0, 0,
-192, 0, 0, 0,177, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,
-193, 0, 0, 0,194, 0, 0, 0,175, 0, 0, 0,194, 0, 0, 0,198, 0, 0, 0,
-198, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0,
-199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,
-201, 0, 0, 0,201, 0, 0, 0,201, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,
-203, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,
-204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
-};
-
- if (luaL_loadbuffer(L,(const char*)B1,sizeof(B1),"../obj/iuplua51/console5_le64w.lo")==0) lua_call(L, 0, 0);
-}
diff --git a/iup/srcconsole/make_uname.bat b/iup/srcconsole/make_uname.bat
index a5b1d9a..a0db110 100755
--- a/iup/srcconsole/make_uname.bat
+++ b/iup/srcconsole/make_uname.bat
@@ -6,24 +6,26 @@ if "%1"=="vc8_64" goto iupexe64
if "%1"=="all" goto iupexe
goto end
+REM Must use dll8 so USE_* will use the correct TEC_UNAME
+
:iupexe32
call tecmake dll8 relink %2 %3 %4 %5 %6 %7
-REM call tecmake dll8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
+REM call tecmake vc8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
REM call tecmake vc8 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7
goto end
:iupexe64
call tecmake dll8_64 relink %2 %3 %4 %5 %6 %7
-REM call tecmake dll8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
+REM call tecmake vc8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
REM call tecmake vc8_64 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7
goto end
:iupexe
call tecmake dll8 relink %2 %3 %4 %5 %6 %7
-REM call tecmake dll8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
+REM call tecmake vc8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
REM call tecmake vc8 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7
call tecmake dll8_64 relink %2 %3 %4 %5 %6 %7
-REM call tecmake dll8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
+REM call tecmake vc8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
REM call tecmake vc8_64 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7
goto end
diff --git a/iup/srccontrols/Makefile b/iup/srccontrols/Makefile
index d02bbc3..c928251 100755
--- a/iup/srccontrols/Makefile
+++ b/iup/srccontrols/Makefile
@@ -3,4 +3,4 @@
do_all: iupcontrols
iupcontrols:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
+ @$(MAKE) --no-print-directory -f ../tecmake.mak
diff --git a/iup/srccontrols/color/iup_colorbrowser.c b/iup/srccontrols/color/iup_colorbrowser.c
index 82b4a88..51f8a30 100755
--- a/iup/srccontrols/color/iup_colorbrowser.c
+++ b/iup/srccontrols/color/iup_colorbrowser.c
@@ -681,7 +681,7 @@ static int iColorBrowserKeypress_CB(Ihandle* ih, int c, int press)
static char* iColorBrowserGetHSIAttrib(Ihandle* ih)
{
char* buffer = iupStrGetMemory(100);
- sprintf(buffer, "%f %f %f", (double)ih->data->hue, (double)ih->data->saturation, (double)ih->data->intensity);
+ sprintf(buffer, "%g %g %g", (double)ih->data->hue, (double)ih->data->saturation, (double)ih->data->intensity);
return buffer;
}
@@ -781,10 +781,16 @@ static int iColorBrowserMapMethod(Ihandle* ih)
static void iColorBrowserUnMapMethod(Ihandle* ih)
{
if (ih->data->cddbuffer)
+ {
cdKillCanvas(ih->data->cddbuffer);
+ ih->data->cddbuffer = NULL;
+ }
if (ih->data->cdcanvas)
+ {
cdKillCanvas(ih->data->cdcanvas);
+ ih->data->cdcanvas = NULL;
+ }
}
static int iColorBrowserCreateMethod(Ihandle* ih, void **params)
diff --git a/iup/srccontrols/color/iup_colorbrowserdlg.c b/iup/srccontrols/color/iup_colorbrowserdlg.c
index 65e4d37..dc52725 100755
--- a/iup/srccontrols/color/iup_colorbrowserdlg.c
+++ b/iup/srccontrols/color/iup_colorbrowserdlg.c
@@ -158,7 +158,7 @@ static void iColorBrowserDlgBrowserRGB_Update(IcolorDlgData* colordlg_data)
static void iColorBrowserDlgBrowserHSI_Update(IcolorDlgData* colordlg_data)
{
- IupSetfAttribute(colordlg_data->color_browser, "HSI", "%f %f %f", (double)colordlg_data->hue, (double)colordlg_data->saturation, (double)colordlg_data->intensity);
+ IupSetfAttribute(colordlg_data->color_browser, "HSI", "%g %g %g", (double)colordlg_data->hue, (double)colordlg_data->saturation, (double)colordlg_data->intensity);
}
/*****************************************\
@@ -575,10 +575,16 @@ static int iColorBrowserDlgColorCnvUnMap_CB(Ihandle* ih)
IcolorDlgData* colordlg_data = (IcolorDlgData*)iupAttribGetInherit(ih, "_IUP_GC_DATA");
if (colordlg_data->color_cddbuffer)
+ {
cdKillCanvas(colordlg_data->color_cddbuffer);
+ colordlg_data->color_cddbuffer = NULL;
+ }
if (colordlg_data->color_cdcanvas)
+ {
cdKillCanvas(colordlg_data->color_cdcanvas);
+ colordlg_data->color_cdcanvas = NULL;
+ }
return IUP_DEFAULT;
}
diff --git a/iup/srccontrols/config.mak b/iup/srccontrols/config.mak
index 394d607..10f11e1 100755
--- a/iup/srccontrols/config.mak
+++ b/iup/srccontrols/config.mak
@@ -13,7 +13,7 @@ SRCMATRIX = iupmat_key.c iupmat_mark.c iupmat_aux.c iupmat_mem.c iupmat_mouse.c
SRCMATRIX := $(addprefix matrix/, $(SRCMATRIX))
SRC = iup_cdutil.c iup_gauge.c iup_cells.c iup_colorbar.c iup_controls.c \
- iup_dial.c iup_oldtabs.c iup_oldval.c iup_oldmask.c \
+ iup_dial.c iup_oldmask.c \
$(SRCCOLOR) $(SRCMATRIX)
LIBS = iup iupcd
diff --git a/iup/srccontrols/iup_cells.c b/iup/srccontrols/iup_cells.c
index d9a7fe4..c771d6e 100755
--- a/iup/srccontrols/iup_cells.c
+++ b/iup/srccontrols/iup_cells.c
@@ -882,10 +882,16 @@ static int iCellsMapMethod(Ihandle* ih)
static void iCellsUnMapMethod(Ihandle* ih)
{
if (ih->data->cddbuffer)
+ {
cdKillCanvas(ih->data->cddbuffer);
+ ih->data->cddbuffer = NULL;
+ }
if (ih->data->cdcanvas)
+ {
cdKillCanvas(ih->data->cdcanvas);
+ ih->data->cdcanvas = NULL;
+ }
}
static int iCellsCreateMethod(Ihandle* ih, void **params)
diff --git a/iup/srccontrols/iup_colorbar.c b/iup/srccontrols/iup_colorbar.c
index 72e717c..1cbcd59 100755
--- a/iup/srccontrols/iup_colorbar.c
+++ b/iup/srccontrols/iup_colorbar.c
@@ -978,10 +978,16 @@ static int iColorbarMapMethod(Ihandle* ih)
static void iColorbarUnMapMethod(Ihandle* ih)
{
if (ih->data->cddbuffer)
+ {
cdKillCanvas(ih->data->cddbuffer);
+ ih->data->cddbuffer = NULL;
+ }
if (ih->data->cdcanvas)
+ {
cdKillCanvas(ih->data->cdcanvas);
+ ih->data->cdcanvas = NULL;
+ }
}
static int iColorbarCreateMethod(Ihandle* ih, void **params)
diff --git a/iup/srccontrols/iup_dial.c b/iup/srccontrols/iup_dial.c
index 1dd2d0f..c8c5656 100755
--- a/iup/srccontrols/iup_dial.c
+++ b/iup/srccontrols/iup_dial.c
@@ -640,7 +640,7 @@ static int iDialWheel_CB(Ihandle* ih, float delta)
static char* iDialGetValueAttrib(Ihandle* ih)
{
char* str = iupStrGetMemory(20);
- sprintf(str, "%f", ih->data->angle);
+ sprintf(str, "%g", ih->data->angle);
return str;
}
@@ -665,7 +665,7 @@ static int iDialSetDensityAttrib(Ihandle* ih, const char* value)
static char* iDialGetDensityAttrib(Ihandle* ih)
{
char* str = iupStrGetMemory(20);
- sprintf(str, "%f", ih->data->density);
+ sprintf(str, "%g", ih->data->density);
return str;
}
@@ -780,10 +780,16 @@ static int iDialMapMethod(Ihandle* ih)
static void iDialUnMapMethod(Ihandle* ih)
{
if (ih->data->cddbuffer)
+ {
cdKillCanvas(ih->data->cddbuffer);
+ ih->data->cddbuffer = NULL;
+ }
if (ih->data->cdcanvas)
+ {
cdKillCanvas(ih->data->cdcanvas);
+ ih->data->cdcanvas = NULL;
+ }
}
static int iDialCreateMethod(Ihandle* ih, void **params)
diff --git a/iup/srccontrols/iup_gauge.c b/iup/srccontrols/iup_gauge.c
index 8732eee..300b28e 100755
--- a/iup/srccontrols/iup_gauge.c
+++ b/iup/srccontrols/iup_gauge.c
@@ -347,10 +347,16 @@ static char* iGaugeGetTextAttrib(Ihandle* ih)
static void iGaugeUnMapMethod(Ihandle* ih)
{
if (ih->data->cddbuffer)
+ {
cdKillCanvas(ih->data->cddbuffer);
+ ih->data->cddbuffer = NULL;
+ }
if (ih->data->cdcanvas)
+ {
cdKillCanvas(ih->data->cdcanvas);
+ ih->data->cdcanvas = NULL;
+ }
}
static int iGaugeMapMethod(Ihandle* ih)
diff --git a/iup/srccontrols/iup_oldmask.c b/iup/srccontrols/iup_oldmask.c
index fec10f3..2ec4012 100755
--- a/iup/srccontrols/iup_oldmask.c
+++ b/iup/srccontrols/iup_oldmask.c
@@ -42,14 +42,14 @@ int iupmaskMatSetInt(Ihandle *ih, int autofill, int min, int max, int lin, int c
int iupmaskSetFloat(Ihandle* ih, int autofill, float min, float max)
{
(void)autofill;
- IupSetfAttribute(ih,"MASKFLOAT", "%f:%f", min, max);
+ IupSetfAttribute(ih,"MASKFLOAT", "%g:%g", min, max);
return 1;
}
int iupmaskMatSetFloat(Ihandle* ih, int autofill, float min, float max, int lin, int col)
{
(void)autofill;
- IupMatSetfAttribute(ih,"MASKFLOAT", lin, col, "%f:%f", min, max);
+ IupMatSetfAttribute(ih,"MASKFLOAT", lin, col, "%g:%g", min, max);
return 0;
}
diff --git a/iup/srccontrols/iup_oldtabs.c b/iup/srccontrols/iup_oldtabs.c
index 43b0c57..5ea7f0a 100755
--- a/iup/srccontrols/iup_oldtabs.c
+++ b/iup/srccontrols/iup_oldtabs.c
@@ -2487,10 +2487,16 @@ static int iTabsMapMethod(Ihandle* ih)
static void iTabsUnMapMethod(Ihandle* ih)
{
if (ih->data->cddbuffer)
+ {
cdKillCanvas(ih->data->cddbuffer);
+ ih->data->cddbuffer = NULL;
+ }
if (ih->data->cdcanvas)
+ {
cdKillCanvas(ih->data->cdcanvas);
+ ih->data->cdcanvas = NULL;
+ }
}
static void iTabsDestroyMethod(Ihandle* ih)
diff --git a/iup/srccontrols/iup_oldval.c b/iup/srccontrols/iup_oldval.c
index 50dae8a..9c14c90 100755
--- a/iup/srccontrols/iup_oldval.c
+++ b/iup/srccontrols/iup_oldval.c
@@ -533,7 +533,7 @@ static char* iValGetTypeAttrib(Ihandle* ih)
static char* iValGetValueAttrib(Ihandle* ih)
{
char* str = iupStrGetMemory(20);
- sprintf(str, "%f", ih->data->val);
+ sprintf(str, "%g", ih->data->val);
return str;
}
@@ -576,7 +576,7 @@ static int iValSetStepAttrib(Ihandle* ih, const char* step)
static char* iValGetStepAttrib(Ihandle* ih)
{
char* str = iupStrGetMemory(20);
- sprintf(str, "%f", ih->data->step);
+ sprintf(str, "%g", ih->data->step);
return str;
}
@@ -590,7 +590,7 @@ static int iValSetPageStepAttrib(Ihandle* ih, const char* pagestep)
static char* iValGetPageStepAttrib(Ihandle* ih)
{
char* str = iupStrGetMemory(20);
- sprintf(str, "%f", ih->data->pagestep);
+ sprintf(str, "%g", ih->data->pagestep);
return str;
}
@@ -605,7 +605,7 @@ static int iValSetMaxAttrib(Ihandle* ih, const char* max)
static char* iValGetMaxAttrib(Ihandle* ih)
{
char* str = iupStrGetMemory(20);
- sprintf(str, "%f", ih->data->vmax);
+ sprintf(str, "%g", ih->data->vmax);
return str;
}
@@ -620,7 +620,7 @@ static int iValSetMinAttrib(Ihandle* ih, const char* min)
static char* iValGetMinAttrib(Ihandle* ih)
{
char* str = iupStrGetMemory(20);
- sprintf(str, "%f", ih->data->vmin);
+ sprintf(str, "%g", ih->data->vmin);
return str;
}
@@ -719,10 +719,16 @@ static int iValMapMethod(Ihandle* ih)
static void iValUnMapMethod(Ihandle* ih)
{
if (ih->data->cddbuffer)
+ {
cdKillCanvas(ih->data->cddbuffer);
+ ih->data->cddbuffer = NULL;
+ }
if (ih->data->cdcanvas)
+ {
cdKillCanvas(ih->data->cdcanvas);
+ ih->data->cdcanvas = NULL;
+ }
}
static void iValDestroyMethod(Ihandle* ih)
diff --git a/iup/srccontrols/matrix/iupmat_aux.c b/iup/srccontrols/matrix/iupmat_aux.c
index f8b85bb..1a8df57 100755
--- a/iup/srccontrols/matrix/iupmat_aux.c
+++ b/iup/srccontrols/matrix/iupmat_aux.c
@@ -24,16 +24,11 @@
#include "iupmat_getset.h"
-static int iMatrixAuxIsFullVisibleLast(Ihandle* ih, int m)
+int iupMatrixAuxIsFullVisibleLast(ImatLinColData *p)
{
int i, sum = 0;
- ImatLinColData *p;
-
- if (m == IMAT_PROCESS_LIN)
- p = &(ih->data->lines);
- else
- p = &(ih->data->columns);
+ sum -= p->first_offset;
for(i = p->first; i <= p->last; i++)
sum += p->sizes[i];
@@ -43,16 +38,20 @@ static int iMatrixAuxIsFullVisibleLast(Ihandle* ih, int m)
return 1;
}
-int iupMatrixAuxIsCellFullVisible(Ihandle* ih, int lin, int col)
+int iupMatrixAuxIsCellStartVisible(Ihandle* ih, int lin, int col)
{
if(((lin >= ih->data->lines.first) &&
(lin <= ih->data->lines.last) &&
(col >= ih->data->columns.first) &&
(col <= ih->data->columns.last)))
{
- if (col == ih->data->columns.last && !iMatrixAuxIsFullVisibleLast(ih, IMAT_PROCESS_COL))
+ if (col == ih->data->columns.first && ih->data->columns.first_offset!=0)
+ return 0;
+ if (lin == ih->data->lines.first && ih->data->lines.first_offset!=0)
return 0;
- if (lin == ih->data->lines.last && !iMatrixAuxIsFullVisibleLast(ih, IMAT_PROCESS_LIN))
+ if (col == ih->data->columns.last && !iupMatrixAuxIsFullVisibleLast(&ih->data->columns))
+ return 0;
+ if (lin == ih->data->lines.last && !iupMatrixAuxIsFullVisibleLast(&ih->data->lines))
return 0;
return 1;
@@ -81,18 +80,98 @@ void iupMatrixAuxGetVisibleCellDim(Ihandle* ih, int lin, int col, int* x, int* y
/* find the position where the column starts */
*x = ih->data->columns.sizes[0];
for(i = ih->data->columns.first; i < col; i++)
+ {
*x += ih->data->columns.sizes[i];
- /* find the column size */
+ if (i == ih->data->columns.first)
+ *x -= ih->data->columns.first_offset;
+ }
+
+ /* get the column size */
*w = ih->data->columns.sizes[col] - 1;
+ if (col == ih->data->columns.first)
+ *w -= ih->data->columns.first_offset;
/* find the position where the line starts */
*y = ih->data->lines.sizes[0];
for(i = ih->data->lines.first; i < lin; i++)
+ {
*y += ih->data->lines.sizes[i];
- /* find the line size */
+ if (i == ih->data->lines.first)
+ *y -= ih->data->lines.first_offset;
+ }
+
+ /* get the line size */
*h = ih->data->lines.sizes[lin] - 1;
+ if (lin == ih->data->lines.first)
+ *h -= ih->data->lines.first_offset;
+}
+
+void iupMatrixAuxAdjustFirstFromLast(ImatLinColData* p)
+{
+ int i, sum = 0;
+
+ /* adjust "first" according to "last" */
+
+ i = p->last;
+ sum = p->sizes[i];
+ while (i>1 && sum < p->visible_size)
+ {
+ i--;
+ sum += p->sizes[i];
+ }
+
+ if (i==1 && sum < p->visible_size)
+ {
+ /* if there are room for everyone then position at start */
+ p->first = 1;
+ p->first_offset = 0;
+ }
+ else
+ {
+ /* the "while" found an index for first */
+ p->first = i;
+
+ /* position at the remaing space */
+ p->first_offset = sum - p->visible_size;
+ }
+}
+
+void iupMatrixAuxAdjustFirstFromScrollPos(ImatLinColData* p, int scroll_pos)
+{
+ int index, sp, offset = 0;
+
+ sp = 0;
+ for(index = 1; index < p->num; index++)
+ {
+ sp += p->sizes[index];
+ if (sp > scroll_pos)
+ {
+ sp -= p->sizes[index]; /* get the previous value */
+ offset = scroll_pos - sp;
+ break;
+ }
+ }
+
+ if (index == p->num)
+ {
+ if (p->num == 1)
+ {
+ /* did NOT go trough the "for" above */
+ offset = scroll_pos;
+ index = 1;
+ }
+ else
+ {
+ /* go all the way trough the "for" above, but still sp < scroll_pos */
+ offset = scroll_pos - sp;
+ index = p->num-1;
+ }
+ }
+
+ p->first = index;
+ p->first_offset = offset;
}
/* Calculate the size, in pixels, of the invisible columns/lines,
@@ -101,10 +180,11 @@ void iupMatrixAuxGetVisibleCellDim(Ihandle* ih, int lin, int col, int* x, int* y
Depends on the first visible column/line.
-> m : choose will operate on lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
*/
-void iupMatrixAuxUpdateVisiblePos(Ihandle* ih, int m)
+void iupMatrixAuxUpdateScrollPos(Ihandle* ih, int m)
{
+ float pos;
+ int i, sb, scroll_pos;
char* POS;
- int i, sb, visible_pos;
ImatLinColData *p;
if (m == IMAT_PROCESS_LIN)
@@ -120,33 +200,44 @@ void iupMatrixAuxUpdateVisiblePos(Ihandle* ih, int m)
POS = "POSX";
}
- visible_pos = 0;
- for(i = 1; i < p->first; i++)
- visible_pos += p->sizes[i];
+ /* "first" was changed, so update "last" and the scroll pos */
- if (ih->data->canvas.sb & sb)
+ if (p->total_size <= p->visible_size)
{
- float pos;
+ /* the matrix is fully visible */
+ p->first = 1;
+ p->first_offset = 0;
+ p->last = p->num==1? 1: p->num-1;
- if (p->total_size)
- {
- while ((visible_pos + p->visible_size > p->total_size) && p->first>1)
- {
- /* invalid position, must recalculate first */
- p->first--;
- visible_pos -= p->sizes[p->first];
- }
+ if (ih->data->canvas.sb & sb)
+ IupSetAttribute(ih, POS, "0");
- pos = (float)visible_pos/(float)p->total_size;
- }
- else
- pos = 0;
+ return;
+ }
+
+ /* must check if it is a valid position */
+ scroll_pos = 0;
+ for(i = 1; i < p->first; i++)
+ scroll_pos += p->sizes[i];
+ scroll_pos += p->first_offset;
+
+ if (scroll_pos + p->visible_size > p->total_size)
+ {
+ /* invalid condition, must recalculate so it is valid */
+ scroll_pos = p->total_size - p->visible_size;
- iupMatrixAuxUpdateLast(p);
- IupSetfAttribute(ih, POS, "%.5f", (double)pos);
+ /* position first and first_offset, according to scroll pos */
+ iupMatrixAuxAdjustFirstFromScrollPos(p, scroll_pos);
}
- else
- iupMatrixAuxUpdateLast(p);
+
+ pos = (float)scroll_pos/(float)p->total_size;
+
+ /* update last */
+ iupMatrixAuxUpdateLast(p);
+
+ /* update scroll pos */
+ if (ih->data->canvas.sb & sb)
+ IupSetfAttribute(ih, POS, "%g", (double)pos);
}
/* Calculate which is the last visible column/line of the matrix.
@@ -157,18 +248,24 @@ void iupMatrixAuxUpdateLast(ImatLinColData *p)
if (p->visible_size > 0)
{
- /* Find which is the last column/line
+ /* Find which is the last column/line.
Start in the first visible and continue adding the widths
- up to the visible size */
+ up to the visible size */
+ sum -= p->first_offset;
for(i = p->first; i < p->num; i++)
{
- sum += p->sizes[i];
+ sum += p->sizes[i];
if(sum >= p->visible_size)
break;
}
if (i == p->num)
- p->last = i-1;
+ {
+ if (p->num == 1)
+ p->last = 1;
+ else
+ p->last = p->num-1;
+ }
else
p->last = i;
}
@@ -185,7 +282,7 @@ int iupMatrixAuxGetColumnWidth(Ihandle* ih, int col)
char* str = iupStrGetMemory(100);
char* value;
- /* can only be called for valid columns */
+ /* can be called for invalid columns (col>numcol) */
sprintf(str, "WIDTH%d", col);
value = iupAttribGet(ih, str);
@@ -219,7 +316,7 @@ int iupMatrixAuxGetColumnWidth(Ihandle* ih, int col)
width = max_width;
}
}
- else if (ih->data->use_title_size)
+ else if (ih->data->use_title_size && (col>=0 && col<ih->data->columns.num))
{
char* title_value = iupMatrixCellGetValue(ih, 0, col);
if (title_value)
@@ -257,7 +354,7 @@ int iupMatrixAuxGetLineHeight(Ihandle* ih, int lin)
char* str = iupStrGetMemory(100);
char* value;
- /* can only be called for valid lines */
+ /* can be called for invalid lines (lin>numlin) */
sprintf(str, "HEIGHT%d", lin);
value = iupAttribGet(ih, str);
@@ -291,7 +388,7 @@ int iupMatrixAuxGetLineHeight(Ihandle* ih, int lin)
height = max_height;
}
}
- else if (ih->data->use_title_size)
+ else if (ih->data->use_title_size && (lin>=0 && lin<ih->data->lines.num))
{
char* title_value = iupMatrixCellGetValue(ih, lin, 0);
if (title_value && title_value[0])
@@ -374,7 +471,7 @@ static void iMatrixAuxUpdateVisibleSize(Ihandle* ih, int m)
p->visible_size = p->total_size;
if (p->total_size)
- IupSetfAttribute(ih, D, "%f", (double)p->visible_size/(double)p->total_size);
+ IupSetfAttribute(ih, D, "%g", (double)p->visible_size/(double)p->total_size);
else
IupSetAttribute(ih, D, "1.0");
}
@@ -390,6 +487,7 @@ void iupMatrixAuxCalcSizes(Ihandle* ih)
/* when removing lines the first can be positioned after the last line */
if (ih->data->lines.first > ih->data->lines.num-1)
{
+ ih->data->lines.first_offset = 0;
if (ih->data->lines.num==1)
ih->data->lines.first = 1;
else
@@ -397,46 +495,50 @@ void iupMatrixAuxCalcSizes(Ihandle* ih)
}
if (ih->data->columns.first > ih->data->columns.num-1)
{
+ ih->data->columns.first_offset = 0;
if (ih->data->columns.num == 1)
ih->data->columns.first = 1;
else
ih->data->columns.first = ih->data->columns.num-1;
}
- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL);
- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN);
+ /* make sure scroll pos is consistent */
+ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL);
+ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN);
ih->data->need_calcsize = 0;
}
int iupMatrixAuxGetLinColFromXY(Ihandle* ih, int x, int y, int* l, int* c)
{
- int size, lin, col;
+ int x_col, y_col, lin, col;
- size = ih->data->columns.sizes[0]; /* always visible when non zero */
- if (x < size)
+ x_col = ih->data->columns.sizes[0]; /* always visible when non zero */
+ if (x < x_col)
col = 0; /* It is in the column of titles */
else
{
+ x_col -= ih->data->columns.first_offset;
for(col = ih->data->columns.first; col <= ih->data->columns.last; col++) /* for all visible columns */
{
- size += ih->data->columns.sizes[col];
- if (x < size)
+ x_col += ih->data->columns.sizes[col];
+ if (x < x_col)
break;
}
if (col > ih->data->columns.last)
col = -1;
}
- size = ih->data->lines.sizes[0]; /* always visible when non zero */
- if (y < size)
+ y_col = ih->data->lines.sizes[0]; /* always visible when non zero */
+ if (y < y_col)
lin = 0; /* It is in the line of titles */
else
{
+ y_col -= ih->data->lines.first_offset;
for(lin = ih->data->lines.first; lin <= ih->data->lines.last; lin++) /* for all visible lines */
{
- size += ih->data->lines.sizes[lin];
- if (y < size)
+ y_col += ih->data->lines.sizes[lin];
+ if (y < y_col)
break;
}
if(lin > ih->data->lines.last)
diff --git a/iup/srccontrols/matrix/iupmat_aux.h b/iup/srccontrols/matrix/iupmat_aux.h
index 296c1f5..01c77f1 100755
--- a/iup/srccontrols/matrix/iupmat_aux.h
+++ b/iup/srccontrols/matrix/iupmat_aux.h
@@ -12,19 +12,22 @@
extern "C" {
#endif
-int iupMatrixAuxIsCellFullVisible(Ihandle* ih, int lin, int col);
+int iupMatrixAuxIsFullVisibleLast(ImatLinColData *p);
+int iupMatrixAuxIsCellStartVisible(Ihandle* ih, int lin, int col);
int iupMatrixAuxIsCellVisible(Ihandle* ih, int lin, int col);
void iupMatrixAuxGetVisibleCellDim (Ihandle* ih, int lin, int col, int* x, int* y, int* w, int* h);
void iupMatrixAuxCalcSizes(Ihandle* ih);
-void iupMatrixAuxUpdateVisiblePos(Ihandle* ih, int m);
+void iupMatrixAuxAdjustFirstFromLast(ImatLinColData* p);
+void iupMatrixAuxAdjustFirstFromScrollPos(ImatLinColData* p, int scroll_pos);
+void iupMatrixAuxUpdateScrollPos(Ihandle* ih, int m);
void iupMatrixAuxUpdateLast(ImatLinColData *p);
int iupMatrixAuxGetColumnWidth(Ihandle* ih, int col);
int iupMatrixAuxGetLineHeight (Ihandle* ih, int lin);
-int iupMatrixAuxGetLinColFromXY (Ihandle* ih, int x, int y, int* l, int* c);
+int iupMatrixAuxGetLinColFromXY (Ihandle* ih, int x, int y, int* l, int* c);
int iupMatrixAuxCallLeaveCellCb (Ihandle* ih);
void iupMatrixAuxCallEnterCellCb (Ihandle* ih);
diff --git a/iup/srccontrols/matrix/iupmat_cd.h b/iup/srccontrols/matrix/iupmat_cd.h
index 1a10f2b..beb616a 100755
--- a/iup/srccontrols/matrix/iupmat_cd.h
+++ b/iup/srccontrols/matrix/iupmat_cd.h
@@ -11,12 +11,12 @@
extern "C" {
#endif
-#define IUPMAT_LINE(_ih,_x1,_y1,_x2,_y2) cdCanvasLine((_ih)->data->cddbuffer, (_x1), iupMatrixInvertYAxis(_ih, _y1), (_x2), iupMatrixInvertYAxis(_ih, _y2))
-#define IUPMAT_VERTEX(_ih,_x,_y) cdCanvasVertex((_ih)->data->cddbuffer, (_x), iupMatrixInvertYAxis(_ih, _y))
-#define IUPMAT_BOX(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasBox((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMatrixInvertYAxis(_ih, _ymin), iupMatrixInvertYAxis(_ih, _ymax))
-#define IUPMAT_RECT(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasRect((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMatrixInvertYAxis(_ih, _ymin), iupMatrixInvertYAxis(_ih, _ymax))
-#define IUPMAT_CLIPAREA(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasClipArea((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMatrixInvertYAxis(_ih, _ymin), iupMatrixInvertYAxis(_ih, _ymax))
-#define IUPMAT_TEXT(_ih,_x,_y,_text) cdCanvasText((_ih)->data->cddbuffer, (_x), iupMatrixInvertYAxis(_ih, _y), (_text))
+#define iupMATRIX_LINE(_ih,_x1,_y1,_x2,_y2) cdCanvasLine((_ih)->data->cddbuffer, (_x1), iupMATRIX_INVERTYAXIS(_ih, _y1), (_x2), iupMATRIX_INVERTYAXIS(_ih, _y2))
+#define iupMATRIX_VERTEX(_ih,_x,_y) cdCanvasVertex((_ih)->data->cddbuffer, (_x), iupMATRIX_INVERTYAXIS(_ih, _y))
+#define iupMATRIX_BOX(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasBox((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMATRIX_INVERTYAXIS(_ih, _ymin), iupMATRIX_INVERTYAXIS(_ih, _ymax))
+#define iupMATRIX_RECT(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasRect((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMATRIX_INVERTYAXIS(_ih, _ymin), iupMATRIX_INVERTYAXIS(_ih, _ymax))
+#define iupMATRIX_CLIPAREA(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasClipArea((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMATRIX_INVERTYAXIS(_ih, _ymin), iupMATRIX_INVERTYAXIS(_ih, _ymax))
+#define iupMATRIX_TEXT(_ih,_x,_y,_text) cdCanvasText((_ih)->data->cddbuffer, (_x), iupMATRIX_INVERTYAXIS(_ih, _y), (_text))
#ifdef __cplusplus
}
diff --git a/iup/srccontrols/matrix/iupmat_colres.c b/iup/srccontrols/matrix/iupmat_colres.c
index d44b7df..79f389e 100755
--- a/iup/srccontrols/matrix/iupmat_colres.c
+++ b/iup/srccontrols/matrix/iupmat_colres.c
@@ -34,15 +34,17 @@
if so the resize is started */
int iupMatrixColResStart(Ihandle* ih, int x, int y)
{
- if (ih->data->lines.sizes[0] && y < ih->data->lines.sizes[0] && iupAttribGetBoolean(ih, "RESIZEMATRIX"))
+ if (ih->data->lines.sizes[0] &&
+ y < ih->data->lines.sizes[0] &&
+ iupAttribGetBoolean(ih, "RESIZEMATRIX"))
{
- int size, col;
+ int x_col, col;
/* Check if is the column of titles */
- size = ih->data->columns.sizes[0];
- if (abs(size-x) < IMAT_COLRES_TOL)
+ x_col = ih->data->columns.sizes[0];
+ if (abs(x_col-x) < IMAT_COLRES_TOL)
{
- ih->data->colres_drag_col_start_x = 0;
+ ih->data->colres_drag_col_start_x = x;
ih->data->colres_dragging = 1;
ih->data->colres_drag_col_last_x = -1;
ih->data->colres_drag_col = 0;
@@ -51,12 +53,13 @@ int iupMatrixColResStart(Ihandle* ih, int x, int y)
else
{
/* find the column */
+ x_col -= ih->data->columns.first_offset;
for(col = ih->data->columns.first; col <= ih->data->columns.last; col++)
{
- ih->data->colres_drag_col_start_x = size;
- size += ih->data->columns.sizes[col];
- if (abs(size-x) < IMAT_COLRES_TOL)
+ x_col += ih->data->columns.sizes[col];
+ if (abs(x_col-x) < IMAT_COLRES_TOL)
{
+ ih->data->colres_drag_col_start_x = x;
ih->data->colres_dragging = 1;
ih->data->colres_drag_col_last_x = -1;
ih->data->colres_drag_col = col;
@@ -71,7 +74,8 @@ int iupMatrixColResStart(Ihandle* ih, int x, int y)
void iupMatrixColResFinish(Ihandle* ih, int x)
{
char str[100];
- int width = x - ih->data->colres_drag_col_start_x;
+ int delta = x - ih->data->colres_drag_col_start_x;
+ int width = ih->data->columns.sizes[ih->data->colres_drag_col] + delta;
if (width < 0)
width = 0;
@@ -83,8 +87,8 @@ void iupMatrixColResFinish(Ihandle* ih, int x)
cdCanvasWriteMode(ih->data->cdcanvas, CD_XOR);
cdCanvasForeground(ih->data->cdcanvas, IMAT_RESIZE_COLOR);
- cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y1),
- ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y2));
+ cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y1),
+ ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y2));
cdCanvasWriteMode(ih->data->cdcanvas, CD_REPLACE);
}
@@ -106,7 +110,8 @@ void iupMatrixColResMove(Ihandle* ih, int x)
{
int y1, y2;
- int width = x - ih->data->colres_drag_col_start_x;
+ int delta = x - ih->data->colres_drag_col_start_x;
+ int width = ih->data->columns.sizes[ih->data->colres_drag_col] + delta;
if (width < 0)
return;
@@ -119,12 +124,12 @@ void iupMatrixColResMove(Ihandle* ih, int x)
/* If it is not the first time, move old line */
if (ih->data->colres_drag_col_last_x != -1)
{
- cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y1),
- ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y2));
+ cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y1),
+ ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y2));
}
- cdCanvasLine(ih->data->cdcanvas, x, iupMatrixInvertYAxis(ih, y1),
- x, iupMatrixInvertYAxis(ih, y2));
+ cdCanvasLine(ih->data->cdcanvas, x, iupMATRIX_INVERTYAXIS(ih, y1),
+ x, iupMATRIX_INVERTYAXIS(ih, y2));
ih->data->colres_drag_col_last_x = x;
cdCanvasWriteMode(ih->data->cdcanvas, CD_REPLACE);
@@ -144,20 +149,23 @@ static void iMatrixColResResetMatrixCursor(Ihandle* ih)
/* Change the cursor when it passes over a group of the column titles. */
void iupMatrixColResCheckChangeCursor(Ihandle* ih, int x, int y)
{
- if(ih->data->lines.sizes[0] && y < ih->data->lines.sizes[0] && iupAttribGetBoolean(ih, "RESIZEMATRIX"))
+ if(ih->data->lines.sizes[0] &&
+ y < ih->data->lines.sizes[0] &&
+ iupAttribGetBoolean(ih, "RESIZEMATRIX"))
{
/* It is in the column titles area and the resize mode is on */
- int found = 0, size, col;
+ int found = 0, x_col, col;
- size = ih->data->columns.sizes[0];
- if (abs(size - x) < IMAT_COLRES_TOL)
+ x_col = ih->data->columns.sizes[0];
+ if (abs(x_col - x) < IMAT_COLRES_TOL)
found = 1; /* line titles */
else
{
+ x_col -= ih->data->columns.first_offset;
for(col = ih->data->columns.first; col <= ih->data->columns.last && !found; col++)
{
- size += ih->data->columns.sizes[col];
- if(abs(size - x) < IMAT_COLRES_TOL)
+ x_col += ih->data->columns.sizes[col];
+ if(abs(x_col - x) < IMAT_COLRES_TOL)
found = 1;
}
}
@@ -168,7 +176,7 @@ void iupMatrixColResCheckChangeCursor(Ihandle* ih, int x, int y)
iupAttribStoreStr(ih, "_IUPMAT_CURSOR", IupGetAttribute(ih, "CURSOR"));
IupSetAttribute(ih, "CURSOR", "RESIZE_W");
}
- else /* It is in the empty area after the last column */
+ else /* It is in the empty area after the last column, or inside a cell */
iMatrixColResResetMatrixCursor(ih);
}
else
diff --git a/iup/srccontrols/matrix/iupmat_def.h b/iup/srccontrols/matrix/iupmat_def.h
index d45acde..225cc16 100755
--- a/iup/srccontrols/matrix/iupmat_def.h
+++ b/iup/srccontrols/matrix/iupmat_def.h
@@ -49,6 +49,7 @@ typedef struct _ImatLinColData
int num; /* Number of columns/lines in the matrix, default/minimum=1, always includes the title */
int num_alloc; /* Number of columns/lines allocated, default=5 */
+ int first_offset; /* scroll offset of the first visible column/line from right to left (or the invisible part of the first cell) */
int first; /* First visible column/line */
int last; /* Last visible column/line */
@@ -84,7 +85,7 @@ struct _IcontrolData
/* attributes */
int mark_continuous, mark_mode, mark_multiple;
- int checkframecolor;
+ int checkframecolor, hidden_text_marks;
/* Mouse and Keyboard AUX */
int leftpressed; /* left mouse button is pressed */
@@ -92,8 +93,8 @@ struct _IcontrolData
/* ColRes AUX */
int colres_dragging, /* indicates if it is being made a column resize */
- colres_drag_col, /* column being resized */
- colres_drag_col_start_x, /* position of the start of the column being resized */
+ colres_drag_col, /* column being resized, handler is at right of the column */
+ colres_drag_col_start_x, /* handler start position */
colres_drag_col_last_x; /* previous position */
/* Mark AUX */
@@ -107,12 +108,14 @@ struct _IcontrolData
IFniiIII fgcolor_cb;
IFniiIII bgcolor_cb;
char *bgcolor, *bgcolor_parent, *fgcolor, *font; /* not need to free */
+
+ int clip_x1, clip_x2, clip_y1, clip_y2; /* aux for cell clipping */
};
int iupMatrixIsValid(Ihandle* ih, int check_cells);
-#define iupMatrixInvertYAxis(_ih, _y) ((_ih)->data->h-1 - (_y))
+#define iupMATRIX_INVERTYAXIS(_ih, _y) ((_ih)->data->h-1 - (_y))
#ifdef __cplusplus
diff --git a/iup/srccontrols/matrix/iupmat_draw.c b/iup/srccontrols/matrix/iupmat_draw.c
index 7c53fb5..ec3df59 100755
--- a/iup/srccontrols/matrix/iupmat_draw.c
+++ b/iup/srccontrols/matrix/iupmat_draw.c
@@ -47,13 +47,38 @@
#define IMAT_COMBOBOX_W 16
-typedef int (*IFniiiiiiC)(Ihandle *h, int lin, int col,int x1, int x2, int y1, int y2, cdCanvas* cnv);
+typedef int (*IFniiiiiiC)(Ihandle *h, int lin, int col, int x1, int x2, int y1, int y2, cdCanvas* cnv);
/**************************************************************************/
/* Private functions */
/**************************************************************************/
+static void iMatrixDrawSetCellClipping(Ihandle* ih, int x1, int x2, int y1, int y2)
+{
+ int old_clip = cdCanvasClip(ih->data->cddbuffer, CD_QUERY);
+ if (old_clip == CD_CLIPAREA)
+ {
+ cdCanvasGetClipArea(ih->data->cddbuffer, &(ih->data->clip_x1), &(ih->data->clip_x2), &(ih->data->clip_y1), &(ih->data->clip_y2));
+ y1 = iupMATRIX_INVERTYAXIS(ih, y1);
+ y2 = iupMATRIX_INVERTYAXIS(ih, y2);
+ if (x1 > x2) {int tmp = x1; x1 = x2; x2 = tmp;}
+ if (y1 > y2) {int tmp = y1; y1 = y2; y2 = tmp;}
+ if (x1 < ih->data->clip_x1) x1 = ih->data->clip_x1;
+ if (x2 > ih->data->clip_x2) x2 = ih->data->clip_x2;
+ if (y1 < ih->data->clip_y1) y1 = ih->data->clip_y1;
+ if (y2 > ih->data->clip_y2) y2 = ih->data->clip_y2;
+ cdCanvasClipArea(ih->data->cddbuffer, x1, x2, y1, y2);
+ cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);
+ }
+}
+
+static void iMatrixDrawResetCellClipping(Ihandle* ih)
+{
+ int old_clip = cdCanvasClip(ih->data->cddbuffer, CD_QUERY);
+ if (old_clip == CD_CLIPAREA)
+ cdCanvasClipArea(ih->data->cddbuffer, ih->data->clip_x1, ih->data->clip_x2, ih->data->clip_y1, ih->data->clip_y2);
+}
static int iMatrixDrawGetColAlignment(Ihandle* ih, int col, char* str)
{
@@ -61,6 +86,8 @@ static int iMatrixDrawGetColAlignment(Ihandle* ih, int col, char* str)
sprintf(str, "ALIGNMENT%d", col);
align = iupAttribGet(ih, str);
if (!align)
+ align = iupAttribGet(ih, "ALIGNMENT");
+ if (!align)
{
if (col == 0)
return IMAT_T_LEFT;
@@ -80,16 +107,15 @@ static int iMatrixDrawCallDrawCB(Ihandle* ih, int lin, int col, int x1, int x2,
int ret;
cdCanvas* old_cnv;
- IUPMAT_CLIPAREA(ih, x1, x2, y1, y2);
- cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);
+ iMatrixDrawSetCellClipping(ih, x1, x2, y1, y2);
old_cnv = cdActiveCanvas();
if (old_cnv != ih->data->cddbuffer) /* backward compatibility code */
cdActivate(ih->data->cddbuffer);
- ret = draw_cb(ih, lin, col, x1, x2, iupMatrixInvertYAxis(ih, y1), iupMatrixInvertYAxis(ih, y2), ih->data->cddbuffer);
+ ret = draw_cb(ih, lin, col, x1, x2, iupMATRIX_INVERTYAXIS(ih, y1), iupMATRIX_INVERTYAXIS(ih, y2), ih->data->cddbuffer);
- cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);
+ iMatrixDrawResetCellClipping(ih);
if (old_cnv && old_cnv != ih->data->cddbuffer) /* backward compatibility code */
{
@@ -165,28 +191,36 @@ static void iMatrixDrawFrameHorizLineCell(Ihandle* ih, int lin, int col, int x1,
{
if (ih->data->checkframecolor && (ih->data->callback_mode || ih->data->cells[lin][col].flags & IUPMAT_FRAMEHCOLOR))
{
+ char* color;
unsigned char r,g,b;
sprintf(str, "FRAMEHORIZCOLOR%d:%d", lin, col);
- if (iupStrToRGB(iupAttribGet(ih, str), &r, &g, &b))
+ color = iupAttribGet(ih, str);
+ if (iupStrEqual(color, "BGCOLOR"))
+ return;
+ if (iupStrToRGB(color, &r, &g, &b))
framecolor = cdEncodeColor(r, g, b);
}
cdCanvasForeground(ih->data->cddbuffer, framecolor);
- IUPMAT_LINE(ih, x1, y, x2, y); /* bottom horizontal line */
+ iupMATRIX_LINE(ih, x1, y, x2, y); /* bottom horizontal line */
}
static void iMatrixDrawFrameVertLineCell(Ihandle* ih, int lin, int col, int x, int y1, int y2, long framecolor, char* str)
{
if (ih->data->checkframecolor && (ih->data->callback_mode || ih->data->cells[lin][col].flags & IUPMAT_FRAMEVCOLOR))
{
+ char* color;
unsigned char r,g,b;
sprintf(str, "FRAMEVERTCOLOR%d:%d", lin, col);
- if (iupStrToRGB(iupAttribGet(ih, str), &r, &g, &b))
+ color = iupAttribGet(ih, str);
+ if (iupStrEqual(color, "BGCOLOR"))
+ return;
+ if (iupStrToRGB(color, &r, &g, &b))
framecolor = cdEncodeColor(r, g, b);
}
cdCanvasForeground(ih->data->cddbuffer, framecolor);
- IUPMAT_LINE(ih, x, y1, x, y2); /* right vertical line */
+ iupMATRIX_LINE(ih, x, y1, x, y2); /* right vertical line */
}
static void iMatrixDrawFrameRectTitle(Ihandle* ih, int lin, int col, int x1, int x2, int y1, int y2, long framecolor, char* str)
@@ -195,37 +229,43 @@ static void iMatrixDrawFrameRectTitle(Ihandle* ih, int lin, int col, int x1, int
x2 -= IMAT_FRAME_W/2;
y2 -= IMAT_FRAME_H/2;
- iMatrixDrawFrameVertLineCell(ih, lin, col, x2, y1, y2, framecolor, str); /* right vertical line */
+ /* right vertical line */
+ iMatrixDrawFrameVertLineCell(ih, lin, col, x2, y1, y2, framecolor, str);
if (col==0)
{
- IUPMAT_LINE(ih, x1, y1, x1, y2); /* left vertical line, reuse Foreground */
+ /* left vertical line, reuse Foreground */
+ iupMATRIX_LINE(ih, x1, y1, x1, y2);
x1++;
}
else if (col==1 && ih->data->columns.sizes[0] == 0)
{
/* If does not have line titles then draw the left line of the cell frame */
- IUPMAT_LINE(ih, x1, y1, x1, y2-1);
+ iupMATRIX_LINE(ih, x1, y1, x1, y2-1);
x1++;
}
- cdCanvasForeground(ih->data->cddbuffer, CD_WHITE); /* Titles have a white line near the frame */
- IUPMAT_LINE(ih, x1, y1+1, x1, y2-1);
+ /* Titles have a white line near the frame, at left */
+ cdCanvasForeground(ih->data->cddbuffer, CD_WHITE);
+ iupMATRIX_LINE(ih, x1, y1+1, x1, y2-1);
- iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2, y2, framecolor, str); /* bottom horizontal line */
+ /* bottom horizontal line */
+ iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2, y2, framecolor, str);
if (lin==0)
{
- IUPMAT_LINE(ih, x1, y1, x2, y1); /* top horizontal line, reuse Foreground */
+ /* top horizontal line, reuse Foreground */
+ iupMATRIX_LINE(ih, x1, y1, x2, y1);
y1++;
}
else if (lin==1 && ih->data->lines.sizes[0] == 0)
{
/* If does not have column titles then draw the top line of the cell frame */
- IUPMAT_LINE(ih, x1, y1, x2-1, y1);
+ iupMATRIX_LINE(ih, x1, y1, x2-1, y1);
y1++;
}
- cdCanvasForeground(ih->data->cddbuffer, CD_WHITE); /* Titles have a white line near the frame */
- IUPMAT_LINE(ih, x1, y1, x2-1, y1);
+ /* Titles have a white line near the frame, at top */
+ cdCanvasForeground(ih->data->cddbuffer, CD_WHITE);
+ iupMATRIX_LINE(ih, x1, y1, x2-1, y1);
}
static void iMatrixDrawFrameRectCell(Ihandle* ih, int lin, int col, int x1, int x2, int y1, int y2, long framecolor, char* str)
@@ -233,20 +273,20 @@ static void iMatrixDrawFrameRectCell(Ihandle* ih, int lin, int col, int x1, int
if (col==1 && ih->data->columns.sizes[0] == 0)
{
/* If does not have line titles then draw the left line of the cell frame */
- iMatrixDrawFrameVertLineCell(ih, lin, col, x1, y1, y2-1-1, framecolor, str);
+ iMatrixDrawFrameVertLineCell(ih, lin, col, x1, y1, y2-1, framecolor, str);
}
if (lin==1 && ih->data->lines.sizes[0] == 0)
{
/* If does not have column titles then draw the top line of the cell frame */
- iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2-1-1, y1, framecolor, str);
+ iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2-1, y1, framecolor, str);
}
/* bottom line */
iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2-1, y2-1, framecolor, str);
/* rigth line */
- iMatrixDrawFrameVertLineCell(ih, lin, col, x2-1, y1, y2-1, framecolor, str);
+ iMatrixDrawFrameVertLineCell(ih, lin, col, x2-1, y1, y2-2, framecolor, str);
}
static int iMatrixDrawSortSign(Ihandle* ih, int x2, int y1, int y2, int col, int active, char* str)
@@ -274,15 +314,15 @@ static int iMatrixDrawSortSign(Ihandle* ih, int x2, int y1, int y2, int col, int
if (iupStrEqualNoCase(sort, "DOWN"))
{
- IUPMAT_VERTEX(ih, x2 - 5, yc + 2);
- IUPMAT_VERTEX(ih, x2 - 1, yc - 2);
- IUPMAT_VERTEX(ih, x2 - 9, yc - 2);
+ iupMATRIX_VERTEX(ih, x2 - 5, yc + 2);
+ iupMATRIX_VERTEX(ih, x2 - 1, yc - 2);
+ iupMATRIX_VERTEX(ih, x2 - 9, yc - 2);
}
else
{
- IUPMAT_VERTEX(ih, x2 - 1, yc + 2);
- IUPMAT_VERTEX(ih, x2 - 9, yc + 2);
- IUPMAT_VERTEX(ih, x2 - 5, yc - 2);
+ iupMATRIX_VERTEX(ih, x2 - 1, yc + 2);
+ iupMATRIX_VERTEX(ih, x2 - 9, yc + 2);
+ iupMATRIX_VERTEX(ih, x2 - 5, yc - 2);
}
cdCanvasEnd(ih->data->cddbuffer);
@@ -301,20 +341,20 @@ static void iMatrixDrawComboFeedback(Ihandle* ih, int x2, int y1, int y2, int ac
/* feedback background */
iMatrixDrawSetBgColor(ih, 0, 0, 0, active);
- IUPMAT_BOX(ih, x1, x2, y1, y2);
+ iupMATRIX_BOX(ih, x1, x2, y1, y2);
/* feedback frame */
cdCanvasForeground(ih->data->cddbuffer, framecolor);
- IUPMAT_RECT(ih, x1, x2, y1, y2);
+ iupMATRIX_RECT(ih, x1, x2, y1, y2);
/* feedback arrow */
xh2 = x2 - IMAT_COMBOBOX_W / 2;
yh2 = y2 - (y2 - y1) / 2;
cdCanvasBegin(ih->data->cddbuffer, CD_FILL);
- IUPMAT_VERTEX(ih, xh2, yh2 + 3);
- IUPMAT_VERTEX(ih, xh2 + 4, yh2 - 1);
- IUPMAT_VERTEX(ih, xh2 - 4, yh2 - 1);
+ iupMATRIX_VERTEX(ih, xh2, yh2 + 3);
+ iupMATRIX_VERTEX(ih, xh2 + 4, yh2 - 1);
+ iupMATRIX_VERTEX(ih, xh2 - 4, yh2 - 1);
cdCanvasEnd(ih->data->cddbuffer);
}
@@ -325,7 +365,7 @@ static void iMatrixDrawBackground(Ihandle* ih, int x1, int x2, int y1, int y2, i
y2 -= IMAT_FRAME_H/2;
iMatrixDrawSetBgColor(ih, lin, col, marked, active);
- IUPMAT_BOX(ih, x1, x2, y1, y2);
+ iupMATRIX_BOX(ih, x1, x2, y1, y2);
}
/* Put the cell contents in the screen, using the specified color and alignment.
@@ -372,7 +412,7 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in
if (text && *text)
{
int num_line, line_height, total_height;
- int charheight, ypos;
+ int charheight, ypos, hidden_text_marks = 0;
num_line = iupStrLineCount(text);
iupdrvFontGetCharSize(ih, NULL, &charheight);
@@ -380,12 +420,18 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in
line_height = charheight;
total_height = (line_height + IMAT_PADDING_H/2) * num_line - IMAT_PADDING_H/2 - IMAT_FRAME_H/2;
- if (lin==0)
+ if (lin==0 || ih->data->hidden_text_marks)
{
int text_w;
iupdrvFontGetMultiLineStringSize(ih, text, &text_w, NULL);
if (text_w > x2 - x1 + 1 - IMAT_PADDING_W - IMAT_FRAME_W)
- alignment = IMAT_T_LEFT;
+ {
+ if (lin == 0)
+ alignment = IMAT_T_LEFT;
+
+ if (ih->data->hidden_text_marks)
+ hidden_text_marks = 1;
+ }
}
/* Set the color used to draw the text */
@@ -395,8 +441,13 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in
iMatrixDrawSetFgColor(ih, lin, col, marked);
/* Set the clip area to the cell region informed, the text maybe greatter than the cell */
- IUPMAT_CLIPAREA(ih, x1, x2, y1, y2);
- cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);
+ if (hidden_text_marks)
+ {
+ int crop = iupdrvFontGetStringWidth(ih, "...") + 2;
+ iMatrixDrawSetCellClipping(ih, x1, x2-crop, y1, y2);
+ }
+ else
+ iMatrixDrawSetCellClipping(ih, x1, x2, y1, y2);
cdCanvasNativeFont(ih->data->cddbuffer, iupMatrixGetFont(ih, lin, col));
@@ -417,11 +468,11 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in
/* Put the text */
if (alignment == IMAT_T_CENTER)
- IUPMAT_TEXT(ih, (x1 + x2) / 2, ypos, text);
+ iupMATRIX_TEXT(ih, (x1 + x2) / 2, ypos, text);
else if(alignment == IMAT_T_LEFT)
- IUPMAT_TEXT(ih, x1, ypos, text);
+ iupMATRIX_TEXT(ih, x1, ypos, text);
else
- IUPMAT_TEXT(ih, x2, ypos, text);
+ iupMATRIX_TEXT(ih, x2, ypos, text);
}
else
{
@@ -441,11 +492,11 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in
/* Draw the text */
if(alignment == IMAT_T_CENTER)
- IUPMAT_TEXT(ih, (x1 + x2) / 2, ypos, p);
+ iupMATRIX_TEXT(ih, (x1 + x2) / 2, ypos, p);
else if(alignment == IMAT_T_LEFT)
- IUPMAT_TEXT(ih, x1, ypos, p);
+ iupMATRIX_TEXT(ih, x1, ypos, p);
else
- IUPMAT_TEXT(ih, x2, ypos, p);
+ iupMATRIX_TEXT(ih, x2, ypos, p);
/* Advance the string */
if (q) p = q + 1;
@@ -457,7 +508,15 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in
free(newtext);
}
- cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);
+ iMatrixDrawResetCellClipping(ih);
+
+ if (hidden_text_marks)
+ {
+ cdCanvasTextAlignment(ih->data->cddbuffer, CD_EAST);
+ ypos = (int)((y1 + y2) / 2.0 - 0.5);
+ iupMATRIX_TEXT(ih, x2+IMAT_PADDING_W/2, ypos, "...");
+ }
+
}
}
@@ -522,7 +581,7 @@ static void iMatrixDrawFocus(Ihandle* ih)
if (ih->data->lines.focus_cell == 1 && ih->data->lines.sizes[0] == 0)
y1++;
- cdIupDrawFocusRect(ih, ih->data->cdcanvas, x1, iupMatrixInvertYAxis(ih, y1), x2, iupMatrixInvertYAxis(ih, y2));
+ cdIupDrawFocusRect(ih, ih->data->cdcanvas, x1, iupMATRIX_INVERTYAXIS(ih, y1), x2, iupMATRIX_INVERTYAXIS(ih, y2));
}
@@ -560,6 +619,11 @@ void iupMatrixDrawLineTitle(Ihandle* ih, int lin1, int lin2)
x2 = ih->data->columns.sizes[0];
y1 = ih->data->lines.sizes[0];
+
+ iupMATRIX_CLIPAREA(ih, x1, x2, y1, ih->data->h-1);
+ cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);
+
+ y1 -= ih->data->lines.first_offset;
for(lin = ih->data->lines.first; lin < lin1; lin++)
y1 += ih->data->lines.sizes[lin];
@@ -592,6 +656,8 @@ void iupMatrixDrawLineTitle(Ihandle* ih, int lin1, int lin2)
y1 = y2;
}
+
+ cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);
}
/* Draw the column titles, visible, between col and lastcol, include it.
@@ -623,6 +689,11 @@ void iupMatrixDrawColumnTitle(Ihandle* ih, int col1, int col2)
y2 = ih->data->lines.sizes[0];
x1 = ih->data->columns.sizes[0];
+
+ iupMATRIX_CLIPAREA(ih, x1, ih->data->w-1, y1, y2);
+ cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);
+
+ x1 -= ih->data->columns.first_offset;
for(col = ih->data->columns.first; col < col1; col++)
x1 += ih->data->columns.sizes[col];
@@ -657,6 +728,8 @@ void iupMatrixDrawColumnTitle(Ihandle* ih, int col1, int col2)
x1 = x2;
}
+
+ cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);
}
/* Redraw a block of cells of the matrix. Handle marked cells, change
@@ -673,13 +746,11 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
IFnii dropcheck_cb;
IFniiiiiiC draw_cb;
- x1 = 0;
x2 = ih->data->w-1;
- y1 = 0;
y2 = ih->data->h-1;
old_x2 = x2;
- old_y1 = y1;
+ old_y1 = 0;
old_y2 = y2;
if (col1 > ih->data->columns.last ||
@@ -697,8 +768,14 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
if (lin2 > ih->data->lines.last)
lin2 = ih->data->lines.last;
+ x1 = ih->data->columns.sizes[0];
+ y1 = ih->data->lines.sizes[0];
+
+ iupMATRIX_CLIPAREA(ih, x1, x2, y1, y2);
+ cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF); /* wait for background */
+
/* Find the initial position of the first column */
- x1 += ih->data->columns.sizes[0];
+ x1 -= ih->data->columns.first_offset;
for(col = ih->data->columns.first; col < col1; col++)
x1 += ih->data->columns.sizes[col];
@@ -708,7 +785,7 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
x2 += ih->data->columns.sizes[col];
/* Find the initial position of the first line */
- y1 += ih->data->lines.sizes[0];
+ y1 -= ih->data->lines.first_offset;
for(lin = ih->data->lines.first; lin < lin1; lin++)
y1 += ih->data->lines.sizes[lin];
@@ -724,7 +801,7 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
/* If it was drawn until the last column and remains space in the right of it,
then delete this area with the the background color. */
- IUPMAT_BOX(ih, x2, old_x2, old_y1, old_y2);
+ iupMATRIX_BOX(ih, x2, old_x2, old_y1, old_y2);
}
if ((lin2 == ih->data->lines.num-1) && (old_y2 > y2))
@@ -735,9 +812,12 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
/* If it was drawn until the last line visible and remains space below it,
then delete this area with the the background color. */
- IUPMAT_BOX(ih, 0, old_x2, y2, old_y2);
+ iupMATRIX_BOX(ih, 0, old_x2, y2, old_y2);
}
+ /* after the background */
+ cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);
+
/***** Draw the cell values and frame */
old_y1 = y1;
framecolor = cdIupConvertColor(iupAttribGetStr(ih, "FRAMECOLOR"));
@@ -775,7 +855,7 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
if (dropcheck_cb && dropcheck_cb(ih, lin, col) == IUP_DEFAULT)
{
- drop = IMAT_COMBOBOX_W;
+ drop = IMAT_COMBOBOX_W+IMAT_PADDING_W/2;
iMatrixDrawComboFeedback(ih, x2, y1, y2, active, framecolor);
}
@@ -788,6 +868,8 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
x1 = x2;
y1 = old_y1; /* must reset also y */
}
+
+ cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);
}
void iupMatrixDraw(Ihandle* ih, int update)
diff --git a/iup/srccontrols/matrix/iupmat_edit.c b/iup/srccontrols/matrix/iupmat_edit.c
index a7e0a74..551baed 100755
--- a/iup/srccontrols/matrix/iupmat_edit.c
+++ b/iup/srccontrols/matrix/iupmat_edit.c
@@ -67,7 +67,7 @@ static int iMatrixEditDropDownAction_CB(Ihandle* ih, char* t, int i, int v)
if (ret == IUP_CONTINUE)
{
iupMatrixEditHide(ih_matrix);
- iupMatrixDrawUpdate(ih);
+ iupMatrixDrawUpdate(ih_matrix);
}
}
@@ -137,13 +137,31 @@ static int iMatrixEditCancel(Ihandle* ih, int focus, int update, int ignore)
return IUP_DEFAULT;
}
+static int iMatrixEditDropDown_CB(Ihandle* ih, int state)
+{
+ /* In Motif if DROPDOWN=YES then when the dropdown button is clicked
+ the list looses its focus and when the dropped list is closed
+ the list regain the focus, also when that happen if the list looses its focus
+ to another control the kill focus callback is not called. */
+ Ihandle* ih_matrix = ih->parent;
+ if (state == 1)
+ iupAttribSetStr(ih_matrix, "_IUPMAT_DROPDOWN", "1");
+
+ return IUP_DEFAULT;
+}
+
static int iMatrixEditKillFocus_CB(Ihandle* ih)
{
Ihandle* ih_matrix = ih->parent;
- if (iupStrEqualNoCase(IupGetGlobal("DRIVER"), "Motif"))
+ if (IupGetGlobal("MOTIFVERSION"))
{
- if (iupAttribGet(ih_matrix, "_IUPMAT_DOUBLE_CLICK"))
+ if (iupAttribGet(ih_matrix, "_IUPMAT_DROPDOWN") || /* from iMatrixEditDropDown_CB, in Motif */
+ iupAttribGet(ih_matrix, "_IUPMAT_DOUBLECLICK")) /* from iMatrixMouseLeftPress, in Motif */
+ {
+ iupAttribSetStr(ih_matrix, "_IUPMAT_DOUBLECLICK", NULL);
+ iupAttribSetStr(ih_matrix, "_IUPMAT_DROPDOWN", NULL);
return IUP_DEFAULT;
+ }
}
iupMatrixEditForceHidden(ih_matrix);
@@ -200,7 +218,7 @@ int iupMatrixEditShow(Ihandle* ih)
/* position the cell to make it visible */
/* If the focus is not visible, a scroll is done for that the focus to be visible */
- if (!iupMatrixAuxIsCellFullVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell))
+ if (!iupMatrixAuxIsCellStartVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell))
iupMatrixScrollToVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell);
/* set attributes */
@@ -235,7 +253,7 @@ int iupMatrixEditShow(Ihandle* ih)
ih->data->datah->y = y;
if (IupGetGlobal("GTKVERSION"))
{
- /* In GTK, IupCanvas is not the actual container of the IupText/IupList */
+ /* In GTK, IupCanvas is NOT the actual container of the IupText/IupList */
ih->data->datah->x += ih->x;
ih->data->datah->y += ih->y;
}
@@ -366,7 +384,7 @@ static int iMatrixEditTextKeyAny_CB(Ihandle* ih, int c)
if (iupMatrixAuxCallLeaveCellCb(ih_matrix) != IUP_IGNORE)
{
- iupMatrixScrollKeyCr(ih_matrix);
+ iupMATRIX_ScrollKeyCr(ih_matrix);
iupMatrixAuxCallEnterCellCb(ih_matrix);
}
iupMatrixDrawUpdate(ih_matrix);
@@ -399,7 +417,7 @@ static int iMatrixEditDropDownKeyAny_CB(Ihandle* ih, int c)
{
if (iupMatrixAuxCallLeaveCellCb(ih_matrix) != IUP_IGNORE)
{
- iupMatrixScrollKeyCr(ih_matrix);
+ iupMATRIX_ScrollKeyCr(ih_matrix);
iupMatrixAuxCallEnterCellCb(ih_matrix);
}
iupMatrixDrawUpdate(ih_matrix);
@@ -440,6 +458,9 @@ void iupMatrixEditCreate(Ihandle* ih)
ih->data->droph = IupList(NULL);
iupChildTreeAppend(ih, ih->data->droph);
+ if (IupGetGlobal("MOTIFVERSION"))
+ IupSetCallback(ih->data->droph, "DROPDOWN_CB", (Icallback)iMatrixEditDropDown_CB);
+
IupSetCallback(ih->data->droph, "ACTION", (Icallback)iMatrixEditDropDownAction_CB);
IupSetCallback(ih->data->droph, "KILLFOCUS_CB", (Icallback)iMatrixEditKillFocus_CB);
IupSetCallback(ih->data->droph, "K_ANY", (Icallback)iMatrixEditDropDownKeyAny_CB);
diff --git a/iup/srccontrols/matrix/iupmat_focus.c b/iup/srccontrols/matrix/iupmat_focus.c
index 3c000f8..0cf680d 100755
--- a/iup/srccontrols/matrix/iupmat_focus.c
+++ b/iup/srccontrols/matrix/iupmat_focus.c
@@ -35,13 +35,11 @@ int iupMatrixFocus_CB(Ihandle* ih, int focus)
if (!iupMatrixIsValid(ih, 1))
return IUP_DEFAULT;
- if (iupStrEqualNoCase(IupGetGlobal("DRIVER"), "Motif"))
+ if (IupGetGlobal("MOTIFVERSION"))
{
- if (focus && iupAttribGet(ih, "_IUPMAT_DOUBLE_CLICK"))
- {
- iupAttribSetStr(ih, "_IUPMAT_DOUBLE_CLICK", NULL);
+ if (iupAttribGet(ih, "_IUPMAT_DROPDOWN") || /* from iMatrixEditDropDown_CB, in Motif */
+ iupAttribGet(ih, "_IUPMAT_DOUBLECLICK")) /* from iMatrixMouseLeftPress, in Motif */
return IUP_DEFAULT;
- }
}
ih->data->has_focus = focus;
diff --git a/iup/srccontrols/matrix/iupmat_getset.c b/iup/srccontrols/matrix/iupmat_getset.c
index 34947b6..4424948 100755
--- a/iup/srccontrols/matrix/iupmat_getset.c
+++ b/iup/srccontrols/matrix/iupmat_getset.c
@@ -313,7 +313,7 @@ char* iupMatrixGetFont(Ihandle* ih, int lin, int col)
return font;
}
-char *iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels)
+char *iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels_unit)
{
char* str;
int size;
@@ -342,7 +342,7 @@ char *iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels)
else
size -= IMAT_PADDING_H + IMAT_FRAME_H;
- if (!pixels)
+ if (!pixels_unit)
{
int charwidth, charheight;
iupdrvFontGetCharSize(ih, &charwidth, &charheight);
diff --git a/iup/srccontrols/matrix/iupmat_getset.h b/iup/srccontrols/matrix/iupmat_getset.h
index 9ae3d07..f26e01e 100755
--- a/iup/srccontrols/matrix/iupmat_getset.h
+++ b/iup/srccontrols/matrix/iupmat_getset.h
@@ -26,7 +26,7 @@ void iupMatrixGetFgRGB(Ihandle* ih, int lin, int col, unsigned char *r, unsigned
void iupMatrixCellUpdateValue(Ihandle* ih);
-char* iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels);
+char* iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels_unit);
int iupMatrixCheckCellPos(Ihandle* ih, int lin, int col);
diff --git a/iup/srccontrols/matrix/iupmat_key.c b/iup/srccontrols/matrix/iupmat_key.c
index ae9ed55..4824438 100755
--- a/iup/srccontrols/matrix/iupmat_key.c
+++ b/iup/srccontrols/matrix/iupmat_key.c
@@ -37,7 +37,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
int ret = IUP_IGNORE; /* default for processed keys */
/* If the focus is not visible, a scroll is done for that the focus to be visible */
- if (!iupMatrixAuxIsCellFullVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell))
+ if (!iupMatrixAuxIsCellStartVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell))
iupMatrixScrollToVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell);
switch (c)
@@ -47,7 +47,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
case K_HOME:
if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
break;
- iupMatrixScrollKeyHome(ih);
+ iupMATRIX_ScrollKeyHome(ih);
ih->data->homekeycount++;
iupMatrixAuxCallEnterCellCb(ih);
break;
@@ -57,7 +57,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
case K_END:
if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
break;
- iupMatrixScrollKeyEnd(ih);
+ iupMATRIX_ScrollKeyEnd(ih);
ih->data->endkeycount++;
iupMatrixAuxCallEnterCellCb(ih);
break;
@@ -71,7 +71,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
case K_LEFT:
if (iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
break;
- iupMatrixScrollKeyLeft(ih);
+ iupMATRIX_ScrollKeyLeft(ih);
iupMatrixAuxCallEnterCellCb(ih);
break;
@@ -80,7 +80,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
case K_RIGHT:
if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
break;
- iupMatrixScrollKeyRight(ih);
+ iupMATRIX_ScrollKeyRight(ih);
iupMatrixAuxCallEnterCellCb(ih);
break;
@@ -89,7 +89,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
case K_UP:
if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
break;
- iupMatrixScrollKeyUp(ih);
+ iupMATRIX_ScrollKeyUp(ih);
iupMatrixAuxCallEnterCellCb(ih);
break ;
@@ -98,7 +98,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
case K_DOWN:
if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
break;
- iupMatrixScrollKeyDown(ih);
+ iupMATRIX_ScrollKeyDown(ih);
iupMatrixAuxCallEnterCellCb(ih);
break;
@@ -106,7 +106,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
case K_PGUP:
if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
break;
- iupMatrixScrollKeyPgUp(ih);
+ iupMATRIX_ScrollKeyPgUp(ih);
iupMatrixAuxCallEnterCellCb(ih);
break;
@@ -114,7 +114,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
case K_PGDN:
if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
break;
- iupMatrixScrollKeyPgDown(ih);
+ iupMATRIX_ScrollKeyPgDown(ih);
iupMatrixAuxCallEnterCellCb(ih);
break;
diff --git a/iup/srccontrols/matrix/iupmat_mouse.c b/iup/srccontrols/matrix/iupmat_mouse.c
index 33b5fe7..a3ffa82 100755
--- a/iup/srccontrols/matrix/iupmat_mouse.c
+++ b/iup/srccontrols/matrix/iupmat_mouse.c
@@ -80,12 +80,18 @@ static void iMatrixMouseLeftPress(Ihandle* ih, int lin, int col, int shift, int
if (iupMatrixEditShow(ih))
{
- if(ih->data->datah == ih->data->droph)
+ if (ih->data->datah == ih->data->droph)
IupSetAttribute(ih->data->datah, "SHOWDROPDOWN", "YES");
- if (iupStrEqualNoCase(IupGetGlobal("DRIVER"), "Motif"))
- if(atoi(IupGetGlobal("MOTIFNUMBER")) < 2203) /* since OpenMotif version 2.2.3 this is not necessary */
- iupAttribSetStr(ih, "_IUPMAT_DOUBLE_CLICK", "1");
+ if (IupGetGlobal("MOTIFVERSION"))
+ {
+ /* Sequece of focus_cb in Motif from here:
+ Matrix-Focus(0) - ok
+ Edit-KillFocus - weird, must avoid using _IUPMAT_DOUBLECLICK
+ Since OpenMotif version 2.2.3 this is not necessary anymore. */
+ if (atoi(IupGetGlobal("MOTIFNUMBER")) < 2203)
+ iupAttribSetStr(ih, "_IUPMAT_DOUBLECLICK", "1");
+ }
}
}
else /* single click */
@@ -182,14 +188,14 @@ int iupMatrixMouseMove_CB(Ihandle* ih, int x, int y)
if (ih->data->leftpressed && ih->data->mark_multiple && ih->data->mark_mode != IMAT_MARK_NO)
{
if ((x < ih->data->columns.sizes[0] || x < IMAT_DRAG_SCROLL_DELTA) && (ih->data->columns.first > 1))
- iupMatrixScrollLeft(ih);
+ iupMATRIX_ScrollLeft(ih);
else if ((x > ih->data->w - IMAT_DRAG_SCROLL_DELTA) && (ih->data->columns.last < ih->data->columns.num-1))
- iupMatrixScrollRight(ih);
+ iupMATRIX_ScrollRight(ih);
if ((y < ih->data->lines.sizes[0] || y < IMAT_DRAG_SCROLL_DELTA) && (ih->data->lines.first > 1))
- iupMatrixScrollUp(ih);
+ iupMATRIX_ScrollUp(ih);
else if ((y > ih->data->h - IMAT_DRAG_SCROLL_DELTA) && (ih->data->lines.last < ih->data->lines.num-1))
- iupMatrixScrollDown(ih);
+ iupMATRIX_ScrollDown(ih);
if (iupMatrixAuxGetLinColFromXY(ih, x, y, &lin, &col))
{
diff --git a/iup/srccontrols/matrix/iupmat_numlc.c b/iup/srccontrols/matrix/iupmat_numlc.c
index e48720a..6e628b7 100755
--- a/iup/srccontrols/matrix/iupmat_numlc.c
+++ b/iup/srccontrols/matrix/iupmat_numlc.c
@@ -294,7 +294,7 @@ int iupMatrixSetAddLinAttrib(Ihandle* ih, const char* value)
{
int base, count, lines_num = ih->data->lines.num;
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
if (!iMatrixGetStartEnd(value, &base, &count, lines_num, 0))
@@ -326,7 +326,7 @@ int iupMatrixSetDelLinAttrib(Ihandle* ih, const char* value)
{
int base, count, lines_num = ih->data->lines.num;
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
if (!iMatrixGetStartEnd(value, &base, &count, lines_num, 1))
@@ -366,7 +366,7 @@ int iupMatrixSetAddColAttrib(Ihandle* ih, const char* value)
{
int base, count, columns_num = ih->data->columns.num;
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
if (!iMatrixGetStartEnd(value, &base, &count, columns_num, 0))
@@ -398,7 +398,7 @@ int iupMatrixSetDelColAttrib(Ihandle* ih, const char* value)
{
int base, count, columns_num = ih->data->columns.num;
- if (!ih->handle) /* do not store the action before map */
+ if (!ih->handle) /* do not do the action before map */
return 0;
if (!iMatrixGetStartEnd(value, &base, &count, columns_num, 1))
diff --git a/iup/srccontrols/matrix/iupmat_scroll.c b/iup/srccontrols/matrix/iupmat_scroll.c
index 24bbef2..845d248 100755
--- a/iup/srccontrols/matrix/iupmat_scroll.c
+++ b/iup/srccontrols/matrix/iupmat_scroll.c
@@ -32,54 +32,32 @@
/* Private functions */
/**************************************************************************/
-
-static int iMatrixScrollIsFullVisibleLast(ImatLinColData *p)
-{
- int i, sum = 0;
-
- for(i = p->first; i <= p->last; i++)
- sum += p->sizes[i];
-
- if (sum > p->visible_size)
- return 0;
- else
- return 1;
-}
-
-/* Scroll columns/lines in the left/top side of the matriz until the last column/line is FULLY visible.
- -> m : Define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL] */
-static void iMatrixScrollToVisible(Ihandle* ih, int m, int index)
+static void iMatrixScrollToVisible(ImatLinColData* p, int index)
{
- ImatLinColData* p;
+ /* The work here is just to position first and first_offset,
+ so "index" is between "first" and "last". */
+
+ /* It is called only for discrete scrolling,
+ so first_offset usually will be set to 0. */
+
+ /* already visible, change nothing */
+ if (index > p->first && index < p->last)
+ return;
- if (m == IMAT_PROCESS_LIN)
- p = &(ih->data->lines);
- else
- p = &(ih->data->columns);
+ /* scroll to visible, means position the cell so the start at left is visible */
- if (index < p->first)
+ if (index <= p->first)
{
p->first = index;
+ p->first_offset = 0;
return;
}
- else if (index > p->last)
+ else /* (index >= p->last) */
{
- /* Increment the first column/line until the index is visible */
- while(index > p->last && p->last != (p->num - 1))
- {
- p->first++;
- iupMatrixAuxUpdateLast(p);
- }
- }
+ p->last = index;
- if (index == p->last)
- {
- /* must increment util the last is fully visible */
- while(index == p->last && p->last != (p->num - 1) && !iMatrixScrollIsFullVisibleLast(p))
- {
- p->first++;
- iupMatrixAuxUpdateLast(p);
- }
+ /* adjust "first" according to "last" */
+ iupMatrixAuxAdjustFirstFromLast(p);
}
}
@@ -133,119 +111,114 @@ static int iMatrixScrollGetPrevNonEmpty(Ihandle* ih, int m, int index)
return index;
}
-static void iMatrixScrollSetFocusScrollToVisible(Ihandle* ih, int m, int index)
+static void iMatrixScrollSetFocusScrollToVisible(Ihandle* ih, int lin, int col)
+{
+ /* moving focus and eventually scrolling */
+ iupMatrixFocusSet(ih, lin, col);
+
+ /* set for both because focus maybe hidden */
+ iMatrixScrollToVisible(&ih->data->columns, ih->data->columns.focus_cell);
+ iMatrixScrollToVisible(&ih->data->lines, ih->data->lines.focus_cell);
+}
+
+static void iMatrixScrollSetFocusScrollToVisibleLinCol(Ihandle* ih, int m, int index)
{
if (m == IMAT_PROCESS_COL)
- iupMatrixFocusSet(ih, ih->data->lines.focus_cell, index);
+ iMatrixScrollSetFocusScrollToVisible(ih, ih->data->lines.focus_cell, index);
else
- iupMatrixFocusSet(ih, index, ih->data->columns.focus_cell);
-
- /* set for both because current focus maybe hidden */
- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);
- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);
+ iMatrixScrollSetFocusScrollToVisible(ih, index, ih->data->columns.focus_cell);
}
+
/**************************************************************************/
/* Exported functions */
/**************************************************************************/
-/* Move using the cells of matrix.
- Receive as a parameter a pointer to a function that will make the work,
- in fact. This is done to avoid a test to each of the manipulation cursor
- functions, verifying if it is necessary to call or not the scroll
- callback. This is only done here.
- -> func - pointer to the function that will make the movement
- -> mode - parameter passed to func, specify if the movement request is of
- the scrollbar or the keyboard
- -> pos - parameter passed to func, that will be the handle position function
- of the scrollbar, returning the scrollbar thumb position...
- if func is other function, this parameter will be ignored
- -> m - parameter passed to func, specify which is the mode of operation:
- lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
-*/
-void iupMatrixScrollMoveCursor(iupMatrixScrollMoveF func, Ihandle* ih, int mode, float pos, int m)
+void iupMatrixScrollToVisible(Ihandle* ih, int lin, int col)
{
int old_lines_first = ih->data->lines.first;
int old_columns_first = ih->data->columns.first;
+ int old_lines_first_offset = ih->data->lines.first_offset;
+ int old_columns_first_offset = ih->data->columns.first_offset;
- iupMatrixEditForceHidden(ih);
+ iMatrixScrollToVisible(&ih->data->columns, col);
+ iMatrixScrollToVisible(&ih->data->lines, lin);
- func(ih, mode, pos, m);
-
- if (ih->data->lines.first != old_lines_first || ih->data->columns.first != old_columns_first)
+ if ((ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset) ||
+ (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset))
{
- if (ih->data->columns.first != old_columns_first)
- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL);
+ /* when "first" is changed must update scroll pos */
+ if (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset)
+ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL);
- if (ih->data->lines.first != old_lines_first)
- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN);
+ if (ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset)
+ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN);
iMatrixScrollCallScrollTopCb(ih);
- iupMatrixDraw(ih, 0);
+ iupMatrixDraw(ih, 1);
}
}
-void iupMatrixScrollToVisible(Ihandle* ih, int lin, int col)
+void iupMatrixScrollMove(iupMatrixScrollMoveFunc func, Ihandle* ih, int mode, float pos, int m)
{
int old_lines_first = ih->data->lines.first;
int old_columns_first = ih->data->columns.first;
+ int old_lines_first_offset = ih->data->lines.first_offset;
+ int old_columns_first_offset = ih->data->columns.first_offset;
- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, col);
- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, lin);
+ iupMatrixEditForceHidden(ih);
- if (ih->data->lines.first != old_lines_first || ih->data->columns.first != old_columns_first)
+ func(ih, mode, pos, m);
+
+ if ((ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset) ||
+ (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset))
{
- if (ih->data->columns.first != old_columns_first)
- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL);
+ /* when "first" is changed must update scroll pos */
+ if (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset)
+ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL);
- if (ih->data->lines.first != old_lines_first)
- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN);
+ if (ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset)
+ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN);
iMatrixScrollCallScrollTopCb(ih);
- iupMatrixDraw(ih, 1);
+ iupMatrixDraw(ih, 0);
}
}
+/************************************************************************************/
+
/* This function is called when the "home" key is pressed.
In the first time, go to the beginning of the line.
In the second time, go to the beginning of the page.
In the third time, go to the beginning of the matrix.
-> mode and pos : DO NOT USED.
*/
-void iupMatrixScrollHome(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)
+void iupMatrixScrollHomeFunc(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)
{
(void)unused_m;
(void)unused_mode;
(void)unused_pos;
/* called only for mode==IMAT_SCROLLKEY */
+ /* moving focus and eventually scrolling */
if(ih->data->homekeycount == 0) /* go to the beginning of the line */
{
- ih->data->columns.first = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1);
- iMatrixScrollSetFocusScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.first);
+ int col = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1);
+ iMatrixScrollSetFocusScrollToVisibleLinCol(ih, IMAT_PROCESS_COL, col);
}
else if(ih->data->homekeycount == 1) /* go to the beginning of the visible page */
{
- iupMatrixFocusSet(ih, ih->data->lines.first, ih->data->columns.first);
-
- /* set for both because current focus maybe hidden */
- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);
- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);
+ iMatrixScrollSetFocusScrollToVisible(ih, ih->data->lines.first, ih->data->columns.first);
}
else if(ih->data->homekeycount == 2) /* go to the beginning of the matrix 1:1 */
{
- ih->data->columns.first = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1);
- ih->data->lines.first = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_LIN, 1);
-
- iupMatrixFocusSet(ih, ih->data->lines.first, ih->data->columns.first);
-
- /* set for both because current focus maybe hidden */
- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);
- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);
+ int lin = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_LIN, 1);
+ int col = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1);
+ iMatrixScrollSetFocusScrollToVisible(ih, lin, col);
}
}
@@ -255,37 +228,29 @@ void iupMatrixScrollHome(Ihandle* ih, int unused_mode, float unused_pos, int unu
In the third time, go to the end of the matrix.
-> mode and pos : DO NOT USED.
*/
-void iupMatrixScrollEnd(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)
+void iupMatrixScrollEndFunc(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)
{
(void)unused_m;
(void)unused_mode;
(void)unused_pos;
/* called only for mode==IMAT_SCROLLKEY */
+ /* moving focus and eventually scrolling */
if(ih->data->endkeycount == 0) /* go to the end of the line */
{
- int last_col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1);
- iMatrixScrollSetFocusScrollToVisible(ih, IMAT_PROCESS_COL, last_col);
+ int col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1);
+ iMatrixScrollSetFocusScrollToVisibleLinCol(ih, IMAT_PROCESS_COL, col);
}
else if(ih->data->endkeycount == 1) /* go to the end of the visible page */
{
- iupMatrixFocusSet(ih, ih->data->lines.last, ih->data->columns.last);
-
- /* set for both because current focus maybe hidden */
- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);
- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);
+ iMatrixScrollSetFocusScrollToVisible(ih, ih->data->lines.last, ih->data->columns.last);
}
else if(ih->data->endkeycount == 2) /* go to the end of the matrix */
{
- int last_col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1);
- int last_lin = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_LIN, ih->data->lines.num-1);
-
- iupMatrixFocusSet(ih, last_lin, last_col);
-
- /* set for both because current focus maybe hidden */
- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);
- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);
+ int lin = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_LIN, ih->data->lines.num-1);
+ int col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1);
+ iMatrixScrollSetFocusScrollToVisible(ih, lin, col);
}
}
@@ -295,7 +260,7 @@ void iupMatrixScrollEnd(Ihandle* ih, int unused_mode, float unused_pos, int unus
-> pos : DO NOT USED
-> m : define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
*/
-void iupMatrixScrollLeftUp(Ihandle* ih, int mode, float pos, int m)
+void iupMatrixScrollLeftUpFunc(Ihandle* ih, int mode, float pos, int m)
{
ImatLinColData* p;
(void)pos;
@@ -307,12 +272,15 @@ void iupMatrixScrollLeftUp(Ihandle* ih, int mode, float pos, int m)
if (mode == IMAT_SCROLLKEY)
{
+ /* moving focus and eventually scrolling */
int next = iMatrixScrollGetPrevNonEmpty(ih, m, p->focus_cell-1);
- iMatrixScrollSetFocusScrollToVisible(ih, m, next);
+ iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next);
}
else /* IMAT_SCROLLBAR */
{
+ /* always scrolling without changing focus */
p->first = iMatrixScrollGetPrevNonEmpty(ih, m, p->first-1);
+ p->first_offset = 0;
}
}
@@ -322,7 +290,7 @@ void iupMatrixScrollLeftUp(Ihandle* ih, int mode, float pos, int m)
-> pos : DO NOT USED
-> m : define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
*/
-void iupMatrixScrollRightDown(Ihandle* ih, int mode, float pos, int m)
+void iupMatrixScrollRightDownFunc(Ihandle* ih, int mode, float pos, int m)
{
ImatLinColData* p;
(void)pos;
@@ -334,12 +302,15 @@ void iupMatrixScrollRightDown(Ihandle* ih, int mode, float pos, int m)
if (mode == IMAT_SCROLLKEY)
{
+ /* moving focus and eventually scrolling */
int next = iMatrixScrollGetNextNonEmpty(ih, m, p->focus_cell+1);
- iMatrixScrollSetFocusScrollToVisible(ih, m, next);
+ iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next);
}
else /* IMAT_SCROLLBAR */
{
+ /* always scrolling without changing focus */
p->first = iMatrixScrollGetNextNonEmpty(ih, m, p->first+1);
+ p->first_offset = 0;
}
}
@@ -349,7 +320,7 @@ void iupMatrixScrollRightDown(Ihandle* ih, int mode, float pos, int m)
-> pos : DO NOT USED
-> m : define the mode of operation: lines (PgLeft) or columns (PgUp) [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
*/
-void iupMatrixScrollPgLeftUp(Ihandle* ih, int mode, float pos, int m)
+void iupMatrixScrollPgLeftUpFunc(Ihandle* ih, int mode, float pos, int m)
{
ImatLinColData* p;
(void)pos;
@@ -361,12 +332,15 @@ void iupMatrixScrollPgLeftUp(Ihandle* ih, int mode, float pos, int m)
if (mode == IMAT_SCROLLKEY)
{
+ /* moving focus and eventually scrolling */
int next = iMatrixScrollGetPrevNonEmpty(ih, m, p->focus_cell - (p->last - p->first));
- iMatrixScrollSetFocusScrollToVisible(ih, m, next);
+ iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next);
}
else /* IMAT_SCROLLBAR */
{
+ /* always scrolling without changing focus */
p->first = iMatrixScrollGetPrevNonEmpty(ih, m, p->first - (p->last - p->first));
+ p->first_offset = 0;
}
}
@@ -376,7 +350,7 @@ void iupMatrixScrollPgLeftUp(Ihandle* ih, int mode, float pos, int m)
-> pos : DO NOT USED
-> m : define the mode of operation: lines (PgDown) or columns (PgRight) [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
*/
-void iupMatrixScrollPgRightDown(Ihandle* ih, int mode, float pos, int m)
+void iupMatrixScrollPgRightDownFunc(Ihandle* ih, int mode, float pos, int m)
{
ImatLinColData* p;
(void)pos;
@@ -388,16 +362,19 @@ void iupMatrixScrollPgRightDown(Ihandle* ih, int mode, float pos, int m)
if (mode == IMAT_SCROLLKEY)
{
- int next = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, p->focus_cell + (p->last - p->first));
- iMatrixScrollSetFocusScrollToVisible(ih, m, next);
+ /* moving focus and eventually scrolling */
+ int next = iMatrixScrollGetNextNonEmpty(ih, m, p->focus_cell + (p->last - p->first));
+ iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next);
}
else /* IMAT_SCROLLBAR */
{
+ /* always scrolling without changing focus */
p->first = iMatrixScrollGetPrevNonEmpty(ih, m, p->first + (p->last - p->first));
+ p->first_offset = 0;
}
}
-void iupMatrixScrollCr(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)
+void iupMatrixScrollCrFunc(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)
{
int oldlin = ih->data->lines.focus_cell;
int oldcol = ih->data->columns.focus_cell;
@@ -408,13 +385,13 @@ void iupMatrixScrollCr(Ihandle* ih, int unused_mode, float unused_pos, int unuse
/* called only for mode==IMAT_SCROLLKEY */
/* try the normal processing of next cell down */
- iupMatrixScrollRightDown(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN);
+ iupMatrixScrollRightDownFunc(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN);
if(ih->data->lines.focus_cell == oldlin && ih->data->columns.focus_cell == oldcol)
{
/* If focus was not changed, it was because it is in the last line of the column.
Go to the next column of the same line. */
- iupMatrixScrollRightDown(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL);
+ iupMatrixScrollRightDownFunc(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL);
}
}
@@ -423,70 +400,51 @@ void iupMatrixScrollCr(Ihandle* ih, int unused_mode, float unused_pos, int unuse
-> mode : DO NOT USED
-> m : define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
*/
-void iupMatrixScrollPos(Ihandle* ih, int mode, float pos, int m)
+void iupMatrixScrollPosFunc(Ihandle* ih, int mode, float pos, int m)
{
- int scroll_pos, index, vp;
- float d;
+ int scroll_pos;
ImatLinColData* p;
(void)mode;
if (m == IMAT_PROCESS_LIN)
- {
p = &(ih->data->lines);
- d = IupGetFloat(ih, "DY");
- }
else
- {
p = &(ih->data->columns);
- d = IupGetFloat(ih, "DX");
- }
if (p->num == 1)
{
p->first = 1;
+ p->first_offset = 0;
return;
}
scroll_pos = (int)(pos * p->total_size + 0.5);
- vp = 0;
- for(index = 1; index < p->num; index++)
- {
- vp += p->sizes[index];
- if (vp > scroll_pos)
- break;
- }
-
- if (index == p->num)
- {
- if (p->num == 1)
- index = 1;
- else
- index = p->num-1;
- }
-
- p->first = index;
+ /* position first and first_offset, according to scroll pos */
+ iupMatrixAuxAdjustFirstFromScrollPos(p, scroll_pos);
}
-int iupMatrixScroll_CB(Ihandle* ih, int action, float x, float y)
+/************************************************************************************/
+
+int iupMatrixScroll_CB(Ihandle* ih, int action, float posx, float posy)
{
if (!iupMatrixIsValid(ih, 0))
return IUP_DEFAULT;
switch(action)
{
- case IUP_SBUP : iupMatrixScrollUp(ih); break;
- case IUP_SBDN : iupMatrixScrollDown(ih); break;
- case IUP_SBPGUP : iupMatrixScrollPgUp(ih); break;
- case IUP_SBPGDN : iupMatrixScrollPgDown(ih); break;
- case IUP_SBRIGHT : iupMatrixScrollRight(ih); break;
- case IUP_SBLEFT : iupMatrixScrollLeft(ih); break;
- case IUP_SBPGRIGHT : iupMatrixScrollPgRight(ih); break;
- case IUP_SBPGLEFT : iupMatrixScrollPgLeft(ih); break;
- case IUP_SBPOSV : iupMatrixScrollPosVer(ih,y); break;
- case IUP_SBPOSH : iupMatrixScrollPosHor(ih,x); break;
- case IUP_SBDRAGV : iupMatrixScrollPosVer(ih,y); break;
- case IUP_SBDRAGH : iupMatrixScrollPosHor(ih,x); break;
+ case IUP_SBUP : iupMATRIX_ScrollUp(ih); break;
+ case IUP_SBDN : iupMATRIX_ScrollDown(ih); break;
+ case IUP_SBPGUP : iupMATRIX_ScrollPgUp(ih); break;
+ case IUP_SBPGDN : iupMATRIX_ScrollPgDown(ih); break;
+ case IUP_SBRIGHT : iupMATRIX_ScrollRight(ih); break;
+ case IUP_SBLEFT : iupMATRIX_ScrollLeft(ih); break;
+ case IUP_SBPGRIGHT : iupMATRIX_ScrollPgRight(ih); break;
+ case IUP_SBPGLEFT : iupMATRIX_ScrollPgLeft(ih); break;
+ case IUP_SBPOSV : iupMATRIX_ScrollPosVer(ih,posy); break;
+ case IUP_SBPOSH : iupMATRIX_ScrollPosHor(ih,posx); break;
+ case IUP_SBDRAGV : iupMATRIX_ScrollPosVer(ih,posy); break;
+ case IUP_SBDRAGH : iupMATRIX_ScrollPosHor(ih,posx); break;
}
iupMatrixDrawUpdate(ih);
diff --git a/iup/srccontrols/matrix/iupmat_scroll.h b/iup/srccontrols/matrix/iupmat_scroll.h
index 582442b..45d7417 100755
--- a/iup/srccontrols/matrix/iupmat_scroll.h
+++ b/iup/srccontrols/matrix/iupmat_scroll.h
@@ -12,54 +12,54 @@
extern "C" {
#endif
-int iupMatrixScroll_CB(Ihandle* ih, int action, float x, float y);
+int iupMatrixScroll_CB(Ihandle* ih, int action, float posx, float posy);
void iupMatrixScrollToVisible(Ihandle* ih, int lin, int col);
-typedef void (*iupMatrixScrollMoveF)(Ihandle* ih, int mode, float pos, int m);
-void iupMatrixScrollMoveCursor(iupMatrixScrollMoveF func, Ihandle* ih, int mode, float pos, int m);
+typedef void (*iupMatrixScrollMoveFunc)(Ihandle* ih, int mode, float pos, int m);
+void iupMatrixScrollMove(iupMatrixScrollMoveFunc func, Ihandle* ih, int mode, float pos, int m);
/* Used only by the macros bellow */
-void iupMatrixScrollHome (Ihandle* ih, int, float, int);
-void iupMatrixScrollEnd (Ihandle* ih, int, float, int);
-void iupMatrixScrollLeftUp (Ihandle* ih, int, float, int);
-void iupMatrixScrollRightDown (Ihandle* ih, int, float, int);
-void iupMatrixScrollPgLeftUp (Ihandle* ih, int, float, int);
-void iupMatrixScrollPgRightDown(Ihandle* ih, int, float, int);
-void iupMatrixScrollPos (Ihandle* ih, int, float, int);
-void iupMatrixScrollCr (Ihandle* ih, int, float, int);
+void iupMatrixScrollHomeFunc (Ihandle* ih, int, float, int);
+void iupMatrixScrollEndFunc (Ihandle* ih, int, float, int);
+void iupMatrixScrollLeftUpFunc (Ihandle* ih, int, float, int);
+void iupMatrixScrollRightDownFunc (Ihandle* ih, int, float, int);
+void iupMatrixScrollPgLeftUpFunc (Ihandle* ih, int, float, int);
+void iupMatrixScrollPgRightDownFunc(Ihandle* ih, int, float, int);
+void iupMatrixScrollPosFunc (Ihandle* ih, int, float, int);
+void iupMatrixScrollCrFunc (Ihandle* ih, int, float, int);
/* Mode used to "walk" inside the matrix.
It shows if the movement request was from the scrollbar or from a key.
- Possible values for the "mode" parameter of the iupMatrixScrollMoveCursor function.
+ Possible values for the "mode" parameter of the iupMatrixScrollMove function.
*/
#define IMAT_SCROLLBAR 0
#define IMAT_SCROLLKEY 1
-/* Macros to help during the call of iupMatrixScrollMoveCursor function */
+/* Macros to help during the call of iupMatrixScrollMove function */
/* used in the keyboard processing module */
-#define iupMatrixScrollKeyHome(ih) iupMatrixScrollMoveCursor(iupMatrixScrollHome , ih, IMAT_SCROLLKEY, 0, 0)
-#define iupMatrixScrollKeyEnd(ih) iupMatrixScrollMoveCursor(iupMatrixScrollEnd , ih, IMAT_SCROLLKEY, 0, 0)
-#define iupMatrixScrollKeyPgUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgLeftUp , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
-#define iupMatrixScrollKeyPgDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgRightDown, ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
-#define iupMatrixScrollKeyDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
-#define iupMatrixScrollKeyRight(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL)
-#define iupMatrixScrollKeyUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
-#define iupMatrixScrollKeyLeft(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL)
-#define iupMatrixScrollKeyCr(ih) iupMatrixScrollMoveCursor(iupMatrixScrollCr , ih, IMAT_SCROLLKEY, 0, 0)
+#define iupMATRIX_ScrollKeyHome(ih) iupMatrixScrollMove(iupMatrixScrollHomeFunc , ih, IMAT_SCROLLKEY, 0, 0)
+#define iupMATRIX_ScrollKeyEnd(ih) iupMatrixScrollMove(iupMatrixScrollEndFunc , ih, IMAT_SCROLLKEY, 0, 0)
+#define iupMATRIX_ScrollKeyPgUp(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
+#define iupMATRIX_ScrollKeyPgDown(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
+#define iupMATRIX_ScrollKeyDown(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
+#define iupMATRIX_ScrollKeyRight(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL)
+#define iupMATRIX_ScrollKeyUp(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
+#define iupMATRIX_ScrollKeyLeft(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL)
+#define iupMATRIX_ScrollKeyCr(ih) iupMatrixScrollMove(iupMatrixScrollCrFunc , ih, IMAT_SCROLLKEY, 0, 0)
/* Used by the scrollbar callback only */
-#define iupMatrixScrollUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
-#define iupMatrixScrollLeft(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
-#define iupMatrixScrollDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
-#define iupMatrixScrollRight(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
-#define iupMatrixScrollPgUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
-#define iupMatrixScrollPgLeft(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
-#define iupMatrixScrollPgDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgRightDown, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
-#define iupMatrixScrollPgRight(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgRightDown, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
-#define iupMatrixScrollPosVer(ih, y) iupMatrixScrollMoveCursor(iupMatrixScrollPos , ih, IMAT_SCROLLBAR, y, IMAT_PROCESS_LIN)
-#define iupMatrixScrollPosHor(ih, x) iupMatrixScrollMoveCursor(iupMatrixScrollPos , ih, IMAT_SCROLLBAR, x, IMAT_PROCESS_COL)
+#define iupMATRIX_ScrollUp(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
+#define iupMATRIX_ScrollLeft(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
+#define iupMATRIX_ScrollDown(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
+#define iupMATRIX_ScrollRight(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
+#define iupMATRIX_ScrollPgUp(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
+#define iupMATRIX_ScrollPgLeft(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
+#define iupMATRIX_ScrollPgDown(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
+#define iupMATRIX_ScrollPgRight(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
+#define iupMATRIX_ScrollPosVer(ih, y) iupMatrixScrollMove(iupMatrixScrollPosFunc , ih, IMAT_SCROLLBAR, posy, IMAT_PROCESS_LIN)
+#define iupMATRIX_ScrollPosHor(ih, x) iupMatrixScrollMove(iupMatrixScrollPosFunc , ih, IMAT_SCROLLBAR, posx, IMAT_PROCESS_COL)
#ifdef __cplusplus
diff --git a/iup/srccontrols/matrix/iupmatrix.c b/iup/srccontrols/matrix/iupmatrix.c
index 20d618d..9e379e2 100755
--- a/iup/srccontrols/matrix/iupmatrix.c
+++ b/iup/srccontrols/matrix/iupmatrix.c
@@ -76,10 +76,13 @@ static int iMatrixSetOriginAttrib(Ihandle* ih, const char* value)
return 0;
ih->data->columns.first = col;
+ ih->data->columns.first_offset = 0;
ih->data->lines.first = lin;
+ ih->data->lines.first_offset = 0;
- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL);
- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN);
+ /* when "first" is changed must update scroll pos */
+ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL);
+ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN);
iupMatrixDraw(ih, 1);
return 0;
@@ -109,7 +112,7 @@ static int iMatrixSetShowAttrib(Ihandle* ih, const char* value)
if((lin < 1) || (col < 1))
return 0;
- if (!iupMatrixAuxIsCellFullVisible(ih, lin, col))
+ if (!iupMatrixAuxIsCellStartVisible(ih, lin, col))
iupMatrixScrollToVisible(ih, lin, col);
return 0;
@@ -173,6 +176,23 @@ static char* iMatrixGetUseTitleSizeAttrib(Ihandle* ih)
return "NO";
}
+static int iMatrixSetHiddenTextMarksAttrib(Ihandle* ih, const char* value)
+{
+ if (iupStrBoolean(value))
+ ih->data->hidden_text_marks = 1;
+ else
+ ih->data->hidden_text_marks = 0;
+ return 0;
+}
+
+static char* iMatrixGetHiddenTextMarksAttrib(Ihandle* ih)
+{
+ if (ih->data->hidden_text_marks)
+ return "YES";
+ else
+ return "NO";
+}
+
static int iMatrixSetValueAttrib(Ihandle* ih, const char* value)
{
if (IupGetInt(ih->data->datah, "VISIBLE"))
@@ -228,14 +248,14 @@ static char* iMatrixGetMultilineAttrib(Ihandle* ih)
static char* iMatrixGetNumLinAttrib(Ihandle* ih)
{
char* num = iupStrGetMemory(100);
- sprintf(num, "%d", ih->data->lines.num-1);
+ sprintf(num, "%d", ih->data->lines.num-1); /* the attribute does not include the title */
return num;
}
static char* iMatrixGetNumColAttrib(Ihandle* ih)
{
char* num = iupStrGetMemory(100);
- sprintf(num, "%d", ih->data->columns.num-1);
+ sprintf(num, "%d", ih->data->columns.num-1); /* the attribute does not include the title */
return num;
}
@@ -427,13 +447,19 @@ static char* iMatrixGetAlignmentAttrib(Ihandle* ih, const char* name_id)
align = iupAttribGet(ih, str);
if (!align)
{
- int col;
- if (iupStrToInt(name_id, &col))
+ align = iupAttribGet(ih, "ALIGNMENT");
+ if (align)
+ return align;
+ else
{
- if (col == 0)
- return "ALEFT";
- else
- return "ACENTER";
+ int col;
+ if (iupStrToInt(name_id, &col))
+ {
+ if (col == 0)
+ return "ALEFT";
+ else
+ return "ACENTER";
+ }
}
}
@@ -642,7 +668,7 @@ static int iMatrixCreateMethod(Ihandle* ih, void **params)
/* Create the edit fields */
iupMatrixEditCreate(ih);
- /* defaults */
+ /* defaults that are non zero */
ih->data->datah = ih->data->texth;
ih->data->mark_continuous = 1;
ih->data->columns.num = 1;
@@ -656,7 +682,6 @@ static int iMatrixCreateMethod(Ihandle* ih, void **params)
ih->data->mark_col1 = -1;
ih->data->mark_lin2 = -1;
ih->data->mark_col2 = -1;
- ih->data->use_title_size = 0;
return IUP_NOERROR;
}
@@ -700,11 +725,34 @@ static void iMatrixUnMapMethod(Ihandle* ih)
iupMatrixMemRelease(ih);
}
+static char* iMatrixGetDefault(Ihandle* ih, const char* name)
+{
+ int inherit;
+ char *def_value;
+ iupClassObjectGetAttributeInfo(ih, name, &def_value, &inherit);
+ return def_value;
+}
+
+static int iMatrixGetInt(Ihandle* ih, const char* name)
+{
+ char *value = iupAttribGet(ih, name);
+ if (!value) value = iMatrixGetDefault(ih, name);
+ if (value)
+ {
+ int i = 0;
+ if (iupStrToInt(value, &i))
+ return i;
+ }
+ return 0;
+}
+
static int iMatrixGetNaturalWidth(Ihandle* ih)
{
int width = 0, num, col;
- num = iupAttribGetInt(ih, "NUMCOL_VISIBLE")+1; /* include the title column */
+ /* must use this custom function because
+ the get method for this attribute returns a value with a different meaning */
+ num = iMatrixGetInt(ih, "NUMCOL_VISIBLE")+1; /* include the title column */
if (iupAttribGetInt(ih, "NUMCOL_VISIBLE_LAST"))
{
@@ -716,9 +764,7 @@ static int iMatrixGetNaturalWidth(Ihandle* ih)
}
else
{
- if (num > ih->data->columns.num)
- num = ih->data->columns.num;
- for(col = 0; col < num; col++)
+ for(col = 0; col < num; col++) /* num can be > numcol */
width += iupMatrixAuxGetColumnWidth(ih, col);
}
@@ -729,7 +775,9 @@ static int iMatrixGetNaturalHeight(Ihandle* ih)
{
int height = 0, num, lin;
- num = iupAttribGetInt(ih, "NUMLIN_VISIBLE")+1; /* include the title line */
+ /* must use this custom function because
+ the get method for this attribute returns a value with a different meaning */
+ num = iMatrixGetInt(ih, "NUMLIN_VISIBLE")+1; /* include the title line */
if (iupAttribGetInt(ih, "NUMLIN_VISIBLE_LAST"))
{
@@ -741,9 +789,7 @@ static int iMatrixGetNaturalHeight(Ihandle* ih)
}
else
{
- if (num > ih->data->lines.num)
- num = ih->data->lines.num;
- for(lin = 0; lin < num; lin++)
+ for(lin = 0; lin < num; lin++) /* num can be > numlin */
height += iupMatrixAuxGetLineHeight(ih, lin);
}
@@ -902,6 +948,8 @@ Iclass* iupMatrixGetClass(void)
/* IupMatrix Attributes - GENERAL */
iupClassRegisterAttribute(ic, "USETITLESIZE", iMatrixGetUseTitleSizeAttrib, iMatrixSetUseTitleSizeAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "HIDDENTEXTMARKS", iMatrixGetHiddenTextMarksAttrib, iMatrixSetHiddenTextMarksAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+
iupClassRegisterAttribute(ic, "FRAMECOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "100 100 100", IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "READONLY", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "RESIZEMATRIX", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
diff --git a/iup/srcgl/Makefile b/iup/srcgl/Makefile
index 882d0d2..48037f0 100755
--- a/iup/srcgl/Makefile
+++ b/iup/srcgl/Makefile
@@ -3,4 +3,4 @@
do_all: iupgl
iupgl:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
+ @$(MAKE) --no-print-directory -f ../tecmake.mak
diff --git a/iup/srcim/Makefile b/iup/srcim/Makefile
index 933ded1..d47e014 100755
--- a/iup/srcim/Makefile
+++ b/iup/srcim/Makefile
@@ -3,4 +3,4 @@
do_all: iupim
iupim:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
+ @$(MAKE) --no-print-directory -f ../tecmake.mak
diff --git a/iup/srcim/iup_im.c b/iup/srcim/iup_im.c
index c26a3ff..ce58d80 100755
--- a/iup/srcim/iup_im.c
+++ b/iup/srcim/iup_im.c
@@ -23,7 +23,7 @@
#include "iup_image.h"
-static void PrintError(int error)
+static void iSaveErrorMsg(int error)
{
char* lang = IupGetLanguage();
char* msg;
@@ -31,20 +31,22 @@ static void PrintError(int error)
{
switch (error)
{
+ case IM_ERR_NONE:
+ msg = NULL;
case IM_ERR_OPEN:
- msg = "Error Opening File.\n";
+ msg = "Error Opening Image File.\n";
break;
case IM_ERR_MEM:
msg = "Insuficient memory.\n";
break;
case IM_ERR_ACCESS:
- msg = "Error Accessing File.\n";
+ msg = "Error Accessing Image File.\n";
break;
case IM_ERR_DATA:
msg = "Image type not Suported.\n";
break;
case IM_ERR_FORMAT:
- msg = "Invalid Format.\n";
+ msg = "Invalid Image File Format.\n";
break;
case IM_ERR_COMPRESS:
msg = "Invalid or unsupported compression.\n";
@@ -57,20 +59,22 @@ static void PrintError(int error)
{
switch (error)
{
+ case IM_ERR_NONE:
+ msg = NULL;
case IM_ERR_OPEN:
- msg = "Erro Abrindo Arquivo.\n";
+ msg = "Erro Abrindo Arquivo de Imagem.\n";
break;
case IM_ERR_MEM:
msg = "Memória Insuficiente.\n";
break;
case IM_ERR_ACCESS:
- msg = "Erro Acessando Arquivo.\n";
+ msg = "Erro Acessando Arquivo de Imagem.\n";
break;
case IM_ERR_DATA:
msg = "Tipo de Imagem não Suportado.\n";
break;
case IM_ERR_FORMAT:
- msg = "Formato Inválido.\n";
+ msg = "Formato de Arquivo de Imagem Inválido.\n";
break;
case IM_ERR_COMPRESS:
msg = "Compressão Inválida ou não Suportada.\n";
@@ -80,7 +84,7 @@ static void PrintError(int error)
}
}
- IupMessage("Error", msg);
+ IupSetGlobal("IUPIM_LASTERROR", msg);
}
Ihandle* IupLoadImage(const char* file_name)
@@ -165,7 +169,7 @@ load_finish:
imCounterSetCallback(NULL, old_callback);
if (ifile) imFileClose(ifile);
if (image_data) free(image_data);
- if (error) PrintError(error);
+ iSaveErrorMsg(error);
return iup_image;
}
@@ -188,7 +192,7 @@ int IupSaveImage(Ihandle* ih, const char* file_name, const char* format)
ifile = imFileNew(file_name, format, &error);
if (!ifile)
{
- PrintError(error);
+ iSaveErrorMsg(error);
return 0;
}
@@ -238,8 +242,7 @@ int IupSaveImage(Ihandle* ih, const char* file_name, const char* format)
imFileClose(ifile);
- if (error)
- PrintError(error);
+ iSaveErrorMsg(error);
return error == IM_ERR_NONE? 1: 0;
}
diff --git a/iup/srcimglib/Makefile b/iup/srcimglib/Makefile
index 261537a..873715f 100755
--- a/iup/srcimglib/Makefile
+++ b/iup/srcimglib/Makefile
@@ -3,4 +3,4 @@
do_all: iupimglib
iupimglib:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
+ @$(MAKE) --no-print-directory -f ../tecmake.mak
diff --git a/iup/srcledc/Makefile b/iup/srcledc/Makefile
index 8854269..71b9235 100755
--- a/iup/srcledc/Makefile
+++ b/iup/srcledc/Makefile
@@ -3,4 +3,4 @@
do_all: ledc
ledc:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
+ @$(MAKE) --no-print-directory -f ../tecmake.mak
diff --git a/iup/srclua3/Makefile b/iup/srclua3/Makefile
index b63716a..0551725 100755
--- a/iup/srclua3/Makefile
+++ b/iup/srclua3/Makefile
@@ -3,19 +3,19 @@
do_all: iuplua iupluacd iupluacontrols iuplua_pplot iupluagl iupluaim
iuplua:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
+ @$(MAKE) --no-print-directory -f ../tecmake.mak
iupluacd:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcd
+ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcd
iupluacontrols:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcontrols
+ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcontrols
iuplua_pplot:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iup_pplot
+ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iup_pplot
iupluagl:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupgl
+ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupgl
iupluaim:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupim
+ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupim
diff --git a/iup/srclua3/config.mak b/iup/srclua3/config.mak
index fae6145..a3ffb1d 100755
--- a/iup/srclua3/config.mak
+++ b/iup/srclua3/config.mak
@@ -6,9 +6,9 @@ OPT = YES
LOHDIR = loh
SRCLUA = iuplua.lua iuplua_widgets.lua constants.lua spin.lua \
- sbox.lua val.lua tree.lua tabs.lua
+ sbox.lua split.lua val.lua tree.lua tabs.lua
SRC = iuplua.c iuplua_api.c iuplua_widgets.c il_scanf.c il_cbox.c \
- il_sbox.c il_spin.c il_val.c il_tree.c il_tabs.c il_getcolor.c il_getparam.c
+ il_sbox.c il_split.c il_spin.c il_val.c il_tree.c il_tabs.c il_getcolor.c il_getparam.c
USE_LUA = Yes
diff --git a/iup/srclua3/il.h b/iup/srclua3/il.h
index 406ccc4..63f9866 100755
--- a/iup/srclua3/il.h
+++ b/iup/srclua3/il.h
@@ -15,6 +15,7 @@ int iupluaapi_open(void);
int iupluawidgets_open(int tag);
int sboxlua_open(void);
+int splitlua_open(void);
int spinlua_open(void);
int cboxlua_open(void);
int gclua_open (void);
diff --git a/iup/srclua3/il_getparam.c b/iup/srclua3/il_getparam.c
index 28a41be..6005ce8 100755
--- a/iup/srclua3/il_getparam.c
+++ b/iup/srclua3/il_getparam.c
@@ -93,6 +93,8 @@ static void GetParam(void)
param_data[i] = malloc(sizeof(float));
*(float*)(param_data[i]) = (float)luaL_check_number(lua_param_start); lua_param_start++;
break;
+ case 'f':
+ case 'c':
case 's':
case 'm':
s = luaL_check_string(lua_param_start); lua_param_start++;
@@ -136,6 +138,8 @@ static void GetParam(void)
case 'r':
lua_pushnumber(*(float*)(param_data[i]));
break;
+ case 'f':
+ case 'c':
case 's':
case 'm':
lua_pushstring((char*)(param_data[i]));
diff --git a/iup/srclua3/il_split.c b/iup/srclua3/il_split.c
new file mode 100644
index 0000000..9d6f70c
--- /dev/null
+++ b/iup/srclua3/il_split.c
@@ -0,0 +1,50 @@
+/** \file
+ * \brief Bindig of iupsplit to Lua 3.
+ *
+ * See Copyright Notice in "iup.h"
+ */
+
+#include <stdlib.h>
+
+#include "iup.h"
+
+#include <lua.h>
+
+#include "iuplua.h"
+#include "il.h"
+#include "il_controls.h"
+
+static void CreateSplit(void)
+{
+ int tag = (int)lua_getnumber(lua_getglobal("iuplua_tag"));
+ lua_pushusertag(IupSplit(iuplua_checkihandle(1), iuplua_checkihandle(2)), tag);
+}
+
+int splitlua_open(void)
+{
+ lua_register("iupCreateSplit", CreateSplit);
+
+#ifdef IUPLUA_USELOH
+#ifdef TEC_BIGENDIAN
+#ifdef TEC_64
+#include "loh/split_be64.loh"
+#else
+#include "loh/split_be32.loh"
+#endif
+#else
+#ifdef TEC_64
+#ifdef WIN64
+#include "loh/split_le64w.loh"
+#else
+#include "loh/split_le64.loh"
+#endif
+#else
+#include "loh/split.loh"
+#endif
+#endif
+#else
+ iuplua_dofile("luasplit.lua");
+#endif
+
+ return 1;
+}
diff --git a/iup/srclua3/il_tree.c b/iup/srclua3/il_tree.c
index 8d5fcf8..5d145bf 100755
--- a/iup/srclua3/il_tree.c
+++ b/iup/srclua3/il_tree.c
@@ -91,6 +91,29 @@ static int TREE_multiselection (Ihandle *handle, int *ids, int n)
return iuplua_call();
}
+static int TREE_multiunselection (Ihandle *handle, int *ids, int n)
+{
+ int i;
+ lua_Object tb;
+
+ iuplua_call_start(handle, "multiunselection");
+
+ tb = lua_createtable();
+ for (i = 0; i < n; i++)
+ {
+ lua_beginblock();
+ lua_pushobject(tb);
+ lua_pushnumber(i+1);
+ lua_pushnumber(ids[i]);
+ lua_settable();
+ lua_endblock();
+ }
+ lua_pushobject(tb);
+
+ lua_pushnumber (n);
+ return iuplua_call();
+}
+
static int TREE_dragdrop(Ihandle* handle, int drag_id, int drop_id, int isshift, int iscontrol)
{
iuplua_call_start(handle, "dragdrop");
@@ -232,6 +255,7 @@ int treelua_open(void)
lua_CFunction func;
} TreeAssocList [] = {
{"iup_tree_multiselection_cb", (lua_CFunction)TREE_multiselection},
+ {"iup_tree_multiunselection_cb", (lua_CFunction)TREE_multiunselection},
{"iup_tree_selection_cb", (lua_CFunction)TREE_selection},
{"iup_tree_branchopen_cb", (lua_CFunction)TREE_branchopen},
{"iup_tree_branchclose_cb", (lua_CFunction)TREE_branchclose},
diff --git a/iup/srclua3/iuplua.c b/iup/srclua3/iuplua.c
index 7789ce8..5563699 100755
--- a/iup/srclua3/iuplua.c
+++ b/iup/srclua3/iuplua.c
@@ -481,6 +481,7 @@ int iuplua_open(void)
iupluawidgets_open(iuplua_tag);
sboxlua_open();
+ splitlua_open();
spinlua_open();
cboxlua_open();
vallua_open();
diff --git a/iup/srclua3/iuplua_api.c b/iup/srclua3/iuplua_api.c
index 3221658..a9acf1d 100755
--- a/iup/srclua3/iuplua_api.c
+++ b/iup/srclua3/iuplua_api.c
@@ -182,7 +182,7 @@ static void GetAttribute(void)
char *name = luaL_check_string(2);
Ihandle* ih = iuplua_checkihandle(1);
char *value = IupGetAttribute(ih, name);
- if (!value || iupAttribIsInternal(name))
+ if (!value || iupATTRIB_ISINTERNAL(name))
lua_pushnil();
else
{
diff --git a/iup/srclua3/iuplua_widgets.c b/iup/srclua3/iuplua_widgets.c
index f6b801b..7591580 100755
--- a/iup/srclua3/iuplua_widgets.c
+++ b/iup/srclua3/iuplua_widgets.c
@@ -170,6 +170,12 @@ static int iupluaUnMapCb(Ihandle* handle)
return iuplua_call();
}
+static int iupluaDestroyCb(Ihandle* handle)
+{
+ iuplua_call_start(handle, "destroycb");
+ return iuplua_call();
+}
+
static int iupluaMapCb(Ihandle* handle)
{
iuplua_call_start(handle, "mapcb");
@@ -610,6 +616,7 @@ int iupluawidgets_open(int tag)
{ "iup_show_cb", (lua_CFunction)dialog_show},
{ "iup_map_cb", (lua_CFunction)iupluaMapCb},
{ "iup_unmap_cb", (lua_CFunction)iupluaUnMapCb},
+ { "iup_destroy_cb", (lua_CFunction)iupluaDestroyCb},
{ "iup_dropfiles_cb", (lua_CFunction)iupluaDropfilesCb},
{ "iup_trayclick_cb", (lua_CFunction)dialog_trayclick},
{ "iup_getfocus_cb", (lua_CFunction)iupluaGetfocusCb},
diff --git a/iup/srclua3/iuplua_widgets.lua b/iup/srclua3/iuplua_widgets.lua
index 33be9e3..a59bde6 100755
--- a/iup/srclua3/iuplua_widgets.lua
+++ b/iup/srclua3/iuplua_widgets.lua
@@ -875,6 +875,7 @@ iup_callbacks =
showcb = {"SHOW_CB", iup_show_cb},
mapcb = {"MAP_CB", iup_map_cb},
unmapcb = {"UNMAP_CB", iup_unmap_cb},
+ destroycb = {"DESTROY_CB", iup_destroy_cb},
dropfiles = {"DROPFILES_CB", iup_dropfiles_cb},
menuclose = {"MENUCLOSE_CB", iup_menuclose_cb},
highlight = {"HIGHLIGHT_CB", iup_highlight_cb},
@@ -921,6 +922,7 @@ iup_callbacks.open_cb = iup_callbacks.open
iup_callbacks.show_cb = iup_callbacks.showcb
iup_callbacks.map_cb = iup_callbacks.mapcb
iup_callbacks.unmap_cb = iup_callbacks.unmapcb
+iup_callbacks.destroy_cb = iup_callbacks.destroycb
iup_callbacks.dropfiles_cb = iup_callbacks.dropfiles
iup_callbacks.menuclose_cb = iup_callbacks.menuclose
iup_callbacks.highlight_cb = iup_callbacks.highlight
diff --git a/iup/srclua3/loh/cells.loh b/iup/srclua3/loh/cells.loh
deleted file mode 100755
index 78336b8..0000000
--- a/iup/srclua3/loh/cells.loh
+++ /dev/null
@@ -1,76 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luacells.lo");
-*/
-/* ../obj/iupluacontrols3/luacells.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97, 99,101,
-108,108,115, 46,108,117, 97, 0, 0, 0, 0,245, 5, 0, 22, 1, 11, 1, 15, 2,
- 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 11, 8,
- 25, 7, 15, 9, 11, 10, 15, 7, 26, 15, 11, 11, 12, 22, 2, 11, 13, 15, 14, 29,
- 0, 2, 26, 15, 11, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 11, 11,
- 18, 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 11, 11, 21, 22, 2, 11, 22, 15,
- 23, 29, 0, 2, 26, 15, 11, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15,
- 11, 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 11, 11, 30, 22, 2, 11,
- 31, 15, 32, 29, 0, 2, 26, 15, 11, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2,
- 26, 15, 11, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 11, 11, 39, 15,
- 11, 18, 12, 26, 15, 11, 11, 40, 15, 11, 18, 15, 26, 15, 11, 11, 41, 15, 11, 18,
- 18, 26, 15, 11, 11, 42, 15, 11, 18, 21, 26, 15, 11, 11, 43, 15, 11, 18, 24, 26,
- 15, 11, 11, 44, 15, 11, 18, 27, 26, 15, 11, 11, 45, 15, 11, 18, 30, 26, 15, 11,
- 11, 46, 15, 11, 18, 33, 26, 15, 11, 11, 47, 15, 11, 18, 36, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 2, 0, 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2,
- 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71,
- 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,
-109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 64,108,117, 97, 99,101,
-108,108,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0,
- 0, 15,105,117,112, 67,114,101, 97,116,101, 67,101,108,108,115, 0, 2, 0, 0,
- 0, 7,114,101,100,114, 97,119, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64,108,
-117, 97, 99,101,108,108,115, 46,108,117, 97, 0, 0, 0, 0, 10, 4, 1, 13, 0,
- 11, 1, 15, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,
-101,108,102, 0, 2, 0, 0, 0, 8,114,101,112, 97,105,110,116, 0, 2, 0, 0,
- 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 9,105,117,112, 99,101,
-108,108,115, 0, 4, 0, 0, 0, 11, 0, 0, 0, 14, 64,108,117, 97, 99,101,108,
-108,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 6, 99,101,108,108,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,
-108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 11,109,111,117,115,101, 99,108,
-105, 99,107, 0, 2, 0, 0, 0, 14, 77, 79, 85, 83, 69, 67, 76, 73, 67, 75, 95,
- 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95, 99,101,108,108,115, 95,109,111,
-117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 12,109,111,117,
-115,101,109,111,116,105,111,110, 0, 2, 0, 0, 0, 15, 77, 79, 85, 83, 69, 77,
- 79, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95, 99,101,
-108,108,115, 95,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,115, 99,114,111,108,108,105,110,103, 0, 2, 0, 0, 0, 13, 83,
- 67, 82, 79, 76, 76, 73, 78, 71, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112,
- 95, 99,101,108,108,115, 95,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0,
- 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 9, 87, 73, 68, 84,
- 72, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,
-119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116,
- 0, 2, 0, 0, 0, 10, 72, 69, 73, 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0,
- 20,105,117,112, 95, 99,101,108,108,115, 95,104,101,105,103,104,116, 95, 99, 98,
- 0, 2, 0, 0, 0, 7,110,108,105,110,101,115, 0, 2, 0, 0, 0, 10, 78, 76,
- 73, 78, 69, 83, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95, 99,101,108,
-108,115, 95,110,108,105,110,101,115, 95, 99, 98, 0, 2, 0, 0, 0, 6,110, 99,
-111,108,115, 0, 2, 0, 0, 0, 9, 78, 67, 79, 76, 83, 95, 67, 66, 0, 2, 0,
- 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,110, 99,111,108,115, 95, 99,
- 98, 0, 2, 0, 0, 0, 6,104,115,112, 97,110, 0, 2, 0, 0, 0, 9, 72, 83,
- 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,
-115, 95,104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 6,118,115,112, 97,
-110, 0, 2, 0, 0, 0, 9, 86, 83, 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0,
- 19,105,117,112, 95, 99,101,108,108,115, 95,118,115,112, 97,110, 95, 99, 98, 0,
- 2, 0, 0, 0, 14,109,111,117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2,
- 0, 0, 0, 15,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 13,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0, 2, 0, 0,
- 0, 9,119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,101,105,103,
-104,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,110,108,105,110,101,115, 95, 99, 98,
- 0, 2, 0, 0, 0, 9,110, 99,111,108,115, 95, 99, 98, 0, 2, 0, 0, 0, 9,
-104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 9,118,115,112, 97,110, 95,
- 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacells.lo");
-}
diff --git a/iup/srclua3/loh/cells_be32.loh b/iup/srclua3/loh/cells_be32.loh
deleted file mode 100755
index d1db35f..0000000
--- a/iup/srclua3/loh/cells_be32.loh
+++ /dev/null
@@ -1,76 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luacells_be32.lo");
-*/
-/* ../obj/iupluacontrols3/luacells_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97, 99,101,
-108,108,115, 46,108,117, 97, 0, 0, 0, 0,245, 5, 0, 22, 1, 11, 1, 15, 2,
- 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 11, 8,
- 25, 7, 15, 9, 11, 10, 15, 7, 26, 15, 11, 11, 12, 22, 2, 11, 13, 15, 14, 29,
- 0, 2, 26, 15, 11, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 11, 11,
- 18, 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 11, 11, 21, 22, 2, 11, 22, 15,
- 23, 29, 0, 2, 26, 15, 11, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15,
- 11, 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 11, 11, 30, 22, 2, 11,
- 31, 15, 32, 29, 0, 2, 26, 15, 11, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2,
- 26, 15, 11, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 11, 11, 39, 15,
- 11, 18, 12, 26, 15, 11, 11, 40, 15, 11, 18, 15, 26, 15, 11, 11, 41, 15, 11, 18,
- 18, 26, 15, 11, 11, 42, 15, 11, 18, 21, 26, 15, 11, 11, 43, 15, 11, 18, 24, 26,
- 15, 11, 11, 44, 15, 11, 18, 27, 26, 15, 11, 11, 45, 15, 11, 18, 30, 26, 15, 11,
- 11, 46, 15, 11, 18, 33, 26, 15, 11, 11, 47, 15, 11, 18, 36, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 2, 0, 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2,
- 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71,
- 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,
-109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 64,108,117, 97, 99,101,
-108,108,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0,
- 0, 15,105,117,112, 67,114,101, 97,116,101, 67,101,108,108,115, 0, 2, 0, 0,
- 0, 7,114,101,100,114, 97,119, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64,108,
-117, 97, 99,101,108,108,115, 46,108,117, 97, 0, 0, 0, 0, 10, 4, 1, 13, 0,
- 11, 1, 15, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,
-101,108,102, 0, 2, 0, 0, 0, 8,114,101,112, 97,105,110,116, 0, 2, 0, 0,
- 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 9,105,117,112, 99,101,
-108,108,115, 0, 4, 0, 0, 0, 11, 0, 0, 0, 14, 64,108,117, 97, 99,101,108,
-108,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 6, 99,101,108,108,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,
-108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 11,109,111,117,115,101, 99,108,
-105, 99,107, 0, 2, 0, 0, 0, 14, 77, 79, 85, 83, 69, 67, 76, 73, 67, 75, 95,
- 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95, 99,101,108,108,115, 95,109,111,
-117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 12,109,111,117,
-115,101,109,111,116,105,111,110, 0, 2, 0, 0, 0, 15, 77, 79, 85, 83, 69, 77,
- 79, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95, 99,101,
-108,108,115, 95,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,115, 99,114,111,108,108,105,110,103, 0, 2, 0, 0, 0, 13, 83,
- 67, 82, 79, 76, 76, 73, 78, 71, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112,
- 95, 99,101,108,108,115, 95,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0,
- 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 9, 87, 73, 68, 84,
- 72, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,
-119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116,
- 0, 2, 0, 0, 0, 10, 72, 69, 73, 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0,
- 20,105,117,112, 95, 99,101,108,108,115, 95,104,101,105,103,104,116, 95, 99, 98,
- 0, 2, 0, 0, 0, 7,110,108,105,110,101,115, 0, 2, 0, 0, 0, 10, 78, 76,
- 73, 78, 69, 83, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95, 99,101,108,
-108,115, 95,110,108,105,110,101,115, 95, 99, 98, 0, 2, 0, 0, 0, 6,110, 99,
-111,108,115, 0, 2, 0, 0, 0, 9, 78, 67, 79, 76, 83, 95, 67, 66, 0, 2, 0,
- 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,110, 99,111,108,115, 95, 99,
- 98, 0, 2, 0, 0, 0, 6,104,115,112, 97,110, 0, 2, 0, 0, 0, 9, 72, 83,
- 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,
-115, 95,104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 6,118,115,112, 97,
-110, 0, 2, 0, 0, 0, 9, 86, 83, 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0,
- 19,105,117,112, 95, 99,101,108,108,115, 95,118,115,112, 97,110, 95, 99, 98, 0,
- 2, 0, 0, 0, 14,109,111,117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2,
- 0, 0, 0, 15,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 13,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0, 2, 0, 0,
- 0, 9,119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,101,105,103,
-104,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,110,108,105,110,101,115, 95, 99, 98,
- 0, 2, 0, 0, 0, 9,110, 99,111,108,115, 95, 99, 98, 0, 2, 0, 0, 0, 9,
-104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 9,118,115,112, 97,110, 95,
- 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacells_be32.lo");
-}
diff --git a/iup/srclua3/loh/cells_be64.loh b/iup/srclua3/loh/cells_be64.loh
deleted file mode 100755
index b832e4b..0000000
--- a/iup/srclua3/loh/cells_be64.loh
+++ /dev/null
@@ -1,75 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/cells_be64.lo");
-*/
-/* ../obj/iupluacontrols3/cells_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64, 99,101,108,108,115,
- 46,108,117, 97, 0, 0, 0, 0,245, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25,
- 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 11, 8, 25, 7, 15,
- 9, 11, 10, 15, 7, 26, 15, 11, 11, 12, 22, 2, 11, 13, 15, 14, 29, 0, 2, 26,
- 15, 11, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 11, 11, 18, 22, 2,
- 11, 19, 15, 20, 29, 0, 2, 26, 15, 11, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0,
- 2, 26, 15, 11, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 11, 11, 27,
- 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 11, 11, 30, 22, 2, 11, 31, 15, 32,
- 29, 0, 2, 26, 15, 11, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 11,
- 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 11, 11, 39, 15, 11, 18, 12,
- 26, 15, 11, 11, 40, 15, 11, 18, 15, 26, 15, 11, 11, 41, 15, 11, 18, 18, 26, 15,
- 11, 11, 42, 15, 11, 18, 21, 26, 15, 11, 11, 43, 15, 11, 18, 24, 26, 15, 11, 11,
- 44, 15, 11, 18, 27, 26, 15, 11, 11, 45, 15, 11, 18, 30, 26, 15, 11, 11, 46, 15,
- 11, 18, 33, 26, 15, 11, 11, 47, 15, 11, 18, 36, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 48, 2, 0, 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, 0, 0, 0,
- 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0,
- 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,
-116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 11, 64, 99,101,108,108,115, 46,108,117,
- 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,
-114,101, 97,116,101, 67,101,108,108,115, 0, 2, 0, 0, 0, 7,114,101,100,114,
- 97,119, 0, 4, 0, 0, 0, 7, 0, 0, 0, 11, 64, 99,101,108,108,115, 46,108,
-117, 97, 0, 0, 0, 0, 10, 4, 1, 13, 0, 11, 1, 15, 2, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 8,
-114,101,112, 97,105,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, 69, 83,
- 0, 2, 0, 0, 0, 9,105,117,112, 99,101,108,108,115, 0, 4, 0, 0, 0, 11,
- 0, 0, 0, 11, 64, 99,101,108,108,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 6, 99,101,108,108,115, 0, 2, 0, 0,
- 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0,
- 11,109,111,117,115,101, 99,108,105, 99,107, 0, 2, 0, 0, 0, 14, 77, 79, 85,
- 83, 69, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,
- 99,101,108,108,115, 95,109,111,117,115,101, 99,108,105, 99,107, 95, 99, 98, 0,
- 2, 0, 0, 0, 12,109,111,117,115,101,109,111,116,105,111,110, 0, 2, 0, 0,
- 0, 15, 77, 79, 85, 83, 69, 77, 79, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0,
- 0, 25,105,117,112, 95, 99,101,108,108,115, 95,109,111,117,115,101,109,111,116,
-105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 10,115, 99,114,111,108,108,105,110,
-103, 0, 2, 0, 0, 0, 13, 83, 67, 82, 79, 76, 76, 73, 78, 71, 95, 67, 66, 0,
- 2, 0, 0, 0, 23,105,117,112, 95, 99,101,108,108,115, 95,115, 99,114,111,108,
-108,105,110,103, 95, 99, 98, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2,
- 0, 0, 0, 9, 87, 73, 68, 84, 72, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,
-112, 95, 99,101,108,108,115, 95,119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0,
- 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, 10, 72, 69, 73, 71, 72, 84,
- 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95, 99,101,108,108,115, 95,104,
-101,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 7,110,108,105,110,101,115,
- 0, 2, 0, 0, 0, 10, 78, 76, 73, 78, 69, 83, 95, 67, 66, 0, 2, 0, 0, 0,
- 20,105,117,112, 95, 99,101,108,108,115, 95,110,108,105,110,101,115, 95, 99, 98,
- 0, 2, 0, 0, 0, 6,110, 99,111,108,115, 0, 2, 0, 0, 0, 9, 78, 67, 79,
- 76, 83, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,115,
- 95,110, 99,111,108,115, 95, 99, 98, 0, 2, 0, 0, 0, 6,104,115,112, 97,110,
- 0, 2, 0, 0, 0, 9, 72, 83, 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,
-105,117,112, 95, 99,101,108,108,115, 95,104,115,112, 97,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 6,118,115,112, 97,110, 0, 2, 0, 0, 0, 9, 86, 83, 80, 65, 78,
- 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,118,
-115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 14,109,111,117,115,101, 99,108,
-105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,111,117,115,101,109,111,116,
-105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,115, 99,114,111,108,108,105,110,
-103, 95, 99, 98, 0, 2, 0, 0, 0, 9,119,105,100,116,104, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,104,101,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,110,
-108,105,110,101,115, 95, 99, 98, 0, 2, 0, 0, 0, 9,110, 99,111,108,115, 95,
- 99, 98, 0, 2, 0, 0, 0, 9,104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0,
- 0, 9,118,115,112, 97,110, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/cells_be64.lo");
-}
diff --git a/iup/srclua3/loh/cells_le64.loh b/iup/srclua3/loh/cells_le64.loh
deleted file mode 100755
index 11a2caf..0000000
--- a/iup/srclua3/loh/cells_le64.loh
+++ /dev/null
@@ -1,76 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luacells_le64.lo");
-*/
-/* ../obj/iupluacontrols3/luacells_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97, 99,101,
-108,108,115, 46,108,117, 97, 0, 0, 0, 0,245, 5, 0, 22, 1, 11, 1, 15, 2,
- 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 11, 8,
- 25, 7, 15, 9, 11, 10, 15, 7, 26, 15, 11, 11, 12, 22, 2, 11, 13, 15, 14, 29,
- 0, 2, 26, 15, 11, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 11, 11,
- 18, 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 11, 11, 21, 22, 2, 11, 22, 15,
- 23, 29, 0, 2, 26, 15, 11, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15,
- 11, 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 11, 11, 30, 22, 2, 11,
- 31, 15, 32, 29, 0, 2, 26, 15, 11, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2,
- 26, 15, 11, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 11, 11, 39, 15,
- 11, 18, 12, 26, 15, 11, 11, 40, 15, 11, 18, 15, 26, 15, 11, 11, 41, 15, 11, 18,
- 18, 26, 15, 11, 11, 42, 15, 11, 18, 21, 26, 15, 11, 11, 43, 15, 11, 18, 24, 26,
- 15, 11, 11, 44, 15, 11, 18, 27, 26, 15, 11, 11, 45, 15, 11, 18, 30, 26, 15, 11,
- 11, 46, 15, 11, 18, 33, 26, 15, 11, 11, 47, 15, 11, 18, 36, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 2, 0, 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2,
- 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71,
- 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,
-109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 64,108,117, 97, 99,101,
-108,108,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0,
- 0, 15,105,117,112, 67,114,101, 97,116,101, 67,101,108,108,115, 0, 2, 0, 0,
- 0, 7,114,101,100,114, 97,119, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64,108,
-117, 97, 99,101,108,108,115, 46,108,117, 97, 0, 0, 0, 0, 10, 4, 1, 13, 0,
- 11, 1, 15, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,
-101,108,102, 0, 2, 0, 0, 0, 8,114,101,112, 97,105,110,116, 0, 2, 0, 0,
- 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 9,105,117,112, 99,101,
-108,108,115, 0, 4, 0, 0, 0, 11, 0, 0, 0, 14, 64,108,117, 97, 99,101,108,
-108,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 6, 99,101,108,108,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,
-108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 11,109,111,117,115,101, 99,108,
-105, 99,107, 0, 2, 0, 0, 0, 14, 77, 79, 85, 83, 69, 67, 76, 73, 67, 75, 95,
- 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95, 99,101,108,108,115, 95,109,111,
-117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 12,109,111,117,
-115,101,109,111,116,105,111,110, 0, 2, 0, 0, 0, 15, 77, 79, 85, 83, 69, 77,
- 79, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95, 99,101,
-108,108,115, 95,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,115, 99,114,111,108,108,105,110,103, 0, 2, 0, 0, 0, 13, 83,
- 67, 82, 79, 76, 76, 73, 78, 71, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112,
- 95, 99,101,108,108,115, 95,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0,
- 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 9, 87, 73, 68, 84,
- 72, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,
-119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116,
- 0, 2, 0, 0, 0, 10, 72, 69, 73, 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0,
- 20,105,117,112, 95, 99,101,108,108,115, 95,104,101,105,103,104,116, 95, 99, 98,
- 0, 2, 0, 0, 0, 7,110,108,105,110,101,115, 0, 2, 0, 0, 0, 10, 78, 76,
- 73, 78, 69, 83, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95, 99,101,108,
-108,115, 95,110,108,105,110,101,115, 95, 99, 98, 0, 2, 0, 0, 0, 6,110, 99,
-111,108,115, 0, 2, 0, 0, 0, 9, 78, 67, 79, 76, 83, 95, 67, 66, 0, 2, 0,
- 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,110, 99,111,108,115, 95, 99,
- 98, 0, 2, 0, 0, 0, 6,104,115,112, 97,110, 0, 2, 0, 0, 0, 9, 72, 83,
- 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,
-115, 95,104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 6,118,115,112, 97,
-110, 0, 2, 0, 0, 0, 9, 86, 83, 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0,
- 19,105,117,112, 95, 99,101,108,108,115, 95,118,115,112, 97,110, 95, 99, 98, 0,
- 2, 0, 0, 0, 14,109,111,117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2,
- 0, 0, 0, 15,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 13,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0, 2, 0, 0,
- 0, 9,119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,101,105,103,
-104,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,110,108,105,110,101,115, 95, 99, 98,
- 0, 2, 0, 0, 0, 9,110, 99,111,108,115, 95, 99, 98, 0, 2, 0, 0, 0, 9,
-104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 9,118,115,112, 97,110, 95,
- 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacells_le64.lo");
-}
diff --git a/iup/srclua3/loh/cells_le64w.loh b/iup/srclua3/loh/cells_le64w.loh
deleted file mode 100755
index 9084ea9..0000000
--- a/iup/srclua3/loh/cells_le64w.loh
+++ /dev/null
@@ -1,76 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luacells_le64w.lo");
-*/
-/* ../obj/iupluacontrols3/luacells_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97, 99,101,
-108,108,115, 46,108,117, 97, 0, 0, 0, 0,245, 5, 0, 22, 1, 11, 1, 15, 2,
- 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 11, 8,
- 25, 7, 15, 9, 11, 10, 15, 7, 26, 15, 11, 11, 12, 22, 2, 11, 13, 15, 14, 29,
- 0, 2, 26, 15, 11, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 11, 11,
- 18, 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 11, 11, 21, 22, 2, 11, 22, 15,
- 23, 29, 0, 2, 26, 15, 11, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15,
- 11, 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 11, 11, 30, 22, 2, 11,
- 31, 15, 32, 29, 0, 2, 26, 15, 11, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2,
- 26, 15, 11, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 11, 11, 39, 15,
- 11, 18, 12, 26, 15, 11, 11, 40, 15, 11, 18, 15, 26, 15, 11, 11, 41, 15, 11, 18,
- 18, 26, 15, 11, 11, 42, 15, 11, 18, 21, 26, 15, 11, 11, 43, 15, 11, 18, 24, 26,
- 15, 11, 11, 44, 15, 11, 18, 27, 26, 15, 11, 11, 45, 15, 11, 18, 30, 26, 15, 11,
- 11, 46, 15, 11, 18, 33, 26, 15, 11, 11, 47, 15, 11, 18, 36, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 2, 0, 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2,
- 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71,
- 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,
-109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 64,108,117, 97, 99,101,
-108,108,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0,
- 0, 15,105,117,112, 67,114,101, 97,116,101, 67,101,108,108,115, 0, 2, 0, 0,
- 0, 7,114,101,100,114, 97,119, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64,108,
-117, 97, 99,101,108,108,115, 46,108,117, 97, 0, 0, 0, 0, 10, 4, 1, 13, 0,
- 11, 1, 15, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,
-101,108,102, 0, 2, 0, 0, 0, 8,114,101,112, 97,105,110,116, 0, 2, 0, 0,
- 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 9,105,117,112, 99,101,
-108,108,115, 0, 4, 0, 0, 0, 11, 0, 0, 0, 14, 64,108,117, 97, 99,101,108,
-108,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 6, 99,101,108,108,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,
-108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 11,109,111,117,115,101, 99,108,
-105, 99,107, 0, 2, 0, 0, 0, 14, 77, 79, 85, 83, 69, 67, 76, 73, 67, 75, 95,
- 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95, 99,101,108,108,115, 95,109,111,
-117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 12,109,111,117,
-115,101,109,111,116,105,111,110, 0, 2, 0, 0, 0, 15, 77, 79, 85, 83, 69, 77,
- 79, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95, 99,101,
-108,108,115, 95,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,115, 99,114,111,108,108,105,110,103, 0, 2, 0, 0, 0, 13, 83,
- 67, 82, 79, 76, 76, 73, 78, 71, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112,
- 95, 99,101,108,108,115, 95,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0,
- 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 9, 87, 73, 68, 84,
- 72, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,
-119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116,
- 0, 2, 0, 0, 0, 10, 72, 69, 73, 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0,
- 20,105,117,112, 95, 99,101,108,108,115, 95,104,101,105,103,104,116, 95, 99, 98,
- 0, 2, 0, 0, 0, 7,110,108,105,110,101,115, 0, 2, 0, 0, 0, 10, 78, 76,
- 73, 78, 69, 83, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95, 99,101,108,
-108,115, 95,110,108,105,110,101,115, 95, 99, 98, 0, 2, 0, 0, 0, 6,110, 99,
-111,108,115, 0, 2, 0, 0, 0, 9, 78, 67, 79, 76, 83, 95, 67, 66, 0, 2, 0,
- 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,110, 99,111,108,115, 95, 99,
- 98, 0, 2, 0, 0, 0, 6,104,115,112, 97,110, 0, 2, 0, 0, 0, 9, 72, 83,
- 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,
-115, 95,104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 6,118,115,112, 97,
-110, 0, 2, 0, 0, 0, 9, 86, 83, 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0,
- 19,105,117,112, 95, 99,101,108,108,115, 95,118,115,112, 97,110, 95, 99, 98, 0,
- 2, 0, 0, 0, 14,109,111,117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2,
- 0, 0, 0, 15,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 13,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0, 2, 0, 0,
- 0, 9,119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,101,105,103,
-104,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,110,108,105,110,101,115, 95, 99, 98,
- 0, 2, 0, 0, 0, 9,110, 99,111,108,115, 95, 99, 98, 0, 2, 0, 0, 0, 9,
-104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 9,118,115,112, 97,110, 95,
- 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacells_le64w.lo");
-}
diff --git a/iup/srclua3/loh/colorbar.loh b/iup/srclua3/loh/colorbar.loh
deleted file mode 100755
index 6dd3f7e..0000000
--- a/iup/srclua3/loh/colorbar.loh
+++ /dev/null
@@ -1,49 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luacolorbar.lo");
-*/
-/* ../obj/iupluacontrols3/luacolorbar.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 17, 64,108,117, 97, 99,111,
-108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0,123, 5, 0, 22, 1, 11,
- 1, 15, 2, 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7,
- 11, 8, 15, 5, 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15,
- 9, 11, 13, 22, 2, 11, 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 22, 2, 11,
- 17, 15, 18, 29, 0, 2, 26, 15, 9, 11, 19, 22, 2, 11, 20, 15, 21, 29, 0, 2,
- 26, 15, 9, 11, 22, 15, 9, 18, 10, 26, 15, 9, 11, 23, 15, 9, 18, 13, 26, 15,
- 9, 11, 24, 15, 9, 18, 16, 26, 15, 9, 11, 25, 15, 9, 18, 19, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 26, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66,
- 65, 82, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7,
- 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85,
- 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 17, 64,108,
-117, 97, 99,111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 10, 4,
- 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101,
- 67,111,108,111,114, 98, 97,114, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108,
-111,114, 98, 97,114, 0, 4, 0, 0, 0, 7, 0, 0, 0, 17, 64,108,117, 97, 99,
-111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1,
- 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, 65, 82, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 9, 99,111,108,111,114, 98, 97,114, 0,
- 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2,
- 0, 0, 0, 7, 99,101,108,108, 99, 98, 0, 2, 0, 0, 0, 8, 67, 69, 76, 76,
- 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95, 99,111,108,111,114, 98, 97,
-114, 95, 99,101,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,101,108,101, 99,
-116, 99, 98, 0, 2, 0, 0, 0, 10, 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2,
- 0, 0, 0, 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,101,108,
-101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,119,105,116, 99,104, 99, 98,
- 0, 2, 0, 0, 0, 10, 83, 87, 73, 84, 67, 72, 95, 67, 66, 0, 2, 0, 0, 0,
- 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,119,105,116, 99,104,
- 95, 99, 98, 0, 2, 0, 0, 0, 11,101,120,116,101,110,100,101,100, 99, 98, 0,
- 2, 0, 0, 0, 12, 69, 88, 84, 69, 78, 68, 69, 68, 95, 67, 66, 0, 2, 0, 0,
- 0, 25,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,101,120,116,101,110,
-100,101,100, 95, 99, 98, 0, 2, 0, 0, 0, 8, 99,101,108,108, 95, 99, 98, 0,
- 2, 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,
-115,119,105,116, 99,104, 95, 99, 98, 0, 2, 0, 0, 0, 12,101,120,116,101,110,
-100,101,100, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacolorbar.lo");
-}
diff --git a/iup/srclua3/loh/colorbar_be32.loh b/iup/srclua3/loh/colorbar_be32.loh
deleted file mode 100755
index 2a33b10..0000000
--- a/iup/srclua3/loh/colorbar_be32.loh
+++ /dev/null
@@ -1,49 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luacolorbar_be32.lo");
-*/
-/* ../obj/iupluacontrols3/luacolorbar_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 17, 64,108,117, 97, 99,111,
-108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0,123, 5, 0, 22, 1, 11,
- 1, 15, 2, 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7,
- 11, 8, 15, 5, 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15,
- 9, 11, 13, 22, 2, 11, 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 22, 2, 11,
- 17, 15, 18, 29, 0, 2, 26, 15, 9, 11, 19, 22, 2, 11, 20, 15, 21, 29, 0, 2,
- 26, 15, 9, 11, 22, 15, 9, 18, 10, 26, 15, 9, 11, 23, 15, 9, 18, 13, 26, 15,
- 9, 11, 24, 15, 9, 18, 16, 26, 15, 9, 11, 25, 15, 9, 18, 19, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 26, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66,
- 65, 82, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7,
- 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85,
- 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 17, 64,108,
-117, 97, 99,111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 10, 4,
- 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101,
- 67,111,108,111,114, 98, 97,114, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108,
-111,114, 98, 97,114, 0, 4, 0, 0, 0, 7, 0, 0, 0, 17, 64,108,117, 97, 99,
-111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1,
- 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, 65, 82, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 9, 99,111,108,111,114, 98, 97,114, 0,
- 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2,
- 0, 0, 0, 7, 99,101,108,108, 99, 98, 0, 2, 0, 0, 0, 8, 67, 69, 76, 76,
- 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95, 99,111,108,111,114, 98, 97,
-114, 95, 99,101,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,101,108,101, 99,
-116, 99, 98, 0, 2, 0, 0, 0, 10, 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2,
- 0, 0, 0, 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,101,108,
-101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,119,105,116, 99,104, 99, 98,
- 0, 2, 0, 0, 0, 10, 83, 87, 73, 84, 67, 72, 95, 67, 66, 0, 2, 0, 0, 0,
- 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,119,105,116, 99,104,
- 95, 99, 98, 0, 2, 0, 0, 0, 11,101,120,116,101,110,100,101,100, 99, 98, 0,
- 2, 0, 0, 0, 12, 69, 88, 84, 69, 78, 68, 69, 68, 95, 67, 66, 0, 2, 0, 0,
- 0, 25,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,101,120,116,101,110,
-100,101,100, 95, 99, 98, 0, 2, 0, 0, 0, 8, 99,101,108,108, 95, 99, 98, 0,
- 2, 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,
-115,119,105,116, 99,104, 95, 99, 98, 0, 2, 0, 0, 0, 12,101,120,116,101,110,
-100,101,100, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacolorbar_be32.lo");
-}
diff --git a/iup/srclua3/loh/colorbar_be64.loh b/iup/srclua3/loh/colorbar_be64.loh
deleted file mode 100755
index cb0ed3e..0000000
--- a/iup/srclua3/loh/colorbar_be64.loh
+++ /dev/null
@@ -1,48 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/colorbar_be64.lo");
-*/
-/* ../obj/iupluacontrols3/colorbar_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 99,111,108,111,114,
- 98, 97,114, 46,108,117, 97, 0, 0, 0, 0,123, 5, 0, 22, 1, 11, 1, 15, 2,
- 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15,
- 5, 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13,
- 22, 2, 11, 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 22, 2, 11, 17, 15, 18,
- 29, 0, 2, 26, 15, 9, 11, 19, 22, 2, 11, 20, 15, 21, 29, 0, 2, 26, 15, 9,
- 11, 22, 15, 9, 18, 10, 26, 15, 9, 11, 23, 15, 9, 18, 13, 26, 15, 9, 11, 24,
- 15, 9, 18, 16, 26, 15, 9, 11, 25, 15, 9, 18, 19, 26, 0, 0, 0, 0, 0, 0,
- 0, 0, 26, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, 65, 82, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68,
- 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,
-101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 64, 99,111,108,111,
-114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 10, 4, 2, 15, 1, 13, 1, 3,
- 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0,
- 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101, 67,111,108,111,114, 98,
- 97,114, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108,111,114, 98, 97,114, 0,
- 4, 0, 0, 0, 7, 0, 0, 0, 14, 64, 99,111,108,111,114, 98, 97,114, 46,108,
-117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73,
- 85, 80, 67, 79, 76, 79, 82, 66, 65, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,
-116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0,
- 0, 9, 99,111,108,111,114, 98, 97,114, 0, 2, 0, 0, 0, 14,105,117,112, 95,
- 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 7, 99,101,108,108, 99,
- 98, 0, 2, 0, 0, 0, 8, 67, 69, 76, 76, 95, 67, 66, 0, 2, 0, 0, 0, 21,
-105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95, 99,101,108,108, 95, 99, 98,
- 0, 2, 0, 0, 0, 9,115,101,108,101, 99,116, 99, 98, 0, 2, 0, 0, 0, 10,
- 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95, 99,
-111,108,111,114, 98, 97,114, 95,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0,
- 0, 0, 9,115,119,105,116, 99,104, 99, 98, 0, 2, 0, 0, 0, 10, 83, 87, 73,
- 84, 67, 72, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95, 99,111,108,111,
-114, 98, 97,114, 95,115,119,105,116, 99,104, 95, 99, 98, 0, 2, 0, 0, 0, 11,
-101,120,116,101,110,100,101,100, 99, 98, 0, 2, 0, 0, 0, 12, 69, 88, 84, 69,
- 78, 68, 69, 68, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95, 99,111,108,
-111,114, 98, 97,114, 95,101,120,116,101,110,100,101,100, 95, 99, 98, 0, 2, 0,
- 0, 0, 8, 99,101,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 10,115,101,108,101,
- 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,115,119,105,116, 99,104, 95, 99, 98,
- 0, 2, 0, 0, 0, 12,101,120,116,101,110,100,101,100, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/colorbar_be64.lo");
-}
diff --git a/iup/srclua3/loh/colorbar_le64.loh b/iup/srclua3/loh/colorbar_le64.loh
deleted file mode 100755
index 583e9d3..0000000
--- a/iup/srclua3/loh/colorbar_le64.loh
+++ /dev/null
@@ -1,49 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luacolorbar_le64.lo");
-*/
-/* ../obj/iupluacontrols3/luacolorbar_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 17, 64,108,117, 97, 99,111,
-108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0,123, 5, 0, 22, 1, 11,
- 1, 15, 2, 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7,
- 11, 8, 15, 5, 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15,
- 9, 11, 13, 22, 2, 11, 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 22, 2, 11,
- 17, 15, 18, 29, 0, 2, 26, 15, 9, 11, 19, 22, 2, 11, 20, 15, 21, 29, 0, 2,
- 26, 15, 9, 11, 22, 15, 9, 18, 10, 26, 15, 9, 11, 23, 15, 9, 18, 13, 26, 15,
- 9, 11, 24, 15, 9, 18, 16, 26, 15, 9, 11, 25, 15, 9, 18, 19, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 26, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66,
- 65, 82, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7,
- 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85,
- 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 17, 64,108,
-117, 97, 99,111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 10, 4,
- 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101,
- 67,111,108,111,114, 98, 97,114, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108,
-111,114, 98, 97,114, 0, 4, 0, 0, 0, 7, 0, 0, 0, 17, 64,108,117, 97, 99,
-111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1,
- 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, 65, 82, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 9, 99,111,108,111,114, 98, 97,114, 0,
- 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2,
- 0, 0, 0, 7, 99,101,108,108, 99, 98, 0, 2, 0, 0, 0, 8, 67, 69, 76, 76,
- 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95, 99,111,108,111,114, 98, 97,
-114, 95, 99,101,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,101,108,101, 99,
-116, 99, 98, 0, 2, 0, 0, 0, 10, 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2,
- 0, 0, 0, 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,101,108,
-101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,119,105,116, 99,104, 99, 98,
- 0, 2, 0, 0, 0, 10, 83, 87, 73, 84, 67, 72, 95, 67, 66, 0, 2, 0, 0, 0,
- 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,119,105,116, 99,104,
- 95, 99, 98, 0, 2, 0, 0, 0, 11,101,120,116,101,110,100,101,100, 99, 98, 0,
- 2, 0, 0, 0, 12, 69, 88, 84, 69, 78, 68, 69, 68, 95, 67, 66, 0, 2, 0, 0,
- 0, 25,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,101,120,116,101,110,
-100,101,100, 95, 99, 98, 0, 2, 0, 0, 0, 8, 99,101,108,108, 95, 99, 98, 0,
- 2, 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,
-115,119,105,116, 99,104, 95, 99, 98, 0, 2, 0, 0, 0, 12,101,120,116,101,110,
-100,101,100, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacolorbar_le64.lo");
-}
diff --git a/iup/srclua3/loh/colorbar_le64w.loh b/iup/srclua3/loh/colorbar_le64w.loh
deleted file mode 100755
index ce8d260..0000000
--- a/iup/srclua3/loh/colorbar_le64w.loh
+++ /dev/null
@@ -1,49 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luacolorbar_le64w.lo");
-*/
-/* ../obj/iupluacontrols3/luacolorbar_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 17, 64,108,117, 97, 99,111,
-108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0,123, 5, 0, 22, 1, 11,
- 1, 15, 2, 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7,
- 11, 8, 15, 5, 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15,
- 9, 11, 13, 22, 2, 11, 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 22, 2, 11,
- 17, 15, 18, 29, 0, 2, 26, 15, 9, 11, 19, 22, 2, 11, 20, 15, 21, 29, 0, 2,
- 26, 15, 9, 11, 22, 15, 9, 18, 10, 26, 15, 9, 11, 23, 15, 9, 18, 13, 26, 15,
- 9, 11, 24, 15, 9, 18, 16, 26, 15, 9, 11, 25, 15, 9, 18, 19, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 26, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66,
- 65, 82, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7,
- 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85,
- 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 17, 64,108,
-117, 97, 99,111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 10, 4,
- 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101,
- 67,111,108,111,114, 98, 97,114, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108,
-111,114, 98, 97,114, 0, 4, 0, 0, 0, 7, 0, 0, 0, 17, 64,108,117, 97, 99,
-111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1,
- 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, 65, 82, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 9, 99,111,108,111,114, 98, 97,114, 0,
- 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2,
- 0, 0, 0, 7, 99,101,108,108, 99, 98, 0, 2, 0, 0, 0, 8, 67, 69, 76, 76,
- 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95, 99,111,108,111,114, 98, 97,
-114, 95, 99,101,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,101,108,101, 99,
-116, 99, 98, 0, 2, 0, 0, 0, 10, 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2,
- 0, 0, 0, 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,101,108,
-101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,119,105,116, 99,104, 99, 98,
- 0, 2, 0, 0, 0, 10, 83, 87, 73, 84, 67, 72, 95, 67, 66, 0, 2, 0, 0, 0,
- 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,119,105,116, 99,104,
- 95, 99, 98, 0, 2, 0, 0, 0, 11,101,120,116,101,110,100,101,100, 99, 98, 0,
- 2, 0, 0, 0, 12, 69, 88, 84, 69, 78, 68, 69, 68, 95, 67, 66, 0, 2, 0, 0,
- 0, 25,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,101,120,116,101,110,
-100,101,100, 95, 99, 98, 0, 2, 0, 0, 0, 8, 99,101,108,108, 95, 99, 98, 0,
- 2, 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,
-115,119,105,116, 99,104, 95, 99, 98, 0, 2, 0, 0, 0, 12,101,120,116,101,110,
-100,101,100, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacolorbar_le64w.lo");
-}
diff --git a/iup/srclua3/loh/colorbrowser.loh b/iup/srclua3/loh/colorbrowser.loh
deleted file mode 100755
index eb3301a..0000000
--- a/iup/srclua3/loh/colorbrowser.loh
+++ /dev/null
@@ -1,39 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luacb.lo");
-*/
-/* ../obj/iupluacontrols3/luacb.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,108,117, 97, 99, 98,
- 46,108,117, 97, 0, 0, 0, 0, 77, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25,
- 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15,
- 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 22, 2, 11,
- 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 15, 9, 18, 10, 26, 15, 9, 11, 17,
- 15, 9, 18, 13, 26, 0, 0, 0, 0, 0, 0, 0, 0, 18, 2, 0, 0, 0, 16, 73,
- 85, 80, 67, 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 7,
-112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2,
- 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116,
- 0, 4, 0, 0, 0, 3, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97,
- 0, 0, 0, 0, 10, 4, 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 22,105,117,112,
- 67,114,101, 97,116,101, 67,111,108,111,114, 66,114,111,119,115,101,114, 0, 2,
- 0, 0, 0, 16,105,117,112, 99,111,108,111,114, 98,114,111,119,115,101,114, 0,
- 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 16, 73, 85, 80, 67,
- 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 13, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, 2, 0, 0, 0,
- 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5,
-100,114, 97,103, 0, 2, 0, 0, 0, 8, 68, 82, 65, 71, 95, 67, 66, 0, 2, 0,
- 0, 0, 25,105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95,
-100,114, 97,103, 95, 99, 98, 0, 2, 0, 0, 0, 7, 99,104, 97,110,103,101, 0,
- 2, 0, 0, 0, 10, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, 0, 0, 0, 27,
-105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, 99,104, 97,
-110,103,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,100,114, 97,103, 95, 99, 98, 0,
- 2, 0, 0, 0, 10, 99,104, 97,110,103,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacb.lo");
-}
diff --git a/iup/srclua3/loh/colorbrowser_be32.loh b/iup/srclua3/loh/colorbrowser_be32.loh
deleted file mode 100755
index 950ac0b..0000000
--- a/iup/srclua3/loh/colorbrowser_be32.loh
+++ /dev/null
@@ -1,39 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luacb_be32.lo");
-*/
-/* ../obj/iupluacontrols3/luacb_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,108,117, 97, 99, 98,
- 46,108,117, 97, 0, 0, 0, 0, 77, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25,
- 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15,
- 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 22, 2, 11,
- 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 15, 9, 18, 10, 26, 15, 9, 11, 17,
- 15, 9, 18, 13, 26, 0, 0, 0, 0, 0, 0, 0, 0, 18, 2, 0, 0, 0, 16, 73,
- 85, 80, 67, 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 7,
-112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2,
- 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116,
- 0, 4, 0, 0, 0, 3, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97,
- 0, 0, 0, 0, 10, 4, 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 22,105,117,112,
- 67,114,101, 97,116,101, 67,111,108,111,114, 66,114,111,119,115,101,114, 0, 2,
- 0, 0, 0, 16,105,117,112, 99,111,108,111,114, 98,114,111,119,115,101,114, 0,
- 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 16, 73, 85, 80, 67,
- 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 13, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, 2, 0, 0, 0,
- 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5,
-100,114, 97,103, 0, 2, 0, 0, 0, 8, 68, 82, 65, 71, 95, 67, 66, 0, 2, 0,
- 0, 0, 25,105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95,
-100,114, 97,103, 95, 99, 98, 0, 2, 0, 0, 0, 7, 99,104, 97,110,103,101, 0,
- 2, 0, 0, 0, 10, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, 0, 0, 0, 27,
-105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, 99,104, 97,
-110,103,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,100,114, 97,103, 95, 99, 98, 0,
- 2, 0, 0, 0, 10, 99,104, 97,110,103,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacb_be32.lo");
-}
diff --git a/iup/srclua3/loh/colorbrowser_be64.loh b/iup/srclua3/loh/colorbrowser_be64.loh
deleted file mode 100755
index e307445..0000000
--- a/iup/srclua3/loh/colorbrowser_be64.loh
+++ /dev/null
@@ -1,40 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/colorbrowser_be64.lo");
-*/
-/* ../obj/iupluacontrols3/colorbrowser_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 18, 64, 99,111,108,111,114,
- 98,114,111,119,115,101,114, 46,108,117, 97, 0, 0, 0, 0, 77, 5, 0, 22, 1,
- 11, 1, 15, 2, 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15,
- 7, 11, 8, 15, 5, 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26,
- 15, 9, 11, 13, 22, 2, 11, 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 15, 9,
- 18, 10, 26, 15, 9, 11, 17, 15, 9, 18, 13, 26, 0, 0, 0, 0, 0, 0, 0, 0,
- 18, 2, 0, 0, 0, 16, 73, 85, 80, 67, 79, 76, 79, 82, 66, 82, 79, 87, 83, 69,
- 82, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87,
- 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,
-101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 18, 64, 99,111,
-108,111,114, 98,114,111,119,115,101,114, 46,108,117, 97, 0, 0, 0, 0, 10, 4,
- 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 22,105,117,112, 67,114,101, 97,116,101,
- 67,111,108,111,114, 66,114,111,119,115,101,114, 0, 2, 0, 0, 0, 16,105,117,
-112, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, 4, 0, 0, 0, 7, 0,
- 0, 0, 18, 64, 99,111,108,111,114, 98,114,111,119,115,101,114, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 16, 73, 85, 80,
- 67, 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2,
- 0, 0, 0, 13, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, 2, 0, 0,
- 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0,
- 5,100,114, 97,103, 0, 2, 0, 0, 0, 8, 68, 82, 65, 71, 95, 67, 66, 0, 2,
- 0, 0, 0, 25,105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114,
- 95,100,114, 97,103, 95, 99, 98, 0, 2, 0, 0, 0, 7, 99,104, 97,110,103,101,
- 0, 2, 0, 0, 0, 10, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, 0, 0, 0,
- 27,105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, 99,104,
- 97,110,103,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,100,114, 97,103, 95, 99, 98,
- 0, 2, 0, 0, 0, 10, 99,104, 97,110,103,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/colorbrowser_be64.lo");
-}
diff --git a/iup/srclua3/loh/colorbrowser_le64.loh b/iup/srclua3/loh/colorbrowser_le64.loh
deleted file mode 100755
index dbf21d2..0000000
--- a/iup/srclua3/loh/colorbrowser_le64.loh
+++ /dev/null
@@ -1,39 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luacb_le64.lo");
-*/
-/* ../obj/iupluacontrols3/luacb_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,108,117, 97, 99, 98,
- 46,108,117, 97, 0, 0, 0, 0, 77, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25,
- 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15,
- 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 22, 2, 11,
- 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 15, 9, 18, 10, 26, 15, 9, 11, 17,
- 15, 9, 18, 13, 26, 0, 0, 0, 0, 0, 0, 0, 0, 18, 2, 0, 0, 0, 16, 73,
- 85, 80, 67, 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 7,
-112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2,
- 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116,
- 0, 4, 0, 0, 0, 3, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97,
- 0, 0, 0, 0, 10, 4, 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 22,105,117,112,
- 67,114,101, 97,116,101, 67,111,108,111,114, 66,114,111,119,115,101,114, 0, 2,
- 0, 0, 0, 16,105,117,112, 99,111,108,111,114, 98,114,111,119,115,101,114, 0,
- 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 16, 73, 85, 80, 67,
- 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 13, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, 2, 0, 0, 0,
- 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5,
-100,114, 97,103, 0, 2, 0, 0, 0, 8, 68, 82, 65, 71, 95, 67, 66, 0, 2, 0,
- 0, 0, 25,105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95,
-100,114, 97,103, 95, 99, 98, 0, 2, 0, 0, 0, 7, 99,104, 97,110,103,101, 0,
- 2, 0, 0, 0, 10, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, 0, 0, 0, 27,
-105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, 99,104, 97,
-110,103,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,100,114, 97,103, 95, 99, 98, 0,
- 2, 0, 0, 0, 10, 99,104, 97,110,103,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacb_le64.lo");
-}
diff --git a/iup/srclua3/loh/colorbrowser_le64w.loh b/iup/srclua3/loh/colorbrowser_le64w.loh
deleted file mode 100755
index 5738bec..0000000
--- a/iup/srclua3/loh/colorbrowser_le64w.loh
+++ /dev/null
@@ -1,39 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luacb_le64w.lo");
-*/
-/* ../obj/iupluacontrols3/luacb_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,108,117, 97, 99, 98,
- 46,108,117, 97, 0, 0, 0, 0, 77, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25,
- 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15,
- 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 22, 2, 11,
- 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 15, 9, 18, 10, 26, 15, 9, 11, 17,
- 15, 9, 18, 13, 26, 0, 0, 0, 0, 0, 0, 0, 0, 18, 2, 0, 0, 0, 16, 73,
- 85, 80, 67, 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 7,
-112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2,
- 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116,
- 0, 4, 0, 0, 0, 3, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97,
- 0, 0, 0, 0, 10, 4, 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 22,105,117,112,
- 67,114,101, 97,116,101, 67,111,108,111,114, 66,114,111,119,115,101,114, 0, 2,
- 0, 0, 0, 16,105,117,112, 99,111,108,111,114, 98,114,111,119,115,101,114, 0,
- 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 16, 73, 85, 80, 67,
- 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 13, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, 2, 0, 0, 0,
- 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5,
-100,114, 97,103, 0, 2, 0, 0, 0, 8, 68, 82, 65, 71, 95, 67, 66, 0, 2, 0,
- 0, 0, 25,105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95,
-100,114, 97,103, 95, 99, 98, 0, 2, 0, 0, 0, 7, 99,104, 97,110,103,101, 0,
- 2, 0, 0, 0, 10, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, 0, 0, 0, 27,
-105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, 99,104, 97,
-110,103,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,100,114, 97,103, 95, 99, 98, 0,
- 2, 0, 0, 0, 10, 99,104, 97,110,103,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacb_le64w.lo");
-}
diff --git a/iup/srclua3/loh/constants.loh b/iup/srclua3/loh/constants.loh
deleted file mode 100755
index c9c3c4b..0000000
--- a/iup/srclua3/loh/constants.loh
+++ /dev/null
@@ -1,301 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/constants.lo");
-*/
-/* ../obj/iuplua3/constants.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 15, 64, 99,111,110,115,116,
- 97,110,116,115, 46,108,117, 97, 0, 0, 0, 5,182, 4, 0, 7, 1, 25, 0, 15,
- 1, 11, 2, 15, 0, 26, 7, 0, 25, 3, 15, 1, 11, 4, 15, 3, 26, 9, 1, 25,
- 5, 15, 1, 11, 6, 15, 5, 26, 9, 1, 25, 7, 15, 1, 11, 8, 15, 7, 26, 6,
-255,255, 25, 9, 15, 1, 11, 10, 15, 9, 26, 6,255,254, 25, 11, 15, 1, 11, 12,
- 15, 11, 26, 6,255,253, 25, 13, 15, 1, 11, 14, 15, 13, 26, 6,255,252, 25, 15,
- 15, 1, 11, 16, 15, 15, 26, 6,255,251, 25, 17, 15, 1, 11, 18, 15, 17, 26, 6,
-255,250, 25, 19, 15, 1, 11, 20, 15, 19, 26, 15, 11, 25, 21, 15, 1, 11, 22, 15,
- 21, 26, 15, 13, 25, 23, 15, 1, 11, 24, 15, 23, 26, 7, 49, 25, 25, 15, 1, 11,
- 26, 15, 25, 26, 7, 50, 25, 27, 15, 1, 11, 28, 15, 27, 26, 7, 51, 25, 29, 15,
- 1, 11, 30, 15, 29, 26, 7, 52, 25, 31, 15, 1, 11, 32, 15, 31, 26, 7, 53, 25,
- 33, 15, 1, 11, 34, 15, 33, 26, 9, 1, 25, 35, 15, 1, 11, 36, 15, 35, 26, 9,
- 2, 25, 37, 15, 1, 11, 38, 15, 37, 26, 9, 3, 25, 39, 15, 1, 11, 40, 15, 39,
- 26, 9, 4, 25, 41, 15, 1, 11, 42, 15, 41, 26, 7, 0, 25, 43, 15, 1, 11, 44,
- 15, 43, 26, 7, 1, 25, 45, 15, 1, 11, 46, 15, 45, 26, 7, 2, 25, 47, 15, 1,
- 11, 48, 15, 47, 26, 7, 3, 25, 49, 15, 1, 11, 50, 15, 49, 26, 7, 4, 25, 51,
- 15, 1, 11, 52, 15, 51, 26, 7, 5, 25, 53, 15, 1, 11, 54, 15, 53, 26, 7, 6,
- 25, 55, 15, 1, 11, 56, 15, 55, 26, 7, 7, 25, 57, 15, 1, 11, 58, 15, 57, 26,
- 7, 8, 25, 59, 15, 1, 11, 60, 15, 59, 26, 7, 9, 25, 61, 15, 1, 11, 62, 15,
- 61, 26, 7, 10, 25, 63, 15, 1, 11, 64, 15, 63, 26, 7, 11, 25, 65, 15, 1, 11,
- 66, 15, 65, 26, 7, 0, 25, 67, 15, 1, 11, 68, 15, 67, 26, 7, 1, 25, 69, 15,
- 1, 11, 70, 15, 69, 26, 7, 2, 25, 71, 15, 1, 11, 72, 15, 71, 26, 7, 3, 25,
- 73, 15, 1, 11, 74, 15, 73, 26, 7, 4, 25, 75, 15, 1, 11, 76, 15, 75, 26, 15,
- 78, 7, 1, 7, 0, 7, 0, 2, 1, 3, 25, 77, 15, 1, 11, 77, 15, 77, 26, 15,
- 78, 7, 0, 7, 1, 7, 0, 2, 1, 3, 25, 79, 15, 1, 11, 79, 15, 79, 26, 15,
- 78, 7, 0, 7, 0, 7, 1, 2, 1, 3, 25, 80, 15, 1, 11, 80, 15, 80, 26, 15,
- 78, 7, 0, 7, 0, 7, 0, 2, 1, 3, 25, 81, 15, 1, 11, 81, 15, 81, 26, 15,
- 78, 7, 1, 7, 1, 7, 1, 2, 1, 3, 25, 82, 15, 1, 11, 82, 15, 82, 26, 15,
- 78, 7, 1, 7, 1, 7, 0, 2, 1, 3, 25, 83, 15, 1, 11, 83, 15, 83, 26, 11,
- 85, 25, 84, 15, 1, 11, 85, 15, 84, 26, 11, 87, 25, 86, 15, 1, 11, 87, 15, 86,
- 26, 11, 89, 25, 88, 15, 1, 11, 89, 15, 88, 26, 11, 91, 25, 90, 15, 1, 11, 91,
- 15, 90, 26, 11, 93, 25, 92, 15, 1, 11, 93, 15, 92, 26, 11, 95, 25, 94, 15, 1,
- 11, 95, 15, 94, 26, 11, 97, 25, 96, 15, 1, 11, 97, 15, 96, 26, 11, 99, 25, 98,
- 15, 1, 11, 99, 15, 98, 26, 11,101, 25,100, 15, 1, 11,101, 15,100, 26, 11,103,
- 25,102, 15, 1, 11,103, 15,102, 26, 11,105, 25,104, 15, 1, 11,105, 15,104, 26,
- 11,107, 25,106, 15, 1, 11,107, 15,106, 26, 11,109, 25,108, 15, 1, 11,109, 15,
-108, 26, 11,111, 25,110, 15, 1, 11,111, 15,110, 26, 11,113, 25,112, 15, 1, 11,
-113, 15,112, 26, 11,115, 25,114, 15, 1, 11,115, 15,114, 26, 11,117, 25,116, 15,
- 1, 11,117, 15,116, 26, 11,119, 25,118, 15, 1, 11,119, 15,118, 26, 11,121, 25,
-120, 15, 1, 11,121, 15,120, 26, 11,123, 25,122, 15, 1, 11,123, 15,122, 26, 11,
-125, 25,124, 15, 1, 11,125, 15,124, 26, 11,127, 25,126, 15, 1, 11,127, 15,126,
- 26, 11,129, 25,128, 15, 1, 11,129, 15,128, 26, 11,131, 25,130, 15, 1, 11,131,
- 15,130, 26, 11,133, 25,132, 15, 1, 11,133, 15,132, 26, 11,135, 25,134, 15, 1,
- 11,135, 15,134, 26, 11,137, 25,136, 15, 1, 11,137, 15,136, 26, 11,139, 25,138,
- 15, 1, 11,139, 15,138, 26, 11,141, 25,140, 15, 1, 11,141, 15,140, 26, 11,143,
- 25,142, 15, 1, 11,143, 15,142, 26, 11,145, 25,144, 15, 1, 11,145, 15,144, 26,
- 11,147, 25,146, 15, 1, 11,147, 15,146, 26, 11,149, 25,148, 15, 1, 11,149, 15,
-148, 26, 11,151, 25,150, 15, 1, 11,151, 15,150, 26, 11,153, 25,152, 15, 1, 11,
-153, 15,152, 26, 11,155, 25,154, 15, 1, 11,155, 15,154, 26, 11,157, 25,156, 15,
- 1, 11,157, 15,156, 26, 11,159, 25,158, 15, 1, 11,159, 15,158, 26, 11,161, 25,
-160, 15, 1, 11,161, 15,160, 26, 11,163, 25,162, 15, 1, 11,163, 15,162, 26, 11,
-165, 25,164, 15, 1, 11,165, 15,164, 26, 11,167, 25,166, 15, 1, 11,167, 15,166,
- 26, 11,169, 25,168, 15, 1, 11,169, 15,168, 26, 11,171, 25,170, 15, 1, 11,171,
- 15,170, 26, 11,173, 25,172, 15, 1, 11,173, 15,172, 26, 11,175, 25,174, 15, 1,
- 11,175, 15,174, 26, 11,177, 25,176, 15, 1, 11,177, 15,176, 26, 11,179, 25,178,
- 15, 1, 11,179, 15,178, 26, 11,181, 25,180, 15, 1, 11,181, 15,180, 26, 11,183,
- 25,182, 15, 1, 11,183, 15,182, 26, 11,185, 25,184, 15, 1, 11,185, 15,184, 26,
- 11,187, 25,186, 15, 1, 11,187, 15,186, 26, 11,189, 25,188, 15, 1, 11,189, 15,
-188, 26, 11,191, 25,190, 15, 1, 11,191, 15,190, 26, 11,193, 25,192, 15, 1, 11,
-193, 15,192, 26, 11,195, 25,194, 15, 1, 11,195, 15,194, 26, 11,197, 25,196, 15,
- 1, 11,197, 15,196, 26, 11,199, 25,198, 15, 1, 11,199, 15,198, 26, 11,201, 25,
-200, 15, 1, 11,201, 15,200, 26, 11,203, 25,202, 15, 1, 11,203, 15,202, 26, 11,
-205, 25,204, 15, 1, 11,205, 15,204, 26, 11,207, 25,206, 15, 1, 11,207, 15,206,
- 26, 11,209, 25,208, 15, 1, 11,209, 15,208, 26, 11,211, 25,210, 15, 1, 11,211,
- 15,210, 26, 11,213, 25,212, 15, 1, 11,213, 15,212, 26, 11,215, 25,214, 15, 1,
- 11,215, 15,214, 26, 11,217, 25,216, 15, 1, 11,217, 15,216, 26, 11,219, 25,218,
- 15, 1, 11,219, 15,218, 26, 11,221, 25,220, 15, 1, 11,221, 15,220, 26, 11,223,
- 25,222, 15, 1, 11,223, 15,222, 26, 11,225, 25,224, 15, 1, 11,225, 15,224, 26,
- 11,227, 25,226, 15, 1, 11,227, 15,226, 26, 11,229, 25,228, 15, 1, 11,229, 15,
-228, 26, 11,231, 25,230, 15, 1, 11,231, 15,230, 26, 11,233, 25,232, 15, 1, 11,
-233, 15,232, 26, 11,235, 25,234, 15, 1, 11,235, 15,234, 26, 11,237, 25,236, 15,
- 1, 11,237, 15,236, 26, 11,239, 25,238, 15, 1, 11,239, 15,238, 26, 11,241, 25,
-240, 15, 1, 11,241, 15,240, 26, 11,243, 25,242, 15, 1, 11,243, 15,242, 26, 15,
- 1, 11,244, 11,245, 26, 15, 1, 11,246, 11,247, 26, 15, 1, 11,248, 11,249, 26,
- 15, 1, 11,250, 11,251, 26, 15, 1, 11,252, 11,253, 26, 0, 0, 0, 0, 0, 0,
- 0, 0,254, 2, 0, 0, 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0,
- 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6, 69, 82, 82, 79, 82, 0, 2, 0,
- 0, 0, 12, 73, 85, 80, 95, 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 8,
- 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 79, 80, 69,
- 78, 69, 68, 0, 2, 0, 0, 0, 7, 79, 80, 69, 78, 69, 68, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 8, 73, 78,
- 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, 69, 78, 84, 69,
- 82, 0, 2, 0, 0, 0, 7, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 9, 73,
- 85, 80, 95, 76, 69, 70, 84, 0, 2, 0, 0, 0, 5, 76, 69, 70, 84, 0, 2, 0,
- 0, 0, 10, 73, 85, 80, 95, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 6, 82, 73,
- 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 79, 85, 83, 69, 80, 79,
- 83, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 80, 79, 83, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 67, 85,
- 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, 67, 69, 78, 84, 69,
- 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 13, 67, 69, 78, 84, 69, 82, 80,
- 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 84, 79, 80, 0, 2,
- 0, 0, 0, 4, 84, 79, 80, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 66, 79, 84,
- 84, 79, 77, 0, 2, 0, 0, 0, 7, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 8, 66, 85,
- 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79,
- 78, 50, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 50, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 8, 66, 85,
- 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79,
- 78, 52, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 52, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 8, 66, 85,
- 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 73, 71, 78, 79, 82,
- 69, 0, 2, 0, 0, 0, 7, 73, 71, 78, 79, 82, 69, 0, 2, 0, 0, 0, 12, 73,
- 85, 80, 95, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0, 8, 68, 69, 70, 65,
- 85, 76, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 76, 79, 83, 69, 0, 2,
- 0, 0, 0, 6, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 67,
- 79, 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 67, 79, 78, 84, 73, 78, 85,
- 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 85, 80, 0, 2, 0, 0, 0,
- 5, 83, 66, 85, 80, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 68, 78, 0,
- 2, 0, 0, 0, 5, 83, 66, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83,
- 66, 80, 71, 85, 80, 0, 2, 0, 0, 0, 7, 83, 66, 80, 71, 85, 80, 0, 2, 0,
- 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 7, 83,
- 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 79, 83,
- 86, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 86, 0, 2, 0, 0, 0, 12, 73,
- 85, 80, 95, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0, 8, 83, 66, 68, 82,
- 65, 71, 86, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 76, 69, 70, 84, 0,
- 2, 0, 0, 0, 7, 83, 66, 76, 69, 70, 84, 0, 2, 0, 0, 0, 12, 73, 85, 80,
- 95, 83, 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 8, 83, 66, 82, 73, 71, 72,
- 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 83, 66, 80, 71, 76, 69, 70, 84, 0,
- 2, 0, 0, 0, 9, 83, 66, 80, 71, 76, 69, 70, 84, 0, 2, 0, 0, 0, 14, 73,
- 85, 80, 95, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 10, 83, 66,
- 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80,
- 79, 83, 72, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 72, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 8, 83, 66,
- 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 72, 79, 87, 0,
- 2, 0, 0, 0, 5, 83, 72, 79, 87, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 82,
- 69, 83, 84, 79, 82, 69, 0, 2, 0, 0, 0, 8, 82, 69, 83, 84, 79, 82, 69, 0,
- 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0,
- 0, 0, 9, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80,
- 95, 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9, 77, 65, 88, 73, 77,
- 73, 90, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 73, 68, 69, 0, 2, 0,
- 0, 0, 5, 72, 73, 68, 69, 0, 2, 0, 0, 0, 4, 82, 69, 68, 0, 2, 0, 0,
- 0, 7, 73,117,112, 82, 71, 66, 0, 2, 0, 0, 0, 6, 71, 82, 69, 69, 78, 0,
- 2, 0, 0, 0, 5, 66, 76, 85, 69, 0, 2, 0, 0, 0, 6, 66, 76, 65, 67, 75,
- 0, 2, 0, 0, 0, 6, 87, 72, 73, 84, 69, 0, 2, 0, 0, 0, 7, 89, 69, 76,
- 76, 79, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 79, 78, 0, 2, 0, 0, 0,
- 3, 79, 78, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 79, 70, 70, 0, 2, 0, 0,
- 0, 4, 79, 70, 70, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2,
- 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0,
- 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 80, 80,
- 69, 78, 68, 0, 2, 0, 0, 0, 7, 65, 80, 80, 69, 78, 68, 0, 2, 0, 0, 0,
- 13, 73, 85, 80, 95, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 9, 86,
- 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 15, 73, 85, 80, 95, 72, 79, 82,
- 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78,
- 84, 65, 76, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 65, 67, 69, 78, 84, 69, 82,
- 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 10, 73,
- 85, 80, 95, 65, 76, 69, 70, 84, 0, 2, 0, 0, 0, 6, 65, 76, 69, 70, 84, 0,
- 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0,
- 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 65, 84, 79,
- 80, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 12, 73, 85, 80,
- 95, 65, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 8, 65, 66, 79, 84, 84, 79,
- 77, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 78, 79, 82, 84, 72, 0, 2, 0, 0,
- 0, 6, 78, 79, 82, 84, 72, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 83, 79, 85,
- 84, 72, 0, 2, 0, 0, 0, 6, 83, 79, 85, 84, 72, 0, 2, 0, 0, 0, 9, 73,
- 85, 80, 95, 87, 69, 83, 84, 0, 2, 0, 0, 0, 5, 87, 69, 83, 84, 0, 2, 0,
- 0, 0, 9, 73, 85, 80, 95, 69, 65, 83, 84, 0, 2, 0, 0, 0, 5, 69, 65, 83,
- 84, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 69, 0, 2, 0, 0, 0, 3, 78,
- 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 69, 0, 2, 0, 0, 0, 3, 83,
- 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 87, 0, 2, 0, 0, 0, 3, 78,
- 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 87, 0, 2, 0, 0, 0, 3, 83,
- 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 70, 85, 76, 76, 0, 2, 0, 0, 0,
- 5, 70, 85, 76, 76, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 65, 76, 70, 0,
- 2, 0, 0, 0, 5, 72, 65, 76, 70, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 84,
- 72, 73, 82, 68, 0, 2, 0, 0, 0, 6, 84, 72, 73, 82, 68, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 8, 81, 85,
- 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 69, 73, 71, 72, 84,
- 72, 0, 2, 0, 0, 0, 7, 69, 73, 71, 72, 84, 72, 0, 2, 0, 0, 0, 10, 73,
- 85, 80, 95, 65, 82, 82, 79, 87, 0, 2, 0, 0, 0, 6, 65, 82, 82, 79, 87, 0,
- 2, 0, 0, 0, 9, 73, 85, 80, 95, 66, 85, 83, 89, 0, 2, 0, 0, 0, 5, 66,
- 85, 83, 89, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95,
- 78, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 78, 0, 2, 0, 0, 0,
- 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 9, 82,
- 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83,
- 73, 90, 69, 95, 69, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 69, 0,
- 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0,
- 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, 0, 0, 14, 73, 85, 80,
- 95, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73,
- 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90,
- 69, 95, 78, 87, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 78, 87, 0,
- 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2,
- 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2, 0, 0, 0, 14, 73,
- 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 10, 82, 69,
- 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 77, 79, 86,
- 69, 0, 2, 0, 0, 0, 5, 77, 79, 86, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80,
- 95, 72, 65, 78, 68, 0, 2, 0, 0, 0, 5, 72, 65, 78, 68, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 95, 78, 79, 78, 69, 0, 2, 0, 0, 0, 5, 78, 79, 78, 69, 0,
- 2, 0, 0, 0, 8, 73, 85, 80, 95, 73, 85, 80, 0, 2, 0, 0, 0, 4, 73, 85,
- 80, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 82, 79, 83, 83, 0, 2, 0, 0,
- 0, 6, 67, 82, 79, 83, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 80, 69, 78,
- 0, 2, 0, 0, 0, 4, 80, 69, 78, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 84,
- 69, 88, 84, 0, 2, 0, 0, 0, 5, 84, 69, 88, 84, 0, 2, 0, 0, 0, 13, 73,
- 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 9, 82, 69, 83,
- 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 79, 80, 69, 78, 72,
- 65, 78, 68, 0, 2, 0, 0, 0, 9, 79, 80, 69, 78, 72, 65, 78, 68, 0, 2, 0,
- 0, 0, 23, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82,
- 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65,
- 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 23, 73, 85, 80, 95, 72,
- 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0,
- 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95,
- 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65,
- 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 17, 72, 69, 76, 86, 69, 84, 73,
- 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72,
- 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2,
- 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76,
- 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73,
- 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 20, 72, 69,
- 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0,
- 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76,
- 68, 95, 49, 48, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95,
- 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76,
- 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0,
- 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49,
- 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65,
- 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86,
- 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0,
- 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95,
- 49, 50, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79,
- 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69,
- 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 20,
- 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0,
- 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73,
- 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84,
- 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73,
- 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 49, 52,
- 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68,
- 95, 49, 52, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82,
- 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 17, 67, 79, 85, 82, 73,
- 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 21, 73, 85, 80,
- 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0,
- 0, 0, 17, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0,
- 2, 0, 0, 0, 19, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76,
- 68, 95, 56, 0, 2, 0, 0, 0, 15, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76,
- 68, 95, 56, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82,
- 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82,
- 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 22, 73,
- 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48,
- 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67,
- 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82,
- 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69,
- 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67,
- 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0,
- 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0,
- 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65,
- 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95,
- 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67,
- 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 16,
- 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0,
- 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95,
- 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77,
- 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73,
- 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, 67, 79,
- 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0,
- 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 52,
- 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49,
- 52, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82,
- 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, 83, 95, 78, 79, 82,
- 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, 83,
- 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, 83,
- 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, 84,
- 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 13, 84, 73, 77,
- 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84,
- 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 16,
- 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0,
- 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48,
- 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49,
- 48, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76,
- 68, 95, 49, 48, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68,
- 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78,
- 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95,
- 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84,
- 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 16,
- 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0,
- 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2,
- 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0,
- 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95,
- 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76,
- 95, 49, 52, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73,
- 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95,
- 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84,
- 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 14, 84, 73,
- 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 11, 77, 65, 83,
- 75, 95, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 24, 91, 43, 47, 45, 93, 63, 40,
- 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, 43, 41, 0, 2, 0, 0,
- 0, 12, 77, 65, 83, 75, 95, 85, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 18, 40,
- 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, 43, 41, 0, 2, 0, 0,
- 0, 12, 77, 65, 83, 75, 95, 69, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 40, 91,
- 43, 47, 45, 93, 63, 40, 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100,
- 43, 41, 40, 91,101, 69, 93, 91, 43, 47, 45, 93, 63, 47,100, 43, 41, 63, 0, 2,
- 0, 0, 0, 9, 77, 65, 83, 75, 95, 73, 78, 84, 0, 2, 0, 0, 0, 10, 91, 43,
- 47, 45, 93, 63, 47,100, 43, 0, 2, 0, 0, 0, 10, 77, 65, 83, 75, 95, 85, 73,
- 78, 84, 0, 2, 0, 0, 0, 4, 47,100, 43, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/constants.lo");
-}
diff --git a/iup/srclua3/loh/constants_be32.loh b/iup/srclua3/loh/constants_be32.loh
deleted file mode 100755
index 0b6a3a8..0000000
--- a/iup/srclua3/loh/constants_be32.loh
+++ /dev/null
@@ -1,289 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/constants_be32.lo");
-*/
-/* ../obj/iuplua3/constants_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 15, 64, 99,111,110,115,116,
- 97,110,116,115, 46,108,117, 97, 0, 0, 0, 5,147, 4, 0, 7, 1, 25, 0, 15,
- 1, 11, 2, 15, 0, 26, 7, 0, 25, 3, 15, 1, 11, 4, 15, 3, 26, 9, 1, 25,
- 5, 15, 1, 11, 6, 15, 5, 26, 9, 1, 25, 7, 15, 1, 11, 8, 15, 7, 26, 6,
-255,255, 25, 9, 15, 1, 11, 10, 15, 9, 26, 6,255,254, 25, 11, 15, 1, 11, 12,
- 15, 11, 26, 6,255,253, 25, 13, 15, 1, 11, 14, 15, 13, 26, 6,255,252, 25, 15,
- 15, 1, 11, 16, 15, 15, 26, 6,255,251, 25, 17, 15, 1, 11, 18, 15, 17, 26, 6,
-255,250, 25, 19, 15, 1, 11, 20, 15, 19, 26, 15, 11, 25, 21, 15, 1, 11, 22, 15,
- 21, 26, 15, 13, 25, 23, 15, 1, 11, 24, 15, 23, 26, 7, 49, 25, 25, 15, 1, 11,
- 26, 15, 25, 26, 7, 50, 25, 27, 15, 1, 11, 28, 15, 27, 26, 7, 51, 25, 29, 15,
- 1, 11, 30, 15, 29, 26, 7, 52, 25, 31, 15, 1, 11, 32, 15, 31, 26, 7, 53, 25,
- 33, 15, 1, 11, 34, 15, 33, 26, 9, 1, 25, 35, 15, 1, 11, 36, 15, 35, 26, 9,
- 2, 25, 37, 15, 1, 11, 38, 15, 37, 26, 9, 3, 25, 39, 15, 1, 11, 40, 15, 39,
- 26, 9, 4, 25, 41, 15, 1, 11, 42, 15, 41, 26, 7, 0, 25, 43, 15, 1, 11, 44,
- 15, 43, 26, 7, 1, 25, 45, 15, 1, 11, 46, 15, 45, 26, 7, 2, 25, 47, 15, 1,
- 11, 48, 15, 47, 26, 7, 3, 25, 49, 15, 1, 11, 50, 15, 49, 26, 7, 4, 25, 51,
- 15, 1, 11, 52, 15, 51, 26, 7, 5, 25, 53, 15, 1, 11, 54, 15, 53, 26, 7, 6,
- 25, 55, 15, 1, 11, 56, 15, 55, 26, 7, 7, 25, 57, 15, 1, 11, 58, 15, 57, 26,
- 7, 8, 25, 59, 15, 1, 11, 60, 15, 59, 26, 7, 9, 25, 61, 15, 1, 11, 62, 15,
- 61, 26, 7, 10, 25, 63, 15, 1, 11, 64, 15, 63, 26, 7, 11, 25, 65, 15, 1, 11,
- 66, 15, 65, 26, 7, 0, 25, 67, 15, 1, 11, 68, 15, 67, 26, 7, 1, 25, 69, 15,
- 1, 11, 70, 15, 69, 26, 7, 2, 25, 71, 15, 1, 11, 72, 15, 71, 26, 7, 3, 25,
- 73, 15, 1, 11, 74, 15, 73, 26, 7, 4, 25, 75, 15, 1, 11, 76, 15, 75, 26, 15,
- 78, 7, 1, 7, 0, 7, 0, 2, 1, 3, 25, 77, 15, 1, 11, 77, 15, 77, 26, 15,
- 78, 7, 0, 7, 1, 7, 0, 2, 1, 3, 25, 79, 15, 1, 11, 79, 15, 79, 26, 15,
- 78, 7, 0, 7, 0, 7, 1, 2, 1, 3, 25, 80, 15, 1, 11, 80, 15, 80, 26, 15,
- 78, 7, 0, 7, 0, 7, 0, 2, 1, 3, 25, 81, 15, 1, 11, 81, 15, 81, 26, 15,
- 78, 7, 1, 7, 1, 7, 1, 2, 1, 3, 25, 82, 15, 1, 11, 82, 15, 82, 26, 15,
- 78, 7, 1, 7, 1, 7, 0, 2, 1, 3, 25, 83, 15, 1, 11, 83, 15, 83, 26, 11,
- 85, 25, 84, 15, 1, 11, 85, 15, 84, 26, 11, 87, 25, 86, 15, 1, 11, 87, 15, 86,
- 26, 11, 89, 25, 88, 15, 1, 11, 89, 15, 88, 26, 11, 91, 25, 90, 15, 1, 11, 91,
- 15, 90, 26, 11, 93, 25, 92, 15, 1, 11, 93, 15, 92, 26, 11, 95, 25, 94, 15, 1,
- 11, 95, 15, 94, 26, 11, 97, 25, 96, 15, 1, 11, 97, 15, 96, 26, 11, 99, 25, 98,
- 15, 1, 11, 99, 15, 98, 26, 11,101, 25,100, 15, 1, 11,101, 15,100, 26, 11,103,
- 25,102, 15, 1, 11,103, 15,102, 26, 11,105, 25,104, 15, 1, 11,105, 15,104, 26,
- 11,107, 25,106, 15, 1, 11,107, 15,106, 26, 11,109, 25,108, 15, 1, 11,109, 15,
-108, 26, 11,111, 25,110, 15, 1, 11,111, 15,110, 26, 11,113, 25,112, 15, 1, 11,
-113, 15,112, 26, 11,115, 25,114, 15, 1, 11,115, 15,114, 26, 11,117, 25,116, 15,
- 1, 11,117, 15,116, 26, 11,119, 25,118, 15, 1, 11,119, 15,118, 26, 11,121, 25,
-120, 15, 1, 11,121, 15,120, 26, 11,123, 25,122, 15, 1, 11,123, 15,122, 26, 11,
-125, 25,124, 15, 1, 11,125, 15,124, 26, 11,127, 25,126, 15, 1, 11,127, 15,126,
- 26, 11,129, 25,128, 15, 1, 11,129, 15,128, 26, 11,131, 25,130, 15, 1, 11,131,
- 15,130, 26, 11,133, 25,132, 15, 1, 11,133, 15,132, 26, 11,135, 25,134, 15, 1,
- 11,135, 15,134, 26, 11,137, 25,136, 15, 1, 11,137, 15,136, 26, 11,139, 25,138,
- 15, 1, 11,139, 15,138, 26, 11,141, 25,140, 15, 1, 11,141, 15,140, 26, 11,143,
- 25,142, 15, 1, 11,143, 15,142, 26, 11,145, 25,144, 15, 1, 11,145, 15,144, 26,
- 11,147, 25,146, 15, 1, 11,147, 15,146, 26, 11,149, 25,148, 15, 1, 11,149, 15,
-148, 26, 11,151, 25,150, 15, 1, 11,151, 15,150, 26, 11,153, 25,152, 15, 1, 11,
-153, 15,152, 26, 11,155, 25,154, 15, 1, 11,155, 15,154, 26, 11,157, 25,156, 15,
- 1, 11,157, 15,156, 26, 11,159, 25,158, 15, 1, 11,159, 15,158, 26, 11,161, 25,
-160, 15, 1, 11,161, 15,160, 26, 11,163, 25,162, 15, 1, 11,163, 15,162, 26, 11,
-165, 25,164, 15, 1, 11,165, 15,164, 26, 11,167, 25,166, 15, 1, 11,167, 15,166,
- 26, 11,169, 25,168, 15, 1, 11,169, 15,168, 26, 11,171, 25,170, 15, 1, 11,171,
- 15,170, 26, 11,173, 25,172, 15, 1, 11,173, 15,172, 26, 11,175, 25,174, 15, 1,
- 11,175, 15,174, 26, 11,177, 25,176, 15, 1, 11,177, 15,176, 26, 11,179, 25,178,
- 15, 1, 11,179, 15,178, 26, 11,181, 25,180, 15, 1, 11,181, 15,180, 26, 11,183,
- 25,182, 15, 1, 11,183, 15,182, 26, 11,185, 25,184, 15, 1, 11,185, 15,184, 26,
- 11,187, 25,186, 15, 1, 11,187, 15,186, 26, 11,189, 25,188, 15, 1, 11,189, 15,
-188, 26, 11,191, 25,190, 15, 1, 11,191, 15,190, 26, 11,193, 25,192, 15, 1, 11,
-193, 15,192, 26, 11,195, 25,194, 15, 1, 11,195, 15,194, 26, 11,197, 25,196, 15,
- 1, 11,197, 15,196, 26, 11,199, 25,198, 15, 1, 11,199, 15,198, 26, 11,201, 25,
-200, 15, 1, 11,201, 15,200, 26, 11,203, 25,202, 15, 1, 11,203, 15,202, 26, 11,
-205, 25,204, 15, 1, 11,205, 15,204, 26, 11,207, 25,206, 15, 1, 11,207, 15,206,
- 26, 11,209, 25,208, 15, 1, 11,209, 15,208, 26, 11,211, 25,210, 15, 1, 11,211,
- 15,210, 26, 11,213, 25,212, 15, 1, 11,213, 15,212, 26, 11,215, 25,214, 15, 1,
- 11,215, 15,214, 26, 11,217, 25,216, 15, 1, 11,217, 15,216, 26, 11,219, 25,218,
- 15, 1, 11,219, 15,218, 26, 11,221, 25,220, 15, 1, 11,221, 15,220, 26, 11,223,
- 25,222, 15, 1, 11,223, 15,222, 26, 11,225, 25,224, 15, 1, 11,225, 15,224, 26,
- 11,227, 25,226, 15, 1, 11,227, 15,226, 26, 11,229, 25,228, 15, 1, 11,229, 15,
-228, 26, 11,231, 25,230, 15, 1, 11,231, 15,230, 26, 11,233, 25,232, 15, 1, 11,
-233, 15,232, 26, 11,235, 25,234, 15, 1, 11,235, 15,234, 26, 11,237, 25,236, 15,
- 1, 11,237, 15,236, 26, 11,239, 25,238, 15, 1, 11,239, 15,238, 26, 11,241, 25,
-240, 15, 1, 11,241, 15,240, 26, 11,243, 25,242, 15, 1, 11,243, 15,242, 26, 0,
- 0, 0, 0, 0, 0, 0, 0,244, 2, 0, 0, 0, 10, 73, 85, 80, 95, 69, 82, 82,
- 79, 82, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6, 69, 82, 82,
- 79, 82, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 78, 79, 69, 82, 82, 79, 82, 0,
- 2, 0, 0, 0, 8, 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 95, 79, 80, 69, 78, 69, 68, 0, 2, 0, 0, 0, 7, 79, 80, 69, 78, 69, 68,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0,
- 0, 0, 8, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,
- 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7, 67, 69, 78, 84, 69, 82, 0, 2,
- 0, 0, 0, 9, 73, 85, 80, 95, 76, 69, 70, 84, 0, 2, 0, 0, 0, 5, 76, 69,
- 70, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 82, 73, 71, 72, 84, 0, 2, 0,
- 0, 0, 6, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 79,
- 85, 83, 69, 80, 79, 83, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 80, 79, 83,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0,
- 0, 0, 8, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95,
- 67, 69, 78, 84, 69, 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 13, 67, 69,
- 78, 84, 69, 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95,
- 84, 79, 80, 0, 2, 0, 0, 0, 4, 84, 79, 80, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 95, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 7, 66, 79, 84, 84, 79, 77,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0,
- 0, 0, 8, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95,
- 66, 85, 84, 84, 79, 78, 50, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 50,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0,
- 0, 0, 8, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95,
- 66, 85, 84, 84, 79, 78, 52, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 52,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0,
- 0, 0, 8, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,
- 73, 71, 78, 79, 82, 69, 0, 2, 0, 0, 0, 7, 73, 71, 78, 79, 82, 69, 0, 2,
- 0, 0, 0, 12, 73, 85, 80, 95, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0,
- 8, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 76,
- 79, 83, 69, 0, 2, 0, 0, 0, 6, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 13,
- 73, 85, 80, 95, 67, 79, 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 67, 79,
- 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 85, 80,
- 0, 2, 0, 0, 0, 5, 83, 66, 85, 80, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95,
- 83, 66, 68, 78, 0, 2, 0, 0, 0, 5, 83, 66, 68, 78, 0, 2, 0, 0, 0, 11,
- 73, 85, 80, 95, 83, 66, 80, 71, 85, 80, 0, 2, 0, 0, 0, 7, 83, 66, 80, 71,
- 85, 80, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 71, 68, 78, 0, 2,
- 0, 0, 0, 7, 83, 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,
- 83, 66, 80, 79, 83, 86, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 86, 0, 2,
- 0, 0, 0, 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0,
- 8, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66,
- 76, 69, 70, 84, 0, 2, 0, 0, 0, 7, 83, 66, 76, 69, 70, 84, 0, 2, 0, 0,
- 0, 12, 73, 85, 80, 95, 83, 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 8, 83,
- 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 83, 66, 80, 71,
- 76, 69, 70, 84, 0, 2, 0, 0, 0, 9, 83, 66, 80, 71, 76, 69, 70, 84, 0, 2,
- 0, 0, 0, 14, 73, 85, 80, 95, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0,
- 0, 0, 10, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 95, 83, 66, 80, 79, 83, 72, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 72,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0,
- 0, 0, 8, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95,
- 83, 72, 79, 87, 0, 2, 0, 0, 0, 5, 83, 72, 79, 87, 0, 2, 0, 0, 0, 12,
- 73, 85, 80, 95, 82, 69, 83, 84, 79, 82, 69, 0, 2, 0, 0, 0, 8, 82, 69, 83,
- 84, 79, 82, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 73, 78, 73, 77, 73,
- 90, 69, 0, 2, 0, 0, 0, 9, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, 0,
- 0, 13, 73, 85, 80, 95, 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9,
- 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 73,
- 68, 69, 0, 2, 0, 0, 0, 5, 72, 73, 68, 69, 0, 2, 0, 0, 0, 4, 82, 69,
- 68, 0, 2, 0, 0, 0, 7, 73,117,112, 82, 71, 66, 0, 2, 0, 0, 0, 6, 71,
- 82, 69, 69, 78, 0, 2, 0, 0, 0, 5, 66, 76, 85, 69, 0, 2, 0, 0, 0, 6,
- 66, 76, 65, 67, 75, 0, 2, 0, 0, 0, 6, 87, 72, 73, 84, 69, 0, 2, 0, 0,
- 0, 7, 89, 69, 76, 76, 79, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 79, 78,
- 0, 2, 0, 0, 0, 3, 79, 78, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 79, 70,
- 70, 0, 2, 0, 0, 0, 4, 79, 70, 70, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95,
- 89, 69, 83, 0, 2, 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 7, 73, 85,
- 80, 95, 78, 79, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 95, 65, 80, 80, 69, 78, 68, 0, 2, 0, 0, 0, 7, 65, 80, 80, 69, 78, 68,
- 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2,
- 0, 0, 0, 9, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 15, 73, 85,
- 80, 95, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 11, 72, 79,
- 82, 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 65, 67,
- 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2,
- 0, 0, 0, 10, 73, 85, 80, 95, 65, 76, 69, 70, 84, 0, 2, 0, 0, 0, 6, 65,
- 76, 69, 70, 84, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 82, 73, 71, 72, 84,
- 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 9, 73, 85,
- 80, 95, 65, 84, 79, 80, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0,
- 0, 12, 73, 85, 80, 95, 65, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 8, 65,
- 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 78, 79, 82, 84,
- 72, 0, 2, 0, 0, 0, 6, 78, 79, 82, 84, 72, 0, 2, 0, 0, 0, 10, 73, 85,
- 80, 95, 83, 79, 85, 84, 72, 0, 2, 0, 0, 0, 6, 83, 79, 85, 84, 72, 0, 2,
- 0, 0, 0, 9, 73, 85, 80, 95, 87, 69, 83, 84, 0, 2, 0, 0, 0, 5, 87, 69,
- 83, 84, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 69, 65, 83, 84, 0, 2, 0, 0,
- 0, 5, 69, 65, 83, 84, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 69, 0, 2,
- 0, 0, 0, 3, 78, 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 69, 0, 2,
- 0, 0, 0, 3, 83, 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 87, 0, 2,
- 0, 0, 0, 3, 78, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 87, 0, 2,
- 0, 0, 0, 3, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 70, 85, 76, 76,
- 0, 2, 0, 0, 0, 5, 70, 85, 76, 76, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95,
- 72, 65, 76, 70, 0, 2, 0, 0, 0, 5, 72, 65, 76, 70, 0, 2, 0, 0, 0, 10,
- 73, 85, 80, 95, 84, 72, 73, 82, 68, 0, 2, 0, 0, 0, 6, 84, 72, 73, 82, 68,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0,
- 0, 0, 8, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,
- 69, 73, 71, 72, 84, 72, 0, 2, 0, 0, 0, 7, 69, 73, 71, 72, 84, 72, 0, 2,
- 0, 0, 0, 10, 73, 85, 80, 95, 65, 82, 82, 79, 87, 0, 2, 0, 0, 0, 6, 65,
- 82, 82, 79, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 66, 85, 83, 89, 0, 2,
- 0, 0, 0, 5, 66, 85, 83, 89, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69,
- 83, 73, 90, 69, 95, 78, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 78,
- 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2,
- 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 13, 73, 85,
- 80, 95, 82, 69, 83, 73, 90, 69, 95, 69, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73,
- 90, 69, 95, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69,
- 95, 87, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, 0,
- 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0,
- 10, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95,
- 82, 69, 83, 73, 90, 69, 95, 78, 87, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90,
- 69, 95, 78, 87, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69,
- 95, 83, 69, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2,
- 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0,
- 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85,
- 80, 95, 77, 79, 86, 69, 0, 2, 0, 0, 0, 5, 77, 79, 86, 69, 0, 2, 0, 0,
- 0, 9, 73, 85, 80, 95, 72, 65, 78, 68, 0, 2, 0, 0, 0, 5, 72, 65, 78, 68,
- 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 78, 79, 78, 69, 0, 2, 0, 0, 0, 5,
- 78, 79, 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 73, 85, 80, 0, 2, 0,
- 0, 0, 4, 73, 85, 80, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 82, 79, 83,
- 83, 0, 2, 0, 0, 0, 6, 67, 82, 79, 83, 83, 0, 2, 0, 0, 0, 8, 73, 85,
- 80, 95, 80, 69, 78, 0, 2, 0, 0, 0, 4, 80, 69, 78, 0, 2, 0, 0, 0, 9,
- 73, 85, 80, 95, 84, 69, 88, 84, 0, 2, 0, 0, 0, 5, 84, 69, 88, 84, 0, 2,
- 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0,
- 0, 9, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95,
- 79, 80, 69, 78, 72, 65, 78, 68, 0, 2, 0, 0, 0, 9, 79, 80, 69, 78, 72, 65,
- 78, 68, 0, 2, 0, 0, 0, 23, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67,
- 65, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86,
- 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 23,
- 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67,
- 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84,
- 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 72, 69, 76, 86,
- 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 17, 72, 69,
- 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 24,
- 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76,
- 95, 49, 48, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78,
- 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69,
- 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0,
- 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95,
- 49, 48, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67,
- 65, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69,
- 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85,
- 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49,
- 50, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82,
- 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86,
- 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0,
- 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50,
- 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95,
- 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73,
- 67, 65, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95,
- 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0,
- 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65,
- 76, 95, 49, 52, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84,
- 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 20, 72,
- 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2,
- 0, 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79,
- 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65,
- 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 67, 79,
- 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 17,
- 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0,
- 0, 21, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67,
- 95, 56, 0, 2, 0, 0, 0, 17, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76,
- 73, 67, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69,
- 82, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 15, 67, 79, 85, 82, 73, 69,
- 82, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79,
- 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0,
- 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2,
- 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76,
- 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73,
- 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79,
- 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 16, 67,
- 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 22,
- 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49,
- 50, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65,
- 76, 95, 49, 50, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69,
- 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 18, 67, 79, 85,
- 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20,
- 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0,
- 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50,
- 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79,
- 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82,
- 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95,
- 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0,
- 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52,
- 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79,
- 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66,
- 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69,
- 83, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69,
- 83, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95,
- 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 15,
- 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 17,
- 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0,
- 0, 13, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 20,
- 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0,
- 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48,
- 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76,
- 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65,
- 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69,
- 83, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83,
- 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73,
- 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 16, 84,
- 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 20,
- 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0,
- 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50,
- 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68,
- 95, 49, 50, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95,
- 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79,
- 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78,
- 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73,
- 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84,
- 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18,
- 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0,
- 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/constants_be32.lo");
-}
diff --git a/iup/srclua3/loh/constants_be64.loh b/iup/srclua3/loh/constants_be64.loh
deleted file mode 100755
index bb31b19..0000000
--- a/iup/srclua3/loh/constants_be64.loh
+++ /dev/null
@@ -1,301 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/constants_be64.lo");
-*/
-/* ../obj/iuplua3/constants_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 15, 64, 99,111,110,115,116,
- 97,110,116,115, 46,108,117, 97, 0, 0, 0, 5,182, 4, 0, 7, 1, 25, 0, 15,
- 1, 11, 2, 15, 0, 26, 7, 0, 25, 3, 15, 1, 11, 4, 15, 3, 26, 9, 1, 25,
- 5, 15, 1, 11, 6, 15, 5, 26, 9, 1, 25, 7, 15, 1, 11, 8, 15, 7, 26, 6,
-255,255, 25, 9, 15, 1, 11, 10, 15, 9, 26, 6,255,254, 25, 11, 15, 1, 11, 12,
- 15, 11, 26, 6,255,253, 25, 13, 15, 1, 11, 14, 15, 13, 26, 6,255,252, 25, 15,
- 15, 1, 11, 16, 15, 15, 26, 6,255,251, 25, 17, 15, 1, 11, 18, 15, 17, 26, 6,
-255,250, 25, 19, 15, 1, 11, 20, 15, 19, 26, 15, 11, 25, 21, 15, 1, 11, 22, 15,
- 21, 26, 15, 13, 25, 23, 15, 1, 11, 24, 15, 23, 26, 7, 49, 25, 25, 15, 1, 11,
- 26, 15, 25, 26, 7, 50, 25, 27, 15, 1, 11, 28, 15, 27, 26, 7, 51, 25, 29, 15,
- 1, 11, 30, 15, 29, 26, 7, 52, 25, 31, 15, 1, 11, 32, 15, 31, 26, 7, 53, 25,
- 33, 15, 1, 11, 34, 15, 33, 26, 9, 1, 25, 35, 15, 1, 11, 36, 15, 35, 26, 9,
- 2, 25, 37, 15, 1, 11, 38, 15, 37, 26, 9, 3, 25, 39, 15, 1, 11, 40, 15, 39,
- 26, 9, 4, 25, 41, 15, 1, 11, 42, 15, 41, 26, 7, 0, 25, 43, 15, 1, 11, 44,
- 15, 43, 26, 7, 1, 25, 45, 15, 1, 11, 46, 15, 45, 26, 7, 2, 25, 47, 15, 1,
- 11, 48, 15, 47, 26, 7, 3, 25, 49, 15, 1, 11, 50, 15, 49, 26, 7, 4, 25, 51,
- 15, 1, 11, 52, 15, 51, 26, 7, 5, 25, 53, 15, 1, 11, 54, 15, 53, 26, 7, 6,
- 25, 55, 15, 1, 11, 56, 15, 55, 26, 7, 7, 25, 57, 15, 1, 11, 58, 15, 57, 26,
- 7, 8, 25, 59, 15, 1, 11, 60, 15, 59, 26, 7, 9, 25, 61, 15, 1, 11, 62, 15,
- 61, 26, 7, 10, 25, 63, 15, 1, 11, 64, 15, 63, 26, 7, 11, 25, 65, 15, 1, 11,
- 66, 15, 65, 26, 7, 0, 25, 67, 15, 1, 11, 68, 15, 67, 26, 7, 1, 25, 69, 15,
- 1, 11, 70, 15, 69, 26, 7, 2, 25, 71, 15, 1, 11, 72, 15, 71, 26, 7, 3, 25,
- 73, 15, 1, 11, 74, 15, 73, 26, 7, 4, 25, 75, 15, 1, 11, 76, 15, 75, 26, 15,
- 78, 7, 1, 7, 0, 7, 0, 2, 1, 3, 25, 77, 15, 1, 11, 77, 15, 77, 26, 15,
- 78, 7, 0, 7, 1, 7, 0, 2, 1, 3, 25, 79, 15, 1, 11, 79, 15, 79, 26, 15,
- 78, 7, 0, 7, 0, 7, 1, 2, 1, 3, 25, 80, 15, 1, 11, 80, 15, 80, 26, 15,
- 78, 7, 0, 7, 0, 7, 0, 2, 1, 3, 25, 81, 15, 1, 11, 81, 15, 81, 26, 15,
- 78, 7, 1, 7, 1, 7, 1, 2, 1, 3, 25, 82, 15, 1, 11, 82, 15, 82, 26, 15,
- 78, 7, 1, 7, 1, 7, 0, 2, 1, 3, 25, 83, 15, 1, 11, 83, 15, 83, 26, 11,
- 85, 25, 84, 15, 1, 11, 85, 15, 84, 26, 11, 87, 25, 86, 15, 1, 11, 87, 15, 86,
- 26, 11, 89, 25, 88, 15, 1, 11, 89, 15, 88, 26, 11, 91, 25, 90, 15, 1, 11, 91,
- 15, 90, 26, 11, 93, 25, 92, 15, 1, 11, 93, 15, 92, 26, 11, 95, 25, 94, 15, 1,
- 11, 95, 15, 94, 26, 11, 97, 25, 96, 15, 1, 11, 97, 15, 96, 26, 11, 99, 25, 98,
- 15, 1, 11, 99, 15, 98, 26, 11,101, 25,100, 15, 1, 11,101, 15,100, 26, 11,103,
- 25,102, 15, 1, 11,103, 15,102, 26, 11,105, 25,104, 15, 1, 11,105, 15,104, 26,
- 11,107, 25,106, 15, 1, 11,107, 15,106, 26, 11,109, 25,108, 15, 1, 11,109, 15,
-108, 26, 11,111, 25,110, 15, 1, 11,111, 15,110, 26, 11,113, 25,112, 15, 1, 11,
-113, 15,112, 26, 11,115, 25,114, 15, 1, 11,115, 15,114, 26, 11,117, 25,116, 15,
- 1, 11,117, 15,116, 26, 11,119, 25,118, 15, 1, 11,119, 15,118, 26, 11,121, 25,
-120, 15, 1, 11,121, 15,120, 26, 11,123, 25,122, 15, 1, 11,123, 15,122, 26, 11,
-125, 25,124, 15, 1, 11,125, 15,124, 26, 11,127, 25,126, 15, 1, 11,127, 15,126,
- 26, 11,129, 25,128, 15, 1, 11,129, 15,128, 26, 11,131, 25,130, 15, 1, 11,131,
- 15,130, 26, 11,133, 25,132, 15, 1, 11,133, 15,132, 26, 11,135, 25,134, 15, 1,
- 11,135, 15,134, 26, 11,137, 25,136, 15, 1, 11,137, 15,136, 26, 11,139, 25,138,
- 15, 1, 11,139, 15,138, 26, 11,141, 25,140, 15, 1, 11,141, 15,140, 26, 11,143,
- 25,142, 15, 1, 11,143, 15,142, 26, 11,145, 25,144, 15, 1, 11,145, 15,144, 26,
- 11,147, 25,146, 15, 1, 11,147, 15,146, 26, 11,149, 25,148, 15, 1, 11,149, 15,
-148, 26, 11,151, 25,150, 15, 1, 11,151, 15,150, 26, 11,153, 25,152, 15, 1, 11,
-153, 15,152, 26, 11,155, 25,154, 15, 1, 11,155, 15,154, 26, 11,157, 25,156, 15,
- 1, 11,157, 15,156, 26, 11,159, 25,158, 15, 1, 11,159, 15,158, 26, 11,161, 25,
-160, 15, 1, 11,161, 15,160, 26, 11,163, 25,162, 15, 1, 11,163, 15,162, 26, 11,
-165, 25,164, 15, 1, 11,165, 15,164, 26, 11,167, 25,166, 15, 1, 11,167, 15,166,
- 26, 11,169, 25,168, 15, 1, 11,169, 15,168, 26, 11,171, 25,170, 15, 1, 11,171,
- 15,170, 26, 11,173, 25,172, 15, 1, 11,173, 15,172, 26, 11,175, 25,174, 15, 1,
- 11,175, 15,174, 26, 11,177, 25,176, 15, 1, 11,177, 15,176, 26, 11,179, 25,178,
- 15, 1, 11,179, 15,178, 26, 11,181, 25,180, 15, 1, 11,181, 15,180, 26, 11,183,
- 25,182, 15, 1, 11,183, 15,182, 26, 11,185, 25,184, 15, 1, 11,185, 15,184, 26,
- 11,187, 25,186, 15, 1, 11,187, 15,186, 26, 11,189, 25,188, 15, 1, 11,189, 15,
-188, 26, 11,191, 25,190, 15, 1, 11,191, 15,190, 26, 11,193, 25,192, 15, 1, 11,
-193, 15,192, 26, 11,195, 25,194, 15, 1, 11,195, 15,194, 26, 11,197, 25,196, 15,
- 1, 11,197, 15,196, 26, 11,199, 25,198, 15, 1, 11,199, 15,198, 26, 11,201, 25,
-200, 15, 1, 11,201, 15,200, 26, 11,203, 25,202, 15, 1, 11,203, 15,202, 26, 11,
-205, 25,204, 15, 1, 11,205, 15,204, 26, 11,207, 25,206, 15, 1, 11,207, 15,206,
- 26, 11,209, 25,208, 15, 1, 11,209, 15,208, 26, 11,211, 25,210, 15, 1, 11,211,
- 15,210, 26, 11,213, 25,212, 15, 1, 11,213, 15,212, 26, 11,215, 25,214, 15, 1,
- 11,215, 15,214, 26, 11,217, 25,216, 15, 1, 11,217, 15,216, 26, 11,219, 25,218,
- 15, 1, 11,219, 15,218, 26, 11,221, 25,220, 15, 1, 11,221, 15,220, 26, 11,223,
- 25,222, 15, 1, 11,223, 15,222, 26, 11,225, 25,224, 15, 1, 11,225, 15,224, 26,
- 11,227, 25,226, 15, 1, 11,227, 15,226, 26, 11,229, 25,228, 15, 1, 11,229, 15,
-228, 26, 11,231, 25,230, 15, 1, 11,231, 15,230, 26, 11,233, 25,232, 15, 1, 11,
-233, 15,232, 26, 11,235, 25,234, 15, 1, 11,235, 15,234, 26, 11,237, 25,236, 15,
- 1, 11,237, 15,236, 26, 11,239, 25,238, 15, 1, 11,239, 15,238, 26, 11,241, 25,
-240, 15, 1, 11,241, 15,240, 26, 11,243, 25,242, 15, 1, 11,243, 15,242, 26, 15,
- 1, 11,244, 11,245, 26, 15, 1, 11,246, 11,247, 26, 15, 1, 11,248, 11,249, 26,
- 15, 1, 11,250, 11,251, 26, 15, 1, 11,252, 11,253, 26, 0, 0, 0, 0, 0, 0,
- 0, 0,254, 2, 0, 0, 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0,
- 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6, 69, 82, 82, 79, 82, 0, 2, 0,
- 0, 0, 12, 73, 85, 80, 95, 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 8,
- 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 79, 80, 69,
- 78, 69, 68, 0, 2, 0, 0, 0, 7, 79, 80, 69, 78, 69, 68, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 8, 73, 78,
- 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, 69, 78, 84, 69,
- 82, 0, 2, 0, 0, 0, 7, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 9, 73,
- 85, 80, 95, 76, 69, 70, 84, 0, 2, 0, 0, 0, 5, 76, 69, 70, 84, 0, 2, 0,
- 0, 0, 10, 73, 85, 80, 95, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 6, 82, 73,
- 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 79, 85, 83, 69, 80, 79,
- 83, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 80, 79, 83, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 67, 85,
- 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, 67, 69, 78, 84, 69,
- 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 13, 67, 69, 78, 84, 69, 82, 80,
- 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 84, 79, 80, 0, 2,
- 0, 0, 0, 4, 84, 79, 80, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 66, 79, 84,
- 84, 79, 77, 0, 2, 0, 0, 0, 7, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 8, 66, 85,
- 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79,
- 78, 50, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 50, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 8, 66, 85,
- 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79,
- 78, 52, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 52, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 8, 66, 85,
- 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 73, 71, 78, 79, 82,
- 69, 0, 2, 0, 0, 0, 7, 73, 71, 78, 79, 82, 69, 0, 2, 0, 0, 0, 12, 73,
- 85, 80, 95, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0, 8, 68, 69, 70, 65,
- 85, 76, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 76, 79, 83, 69, 0, 2,
- 0, 0, 0, 6, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 67,
- 79, 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 67, 79, 78, 84, 73, 78, 85,
- 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 85, 80, 0, 2, 0, 0, 0,
- 5, 83, 66, 85, 80, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 68, 78, 0,
- 2, 0, 0, 0, 5, 83, 66, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83,
- 66, 80, 71, 85, 80, 0, 2, 0, 0, 0, 7, 83, 66, 80, 71, 85, 80, 0, 2, 0,
- 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 7, 83,
- 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 79, 83,
- 86, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 86, 0, 2, 0, 0, 0, 12, 73,
- 85, 80, 95, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0, 8, 83, 66, 68, 82,
- 65, 71, 86, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 76, 69, 70, 84, 0,
- 2, 0, 0, 0, 7, 83, 66, 76, 69, 70, 84, 0, 2, 0, 0, 0, 12, 73, 85, 80,
- 95, 83, 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 8, 83, 66, 82, 73, 71, 72,
- 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 83, 66, 80, 71, 76, 69, 70, 84, 0,
- 2, 0, 0, 0, 9, 83, 66, 80, 71, 76, 69, 70, 84, 0, 2, 0, 0, 0, 14, 73,
- 85, 80, 95, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 10, 83, 66,
- 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80,
- 79, 83, 72, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 72, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 8, 83, 66,
- 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 72, 79, 87, 0,
- 2, 0, 0, 0, 5, 83, 72, 79, 87, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 82,
- 69, 83, 84, 79, 82, 69, 0, 2, 0, 0, 0, 8, 82, 69, 83, 84, 79, 82, 69, 0,
- 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0,
- 0, 0, 9, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80,
- 95, 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9, 77, 65, 88, 73, 77,
- 73, 90, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 73, 68, 69, 0, 2, 0,
- 0, 0, 5, 72, 73, 68, 69, 0, 2, 0, 0, 0, 4, 82, 69, 68, 0, 2, 0, 0,
- 0, 7, 73,117,112, 82, 71, 66, 0, 2, 0, 0, 0, 6, 71, 82, 69, 69, 78, 0,
- 2, 0, 0, 0, 5, 66, 76, 85, 69, 0, 2, 0, 0, 0, 6, 66, 76, 65, 67, 75,
- 0, 2, 0, 0, 0, 6, 87, 72, 73, 84, 69, 0, 2, 0, 0, 0, 7, 89, 69, 76,
- 76, 79, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 79, 78, 0, 2, 0, 0, 0,
- 3, 79, 78, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 79, 70, 70, 0, 2, 0, 0,
- 0, 4, 79, 70, 70, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2,
- 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0,
- 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 80, 80,
- 69, 78, 68, 0, 2, 0, 0, 0, 7, 65, 80, 80, 69, 78, 68, 0, 2, 0, 0, 0,
- 13, 73, 85, 80, 95, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 9, 86,
- 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 15, 73, 85, 80, 95, 72, 79, 82,
- 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78,
- 84, 65, 76, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 65, 67, 69, 78, 84, 69, 82,
- 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 10, 73,
- 85, 80, 95, 65, 76, 69, 70, 84, 0, 2, 0, 0, 0, 6, 65, 76, 69, 70, 84, 0,
- 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0,
- 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 65, 84, 79,
- 80, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 12, 73, 85, 80,
- 95, 65, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 8, 65, 66, 79, 84, 84, 79,
- 77, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 78, 79, 82, 84, 72, 0, 2, 0, 0,
- 0, 6, 78, 79, 82, 84, 72, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 83, 79, 85,
- 84, 72, 0, 2, 0, 0, 0, 6, 83, 79, 85, 84, 72, 0, 2, 0, 0, 0, 9, 73,
- 85, 80, 95, 87, 69, 83, 84, 0, 2, 0, 0, 0, 5, 87, 69, 83, 84, 0, 2, 0,
- 0, 0, 9, 73, 85, 80, 95, 69, 65, 83, 84, 0, 2, 0, 0, 0, 5, 69, 65, 83,
- 84, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 69, 0, 2, 0, 0, 0, 3, 78,
- 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 69, 0, 2, 0, 0, 0, 3, 83,
- 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 87, 0, 2, 0, 0, 0, 3, 78,
- 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 87, 0, 2, 0, 0, 0, 3, 83,
- 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 70, 85, 76, 76, 0, 2, 0, 0, 0,
- 5, 70, 85, 76, 76, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 65, 76, 70, 0,
- 2, 0, 0, 0, 5, 72, 65, 76, 70, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 84,
- 72, 73, 82, 68, 0, 2, 0, 0, 0, 6, 84, 72, 73, 82, 68, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 8, 81, 85,
- 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 69, 73, 71, 72, 84,
- 72, 0, 2, 0, 0, 0, 7, 69, 73, 71, 72, 84, 72, 0, 2, 0, 0, 0, 10, 73,
- 85, 80, 95, 65, 82, 82, 79, 87, 0, 2, 0, 0, 0, 6, 65, 82, 82, 79, 87, 0,
- 2, 0, 0, 0, 9, 73, 85, 80, 95, 66, 85, 83, 89, 0, 2, 0, 0, 0, 5, 66,
- 85, 83, 89, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95,
- 78, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 78, 0, 2, 0, 0, 0,
- 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 9, 82,
- 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83,
- 73, 90, 69, 95, 69, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 69, 0,
- 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0,
- 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, 0, 0, 14, 73, 85, 80,
- 95, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73,
- 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90,
- 69, 95, 78, 87, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 78, 87, 0,
- 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2,
- 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2, 0, 0, 0, 14, 73,
- 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 10, 82, 69,
- 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 77, 79, 86,
- 69, 0, 2, 0, 0, 0, 5, 77, 79, 86, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80,
- 95, 72, 65, 78, 68, 0, 2, 0, 0, 0, 5, 72, 65, 78, 68, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 95, 78, 79, 78, 69, 0, 2, 0, 0, 0, 5, 78, 79, 78, 69, 0,
- 2, 0, 0, 0, 8, 73, 85, 80, 95, 73, 85, 80, 0, 2, 0, 0, 0, 4, 73, 85,
- 80, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 82, 79, 83, 83, 0, 2, 0, 0,
- 0, 6, 67, 82, 79, 83, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 80, 69, 78,
- 0, 2, 0, 0, 0, 4, 80, 69, 78, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 84,
- 69, 88, 84, 0, 2, 0, 0, 0, 5, 84, 69, 88, 84, 0, 2, 0, 0, 0, 13, 73,
- 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 9, 82, 69, 83,
- 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 79, 80, 69, 78, 72,
- 65, 78, 68, 0, 2, 0, 0, 0, 9, 79, 80, 69, 78, 72, 65, 78, 68, 0, 2, 0,
- 0, 0, 23, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82,
- 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65,
- 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 23, 73, 85, 80, 95, 72,
- 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0,
- 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95,
- 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65,
- 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 17, 72, 69, 76, 86, 69, 84, 73,
- 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72,
- 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2,
- 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76,
- 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73,
- 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 20, 72, 69,
- 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0,
- 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76,
- 68, 95, 49, 48, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95,
- 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76,
- 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0,
- 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49,
- 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65,
- 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86,
- 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0,
- 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95,
- 49, 50, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79,
- 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69,
- 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 20,
- 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0,
- 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73,
- 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84,
- 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73,
- 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 49, 52,
- 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68,
- 95, 49, 52, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82,
- 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 17, 67, 79, 85, 82, 73,
- 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 21, 73, 85, 80,
- 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0,
- 0, 0, 17, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0,
- 2, 0, 0, 0, 19, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76,
- 68, 95, 56, 0, 2, 0, 0, 0, 15, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76,
- 68, 95, 56, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82,
- 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82,
- 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 22, 73,
- 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48,
- 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67,
- 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82,
- 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69,
- 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67,
- 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0,
- 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0,
- 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65,
- 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95,
- 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67,
- 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 16,
- 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0,
- 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95,
- 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77,
- 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73,
- 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, 67, 79,
- 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0,
- 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 52,
- 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49,
- 52, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82,
- 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, 83, 95, 78, 79, 82,
- 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, 83,
- 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, 83,
- 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, 84,
- 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 13, 84, 73, 77,
- 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84,
- 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 16,
- 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0,
- 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48,
- 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49,
- 48, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76,
- 68, 95, 49, 48, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68,
- 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78,
- 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95,
- 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84,
- 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 16,
- 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0,
- 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2,
- 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0,
- 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95,
- 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76,
- 95, 49, 52, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73,
- 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95,
- 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84,
- 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 14, 84, 73,
- 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 11, 77, 65, 83,
- 75, 95, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 24, 91, 43, 47, 45, 93, 63, 40,
- 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, 43, 41, 0, 2, 0, 0,
- 0, 12, 77, 65, 83, 75, 95, 85, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 18, 40,
- 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, 43, 41, 0, 2, 0, 0,
- 0, 12, 77, 65, 83, 75, 95, 69, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 40, 91,
- 43, 47, 45, 93, 63, 40, 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100,
- 43, 41, 40, 91,101, 69, 93, 91, 43, 47, 45, 93, 63, 47,100, 43, 41, 63, 0, 2,
- 0, 0, 0, 9, 77, 65, 83, 75, 95, 73, 78, 84, 0, 2, 0, 0, 0, 10, 91, 43,
- 47, 45, 93, 63, 47,100, 43, 0, 2, 0, 0, 0, 10, 77, 65, 83, 75, 95, 85, 73,
- 78, 84, 0, 2, 0, 0, 0, 4, 47,100, 43, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/constants_be64.lo");
-}
diff --git a/iup/srclua3/loh/constants_le64.loh b/iup/srclua3/loh/constants_le64.loh
deleted file mode 100755
index 54ece5d..0000000
--- a/iup/srclua3/loh/constants_le64.loh
+++ /dev/null
@@ -1,289 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/constants_le64.lo");
-*/
-/* ../obj/iuplua3/constants_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 15, 64, 99,111,110,115,116,
- 97,110,116,115, 46,108,117, 97, 0, 0, 0, 5,147, 4, 0, 7, 1, 25, 0, 15,
- 1, 11, 2, 15, 0, 26, 7, 0, 25, 3, 15, 1, 11, 4, 15, 3, 26, 9, 1, 25,
- 5, 15, 1, 11, 6, 15, 5, 26, 9, 1, 25, 7, 15, 1, 11, 8, 15, 7, 26, 6,
-255,255, 25, 9, 15, 1, 11, 10, 15, 9, 26, 6,255,254, 25, 11, 15, 1, 11, 12,
- 15, 11, 26, 6,255,253, 25, 13, 15, 1, 11, 14, 15, 13, 26, 6,255,252, 25, 15,
- 15, 1, 11, 16, 15, 15, 26, 6,255,251, 25, 17, 15, 1, 11, 18, 15, 17, 26, 6,
-255,250, 25, 19, 15, 1, 11, 20, 15, 19, 26, 15, 11, 25, 21, 15, 1, 11, 22, 15,
- 21, 26, 15, 13, 25, 23, 15, 1, 11, 24, 15, 23, 26, 7, 49, 25, 25, 15, 1, 11,
- 26, 15, 25, 26, 7, 50, 25, 27, 15, 1, 11, 28, 15, 27, 26, 7, 51, 25, 29, 15,
- 1, 11, 30, 15, 29, 26, 7, 52, 25, 31, 15, 1, 11, 32, 15, 31, 26, 7, 53, 25,
- 33, 15, 1, 11, 34, 15, 33, 26, 9, 1, 25, 35, 15, 1, 11, 36, 15, 35, 26, 9,
- 2, 25, 37, 15, 1, 11, 38, 15, 37, 26, 9, 3, 25, 39, 15, 1, 11, 40, 15, 39,
- 26, 9, 4, 25, 41, 15, 1, 11, 42, 15, 41, 26, 7, 0, 25, 43, 15, 1, 11, 44,
- 15, 43, 26, 7, 1, 25, 45, 15, 1, 11, 46, 15, 45, 26, 7, 2, 25, 47, 15, 1,
- 11, 48, 15, 47, 26, 7, 3, 25, 49, 15, 1, 11, 50, 15, 49, 26, 7, 4, 25, 51,
- 15, 1, 11, 52, 15, 51, 26, 7, 5, 25, 53, 15, 1, 11, 54, 15, 53, 26, 7, 6,
- 25, 55, 15, 1, 11, 56, 15, 55, 26, 7, 7, 25, 57, 15, 1, 11, 58, 15, 57, 26,
- 7, 8, 25, 59, 15, 1, 11, 60, 15, 59, 26, 7, 9, 25, 61, 15, 1, 11, 62, 15,
- 61, 26, 7, 10, 25, 63, 15, 1, 11, 64, 15, 63, 26, 7, 11, 25, 65, 15, 1, 11,
- 66, 15, 65, 26, 7, 0, 25, 67, 15, 1, 11, 68, 15, 67, 26, 7, 1, 25, 69, 15,
- 1, 11, 70, 15, 69, 26, 7, 2, 25, 71, 15, 1, 11, 72, 15, 71, 26, 7, 3, 25,
- 73, 15, 1, 11, 74, 15, 73, 26, 7, 4, 25, 75, 15, 1, 11, 76, 15, 75, 26, 15,
- 78, 7, 1, 7, 0, 7, 0, 2, 1, 3, 25, 77, 15, 1, 11, 77, 15, 77, 26, 15,
- 78, 7, 0, 7, 1, 7, 0, 2, 1, 3, 25, 79, 15, 1, 11, 79, 15, 79, 26, 15,
- 78, 7, 0, 7, 0, 7, 1, 2, 1, 3, 25, 80, 15, 1, 11, 80, 15, 80, 26, 15,
- 78, 7, 0, 7, 0, 7, 0, 2, 1, 3, 25, 81, 15, 1, 11, 81, 15, 81, 26, 15,
- 78, 7, 1, 7, 1, 7, 1, 2, 1, 3, 25, 82, 15, 1, 11, 82, 15, 82, 26, 15,
- 78, 7, 1, 7, 1, 7, 0, 2, 1, 3, 25, 83, 15, 1, 11, 83, 15, 83, 26, 11,
- 85, 25, 84, 15, 1, 11, 85, 15, 84, 26, 11, 87, 25, 86, 15, 1, 11, 87, 15, 86,
- 26, 11, 89, 25, 88, 15, 1, 11, 89, 15, 88, 26, 11, 91, 25, 90, 15, 1, 11, 91,
- 15, 90, 26, 11, 93, 25, 92, 15, 1, 11, 93, 15, 92, 26, 11, 95, 25, 94, 15, 1,
- 11, 95, 15, 94, 26, 11, 97, 25, 96, 15, 1, 11, 97, 15, 96, 26, 11, 99, 25, 98,
- 15, 1, 11, 99, 15, 98, 26, 11,101, 25,100, 15, 1, 11,101, 15,100, 26, 11,103,
- 25,102, 15, 1, 11,103, 15,102, 26, 11,105, 25,104, 15, 1, 11,105, 15,104, 26,
- 11,107, 25,106, 15, 1, 11,107, 15,106, 26, 11,109, 25,108, 15, 1, 11,109, 15,
-108, 26, 11,111, 25,110, 15, 1, 11,111, 15,110, 26, 11,113, 25,112, 15, 1, 11,
-113, 15,112, 26, 11,115, 25,114, 15, 1, 11,115, 15,114, 26, 11,117, 25,116, 15,
- 1, 11,117, 15,116, 26, 11,119, 25,118, 15, 1, 11,119, 15,118, 26, 11,121, 25,
-120, 15, 1, 11,121, 15,120, 26, 11,123, 25,122, 15, 1, 11,123, 15,122, 26, 11,
-125, 25,124, 15, 1, 11,125, 15,124, 26, 11,127, 25,126, 15, 1, 11,127, 15,126,
- 26, 11,129, 25,128, 15, 1, 11,129, 15,128, 26, 11,131, 25,130, 15, 1, 11,131,
- 15,130, 26, 11,133, 25,132, 15, 1, 11,133, 15,132, 26, 11,135, 25,134, 15, 1,
- 11,135, 15,134, 26, 11,137, 25,136, 15, 1, 11,137, 15,136, 26, 11,139, 25,138,
- 15, 1, 11,139, 15,138, 26, 11,141, 25,140, 15, 1, 11,141, 15,140, 26, 11,143,
- 25,142, 15, 1, 11,143, 15,142, 26, 11,145, 25,144, 15, 1, 11,145, 15,144, 26,
- 11,147, 25,146, 15, 1, 11,147, 15,146, 26, 11,149, 25,148, 15, 1, 11,149, 15,
-148, 26, 11,151, 25,150, 15, 1, 11,151, 15,150, 26, 11,153, 25,152, 15, 1, 11,
-153, 15,152, 26, 11,155, 25,154, 15, 1, 11,155, 15,154, 26, 11,157, 25,156, 15,
- 1, 11,157, 15,156, 26, 11,159, 25,158, 15, 1, 11,159, 15,158, 26, 11,161, 25,
-160, 15, 1, 11,161, 15,160, 26, 11,163, 25,162, 15, 1, 11,163, 15,162, 26, 11,
-165, 25,164, 15, 1, 11,165, 15,164, 26, 11,167, 25,166, 15, 1, 11,167, 15,166,
- 26, 11,169, 25,168, 15, 1, 11,169, 15,168, 26, 11,171, 25,170, 15, 1, 11,171,
- 15,170, 26, 11,173, 25,172, 15, 1, 11,173, 15,172, 26, 11,175, 25,174, 15, 1,
- 11,175, 15,174, 26, 11,177, 25,176, 15, 1, 11,177, 15,176, 26, 11,179, 25,178,
- 15, 1, 11,179, 15,178, 26, 11,181, 25,180, 15, 1, 11,181, 15,180, 26, 11,183,
- 25,182, 15, 1, 11,183, 15,182, 26, 11,185, 25,184, 15, 1, 11,185, 15,184, 26,
- 11,187, 25,186, 15, 1, 11,187, 15,186, 26, 11,189, 25,188, 15, 1, 11,189, 15,
-188, 26, 11,191, 25,190, 15, 1, 11,191, 15,190, 26, 11,193, 25,192, 15, 1, 11,
-193, 15,192, 26, 11,195, 25,194, 15, 1, 11,195, 15,194, 26, 11,197, 25,196, 15,
- 1, 11,197, 15,196, 26, 11,199, 25,198, 15, 1, 11,199, 15,198, 26, 11,201, 25,
-200, 15, 1, 11,201, 15,200, 26, 11,203, 25,202, 15, 1, 11,203, 15,202, 26, 11,
-205, 25,204, 15, 1, 11,205, 15,204, 26, 11,207, 25,206, 15, 1, 11,207, 15,206,
- 26, 11,209, 25,208, 15, 1, 11,209, 15,208, 26, 11,211, 25,210, 15, 1, 11,211,
- 15,210, 26, 11,213, 25,212, 15, 1, 11,213, 15,212, 26, 11,215, 25,214, 15, 1,
- 11,215, 15,214, 26, 11,217, 25,216, 15, 1, 11,217, 15,216, 26, 11,219, 25,218,
- 15, 1, 11,219, 15,218, 26, 11,221, 25,220, 15, 1, 11,221, 15,220, 26, 11,223,
- 25,222, 15, 1, 11,223, 15,222, 26, 11,225, 25,224, 15, 1, 11,225, 15,224, 26,
- 11,227, 25,226, 15, 1, 11,227, 15,226, 26, 11,229, 25,228, 15, 1, 11,229, 15,
-228, 26, 11,231, 25,230, 15, 1, 11,231, 15,230, 26, 11,233, 25,232, 15, 1, 11,
-233, 15,232, 26, 11,235, 25,234, 15, 1, 11,235, 15,234, 26, 11,237, 25,236, 15,
- 1, 11,237, 15,236, 26, 11,239, 25,238, 15, 1, 11,239, 15,238, 26, 11,241, 25,
-240, 15, 1, 11,241, 15,240, 26, 11,243, 25,242, 15, 1, 11,243, 15,242, 26, 0,
- 0, 0, 0, 0, 0, 0, 0,244, 2, 0, 0, 0, 10, 73, 85, 80, 95, 69, 82, 82,
- 79, 82, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6, 69, 82, 82,
- 79, 82, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 78, 79, 69, 82, 82, 79, 82, 0,
- 2, 0, 0, 0, 8, 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 95, 79, 80, 69, 78, 69, 68, 0, 2, 0, 0, 0, 7, 79, 80, 69, 78, 69, 68,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0,
- 0, 0, 8, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,
- 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7, 67, 69, 78, 84, 69, 82, 0, 2,
- 0, 0, 0, 9, 73, 85, 80, 95, 76, 69, 70, 84, 0, 2, 0, 0, 0, 5, 76, 69,
- 70, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 82, 73, 71, 72, 84, 0, 2, 0,
- 0, 0, 6, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 79,
- 85, 83, 69, 80, 79, 83, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 80, 79, 83,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0,
- 0, 0, 8, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95,
- 67, 69, 78, 84, 69, 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 13, 67, 69,
- 78, 84, 69, 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95,
- 84, 79, 80, 0, 2, 0, 0, 0, 4, 84, 79, 80, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 95, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 7, 66, 79, 84, 84, 79, 77,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0,
- 0, 0, 8, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95,
- 66, 85, 84, 84, 79, 78, 50, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 50,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0,
- 0, 0, 8, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95,
- 66, 85, 84, 84, 79, 78, 52, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 52,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0,
- 0, 0, 8, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,
- 73, 71, 78, 79, 82, 69, 0, 2, 0, 0, 0, 7, 73, 71, 78, 79, 82, 69, 0, 2,
- 0, 0, 0, 12, 73, 85, 80, 95, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0,
- 8, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 76,
- 79, 83, 69, 0, 2, 0, 0, 0, 6, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 13,
- 73, 85, 80, 95, 67, 79, 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 67, 79,
- 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 85, 80,
- 0, 2, 0, 0, 0, 5, 83, 66, 85, 80, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95,
- 83, 66, 68, 78, 0, 2, 0, 0, 0, 5, 83, 66, 68, 78, 0, 2, 0, 0, 0, 11,
- 73, 85, 80, 95, 83, 66, 80, 71, 85, 80, 0, 2, 0, 0, 0, 7, 83, 66, 80, 71,
- 85, 80, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 71, 68, 78, 0, 2,
- 0, 0, 0, 7, 83, 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,
- 83, 66, 80, 79, 83, 86, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 86, 0, 2,
- 0, 0, 0, 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0,
- 8, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66,
- 76, 69, 70, 84, 0, 2, 0, 0, 0, 7, 83, 66, 76, 69, 70, 84, 0, 2, 0, 0,
- 0, 12, 73, 85, 80, 95, 83, 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 8, 83,
- 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 83, 66, 80, 71,
- 76, 69, 70, 84, 0, 2, 0, 0, 0, 9, 83, 66, 80, 71, 76, 69, 70, 84, 0, 2,
- 0, 0, 0, 14, 73, 85, 80, 95, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0,
- 0, 0, 10, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 95, 83, 66, 80, 79, 83, 72, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 72,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0,
- 0, 0, 8, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95,
- 83, 72, 79, 87, 0, 2, 0, 0, 0, 5, 83, 72, 79, 87, 0, 2, 0, 0, 0, 12,
- 73, 85, 80, 95, 82, 69, 83, 84, 79, 82, 69, 0, 2, 0, 0, 0, 8, 82, 69, 83,
- 84, 79, 82, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 73, 78, 73, 77, 73,
- 90, 69, 0, 2, 0, 0, 0, 9, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, 0,
- 0, 13, 73, 85, 80, 95, 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9,
- 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 73,
- 68, 69, 0, 2, 0, 0, 0, 5, 72, 73, 68, 69, 0, 2, 0, 0, 0, 4, 82, 69,
- 68, 0, 2, 0, 0, 0, 7, 73,117,112, 82, 71, 66, 0, 2, 0, 0, 0, 6, 71,
- 82, 69, 69, 78, 0, 2, 0, 0, 0, 5, 66, 76, 85, 69, 0, 2, 0, 0, 0, 6,
- 66, 76, 65, 67, 75, 0, 2, 0, 0, 0, 6, 87, 72, 73, 84, 69, 0, 2, 0, 0,
- 0, 7, 89, 69, 76, 76, 79, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 79, 78,
- 0, 2, 0, 0, 0, 3, 79, 78, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 79, 70,
- 70, 0, 2, 0, 0, 0, 4, 79, 70, 70, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95,
- 89, 69, 83, 0, 2, 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 7, 73, 85,
- 80, 95, 78, 79, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 95, 65, 80, 80, 69, 78, 68, 0, 2, 0, 0, 0, 7, 65, 80, 80, 69, 78, 68,
- 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2,
- 0, 0, 0, 9, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 15, 73, 85,
- 80, 95, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 11, 72, 79,
- 82, 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 65, 67,
- 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2,
- 0, 0, 0, 10, 73, 85, 80, 95, 65, 76, 69, 70, 84, 0, 2, 0, 0, 0, 6, 65,
- 76, 69, 70, 84, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 82, 73, 71, 72, 84,
- 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 9, 73, 85,
- 80, 95, 65, 84, 79, 80, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0,
- 0, 12, 73, 85, 80, 95, 65, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 8, 65,
- 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 78, 79, 82, 84,
- 72, 0, 2, 0, 0, 0, 6, 78, 79, 82, 84, 72, 0, 2, 0, 0, 0, 10, 73, 85,
- 80, 95, 83, 79, 85, 84, 72, 0, 2, 0, 0, 0, 6, 83, 79, 85, 84, 72, 0, 2,
- 0, 0, 0, 9, 73, 85, 80, 95, 87, 69, 83, 84, 0, 2, 0, 0, 0, 5, 87, 69,
- 83, 84, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 69, 65, 83, 84, 0, 2, 0, 0,
- 0, 5, 69, 65, 83, 84, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 69, 0, 2,
- 0, 0, 0, 3, 78, 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 69, 0, 2,
- 0, 0, 0, 3, 83, 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 87, 0, 2,
- 0, 0, 0, 3, 78, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 87, 0, 2,
- 0, 0, 0, 3, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 70, 85, 76, 76,
- 0, 2, 0, 0, 0, 5, 70, 85, 76, 76, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95,
- 72, 65, 76, 70, 0, 2, 0, 0, 0, 5, 72, 65, 76, 70, 0, 2, 0, 0, 0, 10,
- 73, 85, 80, 95, 84, 72, 73, 82, 68, 0, 2, 0, 0, 0, 6, 84, 72, 73, 82, 68,
- 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0,
- 0, 0, 8, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,
- 69, 73, 71, 72, 84, 72, 0, 2, 0, 0, 0, 7, 69, 73, 71, 72, 84, 72, 0, 2,
- 0, 0, 0, 10, 73, 85, 80, 95, 65, 82, 82, 79, 87, 0, 2, 0, 0, 0, 6, 65,
- 82, 82, 79, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 66, 85, 83, 89, 0, 2,
- 0, 0, 0, 5, 66, 85, 83, 89, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69,
- 83, 73, 90, 69, 95, 78, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 78,
- 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2,
- 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 13, 73, 85,
- 80, 95, 82, 69, 83, 73, 90, 69, 95, 69, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73,
- 90, 69, 95, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69,
- 95, 87, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, 0,
- 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0,
- 10, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95,
- 82, 69, 83, 73, 90, 69, 95, 78, 87, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90,
- 69, 95, 78, 87, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69,
- 95, 83, 69, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2,
- 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0,
- 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85,
- 80, 95, 77, 79, 86, 69, 0, 2, 0, 0, 0, 5, 77, 79, 86, 69, 0, 2, 0, 0,
- 0, 9, 73, 85, 80, 95, 72, 65, 78, 68, 0, 2, 0, 0, 0, 5, 72, 65, 78, 68,
- 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 78, 79, 78, 69, 0, 2, 0, 0, 0, 5,
- 78, 79, 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 73, 85, 80, 0, 2, 0,
- 0, 0, 4, 73, 85, 80, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 82, 79, 83,
- 83, 0, 2, 0, 0, 0, 6, 67, 82, 79, 83, 83, 0, 2, 0, 0, 0, 8, 73, 85,
- 80, 95, 80, 69, 78, 0, 2, 0, 0, 0, 4, 80, 69, 78, 0, 2, 0, 0, 0, 9,
- 73, 85, 80, 95, 84, 69, 88, 84, 0, 2, 0, 0, 0, 5, 84, 69, 88, 84, 0, 2,
- 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0,
- 0, 9, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95,
- 79, 80, 69, 78, 72, 65, 78, 68, 0, 2, 0, 0, 0, 9, 79, 80, 69, 78, 72, 65,
- 78, 68, 0, 2, 0, 0, 0, 23, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67,
- 65, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86,
- 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 23,
- 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67,
- 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84,
- 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 72, 69, 76, 86,
- 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 17, 72, 69,
- 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 24,
- 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76,
- 95, 49, 48, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78,
- 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69,
- 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0,
- 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95,
- 49, 48, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67,
- 65, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69,
- 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85,
- 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49,
- 50, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82,
- 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86,
- 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0,
- 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50,
- 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95,
- 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73,
- 67, 65, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95,
- 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0,
- 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65,
- 76, 95, 49, 52, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84,
- 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 20, 72,
- 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2,
- 0, 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79,
- 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65,
- 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 67, 79,
- 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 17,
- 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0,
- 0, 21, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67,
- 95, 56, 0, 2, 0, 0, 0, 17, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76,
- 73, 67, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69,
- 82, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 15, 67, 79, 85, 82, 73, 69,
- 82, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79,
- 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0,
- 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2,
- 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76,
- 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73,
- 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79,
- 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 16, 67,
- 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 22,
- 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49,
- 50, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65,
- 76, 95, 49, 50, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69,
- 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 18, 67, 79, 85,
- 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20,
- 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0,
- 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50,
- 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79,
- 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82,
- 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95,
- 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0,
- 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52,
- 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79,
- 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66,
- 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69,
- 83, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69,
- 83, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95,
- 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 15,
- 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 17,
- 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0,
- 0, 13, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 20,
- 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0,
- 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48,
- 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76,
- 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65,
- 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69,
- 83, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83,
- 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73,
- 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 16, 84,
- 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 20,
- 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0,
- 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50,
- 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68,
- 95, 49, 50, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95,
- 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79,
- 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78,
- 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73,
- 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84,
- 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18,
- 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0,
- 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/constants_le64.lo");
-}
diff --git a/iup/srclua3/loh/constants_le64w.loh b/iup/srclua3/loh/constants_le64w.loh
deleted file mode 100755
index 6e7ed93..0000000
--- a/iup/srclua3/loh/constants_le64w.loh
+++ /dev/null
@@ -1,301 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/constants_le64w.lo");
-*/
-/* ../obj/iuplua3/constants_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 15, 64, 99,111,110,115,116,
- 97,110,116,115, 46,108,117, 97, 0, 0, 0, 5,182, 4, 0, 7, 1, 25, 0, 15,
- 1, 11, 2, 15, 0, 26, 7, 0, 25, 3, 15, 1, 11, 4, 15, 3, 26, 9, 1, 25,
- 5, 15, 1, 11, 6, 15, 5, 26, 9, 1, 25, 7, 15, 1, 11, 8, 15, 7, 26, 6,
-255,255, 25, 9, 15, 1, 11, 10, 15, 9, 26, 6,255,254, 25, 11, 15, 1, 11, 12,
- 15, 11, 26, 6,255,253, 25, 13, 15, 1, 11, 14, 15, 13, 26, 6,255,252, 25, 15,
- 15, 1, 11, 16, 15, 15, 26, 6,255,251, 25, 17, 15, 1, 11, 18, 15, 17, 26, 6,
-255,250, 25, 19, 15, 1, 11, 20, 15, 19, 26, 15, 11, 25, 21, 15, 1, 11, 22, 15,
- 21, 26, 15, 13, 25, 23, 15, 1, 11, 24, 15, 23, 26, 7, 49, 25, 25, 15, 1, 11,
- 26, 15, 25, 26, 7, 50, 25, 27, 15, 1, 11, 28, 15, 27, 26, 7, 51, 25, 29, 15,
- 1, 11, 30, 15, 29, 26, 7, 52, 25, 31, 15, 1, 11, 32, 15, 31, 26, 7, 53, 25,
- 33, 15, 1, 11, 34, 15, 33, 26, 9, 1, 25, 35, 15, 1, 11, 36, 15, 35, 26, 9,
- 2, 25, 37, 15, 1, 11, 38, 15, 37, 26, 9, 3, 25, 39, 15, 1, 11, 40, 15, 39,
- 26, 9, 4, 25, 41, 15, 1, 11, 42, 15, 41, 26, 7, 0, 25, 43, 15, 1, 11, 44,
- 15, 43, 26, 7, 1, 25, 45, 15, 1, 11, 46, 15, 45, 26, 7, 2, 25, 47, 15, 1,
- 11, 48, 15, 47, 26, 7, 3, 25, 49, 15, 1, 11, 50, 15, 49, 26, 7, 4, 25, 51,
- 15, 1, 11, 52, 15, 51, 26, 7, 5, 25, 53, 15, 1, 11, 54, 15, 53, 26, 7, 6,
- 25, 55, 15, 1, 11, 56, 15, 55, 26, 7, 7, 25, 57, 15, 1, 11, 58, 15, 57, 26,
- 7, 8, 25, 59, 15, 1, 11, 60, 15, 59, 26, 7, 9, 25, 61, 15, 1, 11, 62, 15,
- 61, 26, 7, 10, 25, 63, 15, 1, 11, 64, 15, 63, 26, 7, 11, 25, 65, 15, 1, 11,
- 66, 15, 65, 26, 7, 0, 25, 67, 15, 1, 11, 68, 15, 67, 26, 7, 1, 25, 69, 15,
- 1, 11, 70, 15, 69, 26, 7, 2, 25, 71, 15, 1, 11, 72, 15, 71, 26, 7, 3, 25,
- 73, 15, 1, 11, 74, 15, 73, 26, 7, 4, 25, 75, 15, 1, 11, 76, 15, 75, 26, 15,
- 78, 7, 1, 7, 0, 7, 0, 2, 1, 3, 25, 77, 15, 1, 11, 77, 15, 77, 26, 15,
- 78, 7, 0, 7, 1, 7, 0, 2, 1, 3, 25, 79, 15, 1, 11, 79, 15, 79, 26, 15,
- 78, 7, 0, 7, 0, 7, 1, 2, 1, 3, 25, 80, 15, 1, 11, 80, 15, 80, 26, 15,
- 78, 7, 0, 7, 0, 7, 0, 2, 1, 3, 25, 81, 15, 1, 11, 81, 15, 81, 26, 15,
- 78, 7, 1, 7, 1, 7, 1, 2, 1, 3, 25, 82, 15, 1, 11, 82, 15, 82, 26, 15,
- 78, 7, 1, 7, 1, 7, 0, 2, 1, 3, 25, 83, 15, 1, 11, 83, 15, 83, 26, 11,
- 85, 25, 84, 15, 1, 11, 85, 15, 84, 26, 11, 87, 25, 86, 15, 1, 11, 87, 15, 86,
- 26, 11, 89, 25, 88, 15, 1, 11, 89, 15, 88, 26, 11, 91, 25, 90, 15, 1, 11, 91,
- 15, 90, 26, 11, 93, 25, 92, 15, 1, 11, 93, 15, 92, 26, 11, 95, 25, 94, 15, 1,
- 11, 95, 15, 94, 26, 11, 97, 25, 96, 15, 1, 11, 97, 15, 96, 26, 11, 99, 25, 98,
- 15, 1, 11, 99, 15, 98, 26, 11,101, 25,100, 15, 1, 11,101, 15,100, 26, 11,103,
- 25,102, 15, 1, 11,103, 15,102, 26, 11,105, 25,104, 15, 1, 11,105, 15,104, 26,
- 11,107, 25,106, 15, 1, 11,107, 15,106, 26, 11,109, 25,108, 15, 1, 11,109, 15,
-108, 26, 11,111, 25,110, 15, 1, 11,111, 15,110, 26, 11,113, 25,112, 15, 1, 11,
-113, 15,112, 26, 11,115, 25,114, 15, 1, 11,115, 15,114, 26, 11,117, 25,116, 15,
- 1, 11,117, 15,116, 26, 11,119, 25,118, 15, 1, 11,119, 15,118, 26, 11,121, 25,
-120, 15, 1, 11,121, 15,120, 26, 11,123, 25,122, 15, 1, 11,123, 15,122, 26, 11,
-125, 25,124, 15, 1, 11,125, 15,124, 26, 11,127, 25,126, 15, 1, 11,127, 15,126,
- 26, 11,129, 25,128, 15, 1, 11,129, 15,128, 26, 11,131, 25,130, 15, 1, 11,131,
- 15,130, 26, 11,133, 25,132, 15, 1, 11,133, 15,132, 26, 11,135, 25,134, 15, 1,
- 11,135, 15,134, 26, 11,137, 25,136, 15, 1, 11,137, 15,136, 26, 11,139, 25,138,
- 15, 1, 11,139, 15,138, 26, 11,141, 25,140, 15, 1, 11,141, 15,140, 26, 11,143,
- 25,142, 15, 1, 11,143, 15,142, 26, 11,145, 25,144, 15, 1, 11,145, 15,144, 26,
- 11,147, 25,146, 15, 1, 11,147, 15,146, 26, 11,149, 25,148, 15, 1, 11,149, 15,
-148, 26, 11,151, 25,150, 15, 1, 11,151, 15,150, 26, 11,153, 25,152, 15, 1, 11,
-153, 15,152, 26, 11,155, 25,154, 15, 1, 11,155, 15,154, 26, 11,157, 25,156, 15,
- 1, 11,157, 15,156, 26, 11,159, 25,158, 15, 1, 11,159, 15,158, 26, 11,161, 25,
-160, 15, 1, 11,161, 15,160, 26, 11,163, 25,162, 15, 1, 11,163, 15,162, 26, 11,
-165, 25,164, 15, 1, 11,165, 15,164, 26, 11,167, 25,166, 15, 1, 11,167, 15,166,
- 26, 11,169, 25,168, 15, 1, 11,169, 15,168, 26, 11,171, 25,170, 15, 1, 11,171,
- 15,170, 26, 11,173, 25,172, 15, 1, 11,173, 15,172, 26, 11,175, 25,174, 15, 1,
- 11,175, 15,174, 26, 11,177, 25,176, 15, 1, 11,177, 15,176, 26, 11,179, 25,178,
- 15, 1, 11,179, 15,178, 26, 11,181, 25,180, 15, 1, 11,181, 15,180, 26, 11,183,
- 25,182, 15, 1, 11,183, 15,182, 26, 11,185, 25,184, 15, 1, 11,185, 15,184, 26,
- 11,187, 25,186, 15, 1, 11,187, 15,186, 26, 11,189, 25,188, 15, 1, 11,189, 15,
-188, 26, 11,191, 25,190, 15, 1, 11,191, 15,190, 26, 11,193, 25,192, 15, 1, 11,
-193, 15,192, 26, 11,195, 25,194, 15, 1, 11,195, 15,194, 26, 11,197, 25,196, 15,
- 1, 11,197, 15,196, 26, 11,199, 25,198, 15, 1, 11,199, 15,198, 26, 11,201, 25,
-200, 15, 1, 11,201, 15,200, 26, 11,203, 25,202, 15, 1, 11,203, 15,202, 26, 11,
-205, 25,204, 15, 1, 11,205, 15,204, 26, 11,207, 25,206, 15, 1, 11,207, 15,206,
- 26, 11,209, 25,208, 15, 1, 11,209, 15,208, 26, 11,211, 25,210, 15, 1, 11,211,
- 15,210, 26, 11,213, 25,212, 15, 1, 11,213, 15,212, 26, 11,215, 25,214, 15, 1,
- 11,215, 15,214, 26, 11,217, 25,216, 15, 1, 11,217, 15,216, 26, 11,219, 25,218,
- 15, 1, 11,219, 15,218, 26, 11,221, 25,220, 15, 1, 11,221, 15,220, 26, 11,223,
- 25,222, 15, 1, 11,223, 15,222, 26, 11,225, 25,224, 15, 1, 11,225, 15,224, 26,
- 11,227, 25,226, 15, 1, 11,227, 15,226, 26, 11,229, 25,228, 15, 1, 11,229, 15,
-228, 26, 11,231, 25,230, 15, 1, 11,231, 15,230, 26, 11,233, 25,232, 15, 1, 11,
-233, 15,232, 26, 11,235, 25,234, 15, 1, 11,235, 15,234, 26, 11,237, 25,236, 15,
- 1, 11,237, 15,236, 26, 11,239, 25,238, 15, 1, 11,239, 15,238, 26, 11,241, 25,
-240, 15, 1, 11,241, 15,240, 26, 11,243, 25,242, 15, 1, 11,243, 15,242, 26, 15,
- 1, 11,244, 11,245, 26, 15, 1, 11,246, 11,247, 26, 15, 1, 11,248, 11,249, 26,
- 15, 1, 11,250, 11,251, 26, 15, 1, 11,252, 11,253, 26, 0, 0, 0, 0, 0, 0,
- 0, 0,254, 2, 0, 0, 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0,
- 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6, 69, 82, 82, 79, 82, 0, 2, 0,
- 0, 0, 12, 73, 85, 80, 95, 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 8,
- 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 79, 80, 69,
- 78, 69, 68, 0, 2, 0, 0, 0, 7, 79, 80, 69, 78, 69, 68, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 8, 73, 78,
- 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, 69, 78, 84, 69,
- 82, 0, 2, 0, 0, 0, 7, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 9, 73,
- 85, 80, 95, 76, 69, 70, 84, 0, 2, 0, 0, 0, 5, 76, 69, 70, 84, 0, 2, 0,
- 0, 0, 10, 73, 85, 80, 95, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 6, 82, 73,
- 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 79, 85, 83, 69, 80, 79,
- 83, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 80, 79, 83, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 67, 85,
- 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, 67, 69, 78, 84, 69,
- 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 13, 67, 69, 78, 84, 69, 82, 80,
- 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 84, 79, 80, 0, 2,
- 0, 0, 0, 4, 84, 79, 80, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 66, 79, 84,
- 84, 79, 77, 0, 2, 0, 0, 0, 7, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 8, 66, 85,
- 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79,
- 78, 50, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 50, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 8, 66, 85,
- 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79,
- 78, 52, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 52, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 8, 66, 85,
- 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 73, 71, 78, 79, 82,
- 69, 0, 2, 0, 0, 0, 7, 73, 71, 78, 79, 82, 69, 0, 2, 0, 0, 0, 12, 73,
- 85, 80, 95, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0, 8, 68, 69, 70, 65,
- 85, 76, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 76, 79, 83, 69, 0, 2,
- 0, 0, 0, 6, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 67,
- 79, 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 67, 79, 78, 84, 73, 78, 85,
- 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 85, 80, 0, 2, 0, 0, 0,
- 5, 83, 66, 85, 80, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 68, 78, 0,
- 2, 0, 0, 0, 5, 83, 66, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83,
- 66, 80, 71, 85, 80, 0, 2, 0, 0, 0, 7, 83, 66, 80, 71, 85, 80, 0, 2, 0,
- 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 7, 83,
- 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 79, 83,
- 86, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 86, 0, 2, 0, 0, 0, 12, 73,
- 85, 80, 95, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0, 8, 83, 66, 68, 82,
- 65, 71, 86, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 76, 69, 70, 84, 0,
- 2, 0, 0, 0, 7, 83, 66, 76, 69, 70, 84, 0, 2, 0, 0, 0, 12, 73, 85, 80,
- 95, 83, 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 8, 83, 66, 82, 73, 71, 72,
- 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 83, 66, 80, 71, 76, 69, 70, 84, 0,
- 2, 0, 0, 0, 9, 83, 66, 80, 71, 76, 69, 70, 84, 0, 2, 0, 0, 0, 14, 73,
- 85, 80, 95, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 10, 83, 66,
- 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80,
- 79, 83, 72, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 72, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 8, 83, 66,
- 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 72, 79, 87, 0,
- 2, 0, 0, 0, 5, 83, 72, 79, 87, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 82,
- 69, 83, 84, 79, 82, 69, 0, 2, 0, 0, 0, 8, 82, 69, 83, 84, 79, 82, 69, 0,
- 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0,
- 0, 0, 9, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80,
- 95, 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9, 77, 65, 88, 73, 77,
- 73, 90, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 73, 68, 69, 0, 2, 0,
- 0, 0, 5, 72, 73, 68, 69, 0, 2, 0, 0, 0, 4, 82, 69, 68, 0, 2, 0, 0,
- 0, 7, 73,117,112, 82, 71, 66, 0, 2, 0, 0, 0, 6, 71, 82, 69, 69, 78, 0,
- 2, 0, 0, 0, 5, 66, 76, 85, 69, 0, 2, 0, 0, 0, 6, 66, 76, 65, 67, 75,
- 0, 2, 0, 0, 0, 6, 87, 72, 73, 84, 69, 0, 2, 0, 0, 0, 7, 89, 69, 76,
- 76, 79, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 79, 78, 0, 2, 0, 0, 0,
- 3, 79, 78, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 79, 70, 70, 0, 2, 0, 0,
- 0, 4, 79, 70, 70, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2,
- 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0,
- 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 80, 80,
- 69, 78, 68, 0, 2, 0, 0, 0, 7, 65, 80, 80, 69, 78, 68, 0, 2, 0, 0, 0,
- 13, 73, 85, 80, 95, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 9, 86,
- 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 15, 73, 85, 80, 95, 72, 79, 82,
- 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78,
- 84, 65, 76, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 65, 67, 69, 78, 84, 69, 82,
- 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 10, 73,
- 85, 80, 95, 65, 76, 69, 70, 84, 0, 2, 0, 0, 0, 6, 65, 76, 69, 70, 84, 0,
- 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0,
- 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 65, 84, 79,
- 80, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 12, 73, 85, 80,
- 95, 65, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 8, 65, 66, 79, 84, 84, 79,
- 77, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 78, 79, 82, 84, 72, 0, 2, 0, 0,
- 0, 6, 78, 79, 82, 84, 72, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 83, 79, 85,
- 84, 72, 0, 2, 0, 0, 0, 6, 83, 79, 85, 84, 72, 0, 2, 0, 0, 0, 9, 73,
- 85, 80, 95, 87, 69, 83, 84, 0, 2, 0, 0, 0, 5, 87, 69, 83, 84, 0, 2, 0,
- 0, 0, 9, 73, 85, 80, 95, 69, 65, 83, 84, 0, 2, 0, 0, 0, 5, 69, 65, 83,
- 84, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 69, 0, 2, 0, 0, 0, 3, 78,
- 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 69, 0, 2, 0, 0, 0, 3, 83,
- 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 87, 0, 2, 0, 0, 0, 3, 78,
- 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 87, 0, 2, 0, 0, 0, 3, 83,
- 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 70, 85, 76, 76, 0, 2, 0, 0, 0,
- 5, 70, 85, 76, 76, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 65, 76, 70, 0,
- 2, 0, 0, 0, 5, 72, 65, 76, 70, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 84,
- 72, 73, 82, 68, 0, 2, 0, 0, 0, 6, 84, 72, 73, 82, 68, 0, 2, 0, 0, 0,
- 12, 73, 85, 80, 95, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 8, 81, 85,
- 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 69, 73, 71, 72, 84,
- 72, 0, 2, 0, 0, 0, 7, 69, 73, 71, 72, 84, 72, 0, 2, 0, 0, 0, 10, 73,
- 85, 80, 95, 65, 82, 82, 79, 87, 0, 2, 0, 0, 0, 6, 65, 82, 82, 79, 87, 0,
- 2, 0, 0, 0, 9, 73, 85, 80, 95, 66, 85, 83, 89, 0, 2, 0, 0, 0, 5, 66,
- 85, 83, 89, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95,
- 78, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 78, 0, 2, 0, 0, 0,
- 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 9, 82,
- 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83,
- 73, 90, 69, 95, 69, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 69, 0,
- 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0,
- 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, 0, 0, 14, 73, 85, 80,
- 95, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73,
- 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90,
- 69, 95, 78, 87, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 78, 87, 0,
- 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2,
- 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2, 0, 0, 0, 14, 73,
- 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 10, 82, 69,
- 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 77, 79, 86,
- 69, 0, 2, 0, 0, 0, 5, 77, 79, 86, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80,
- 95, 72, 65, 78, 68, 0, 2, 0, 0, 0, 5, 72, 65, 78, 68, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 95, 78, 79, 78, 69, 0, 2, 0, 0, 0, 5, 78, 79, 78, 69, 0,
- 2, 0, 0, 0, 8, 73, 85, 80, 95, 73, 85, 80, 0, 2, 0, 0, 0, 4, 73, 85,
- 80, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 82, 79, 83, 83, 0, 2, 0, 0,
- 0, 6, 67, 82, 79, 83, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 80, 69, 78,
- 0, 2, 0, 0, 0, 4, 80, 69, 78, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 84,
- 69, 88, 84, 0, 2, 0, 0, 0, 5, 84, 69, 88, 84, 0, 2, 0, 0, 0, 13, 73,
- 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 9, 82, 69, 83,
- 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 79, 80, 69, 78, 72,
- 65, 78, 68, 0, 2, 0, 0, 0, 9, 79, 80, 69, 78, 72, 65, 78, 68, 0, 2, 0,
- 0, 0, 23, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82,
- 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65,
- 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 23, 73, 85, 80, 95, 72,
- 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0,
- 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95,
- 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65,
- 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 17, 72, 69, 76, 86, 69, 84, 73,
- 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72,
- 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2,
- 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76,
- 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73,
- 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 20, 72, 69,
- 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0,
- 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76,
- 68, 95, 49, 48, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95,
- 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76,
- 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0,
- 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49,
- 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65,
- 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86,
- 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0,
- 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95,
- 49, 50, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79,
- 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69,
- 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 20,
- 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0,
- 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73,
- 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84,
- 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73,
- 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 49, 52,
- 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68,
- 95, 49, 52, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82,
- 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 17, 67, 79, 85, 82, 73,
- 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 21, 73, 85, 80,
- 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0,
- 0, 0, 17, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0,
- 2, 0, 0, 0, 19, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76,
- 68, 95, 56, 0, 2, 0, 0, 0, 15, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76,
- 68, 95, 56, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82,
- 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82,
- 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 22, 73,
- 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48,
- 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67,
- 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82,
- 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69,
- 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67,
- 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0,
- 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0,
- 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65,
- 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95,
- 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67,
- 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 16,
- 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0,
- 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95,
- 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77,
- 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73,
- 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, 67, 79,
- 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0,
- 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 52,
- 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49,
- 52, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82,
- 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, 83, 95, 78, 79, 82,
- 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, 83,
- 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, 83,
- 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, 84,
- 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 13, 84, 73, 77,
- 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84,
- 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 16,
- 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0,
- 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48,
- 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49,
- 48, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76,
- 68, 95, 49, 48, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68,
- 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78,
- 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95,
- 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84,
- 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 16,
- 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0,
- 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2,
- 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0,
- 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95,
- 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76,
- 95, 49, 52, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73,
- 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95,
- 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84,
- 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 14, 84, 73,
- 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 11, 77, 65, 83,
- 75, 95, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 24, 91, 43, 47, 45, 93, 63, 40,
- 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, 43, 41, 0, 2, 0, 0,
- 0, 12, 77, 65, 83, 75, 95, 85, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 18, 40,
- 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, 43, 41, 0, 2, 0, 0,
- 0, 12, 77, 65, 83, 75, 95, 69, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 40, 91,
- 43, 47, 45, 93, 63, 40, 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100,
- 43, 41, 40, 91,101, 69, 93, 91, 43, 47, 45, 93, 63, 47,100, 43, 41, 63, 0, 2,
- 0, 0, 0, 9, 77, 65, 83, 75, 95, 73, 78, 84, 0, 2, 0, 0, 0, 10, 91, 43,
- 47, 45, 93, 63, 47,100, 43, 0, 2, 0, 0, 0, 10, 77, 65, 83, 75, 95, 85, 73,
- 78, 84, 0, 2, 0, 0, 0, 4, 47,100, 43, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/constants_le64w.lo");
-}
diff --git a/iup/srclua3/loh/dial.loh b/iup/srclua3/loh/dial.loh
deleted file mode 100755
index f1811dd..0000000
--- a/iup/srclua3/loh/dial.loh
+++ /dev/null
@@ -1,31 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luadial.lo");
-*/
-/* ../obj/iupluacontrols3/luadial.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,100,105,
- 97,108, 46,108,117, 97, 0, 0, 0, 0, 40, 3, 0, 22, 1, 11, 1, 15, 2, 30,
- 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5,
- 26, 15, 9, 18, 10, 11, 8, 15, 11, 26, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2,
- 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 7,112, 97,114,
-101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0,
- 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0,
- 0, 0, 3, 0, 0, 0, 13, 64,108,117, 97,100,105, 97,108, 46,108,117, 97, 0,
- 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,
-117,112, 67,114,101, 97,116,101, 68,105, 97,108, 0, 2, 0, 0, 0, 8,105,117,
-112,100,105, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 13, 64,108,117, 97,100,
-105, 97,108, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 5,100,105, 97,108, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,
-108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,109,111,117,115,101,109,111,118,
-101, 0, 2, 0, 0, 0, 21,105,117,112, 95,118, 97,108, 95,109,111,117,115,101,
-109,111,118,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luadial.lo");
-}
diff --git a/iup/srclua3/loh/dial_be32.loh b/iup/srclua3/loh/dial_be32.loh
deleted file mode 100755
index 8a2e8ed..0000000
--- a/iup/srclua3/loh/dial_be32.loh
+++ /dev/null
@@ -1,31 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luadial_be32.lo");
-*/
-/* ../obj/iupluacontrols3/luadial_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,100,105,
- 97,108, 46,108,117, 97, 0, 0, 0, 0, 40, 3, 0, 22, 1, 11, 1, 15, 2, 30,
- 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5,
- 26, 15, 9, 18, 10, 11, 8, 15, 11, 26, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2,
- 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 7,112, 97,114,
-101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0,
- 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0,
- 0, 0, 3, 0, 0, 0, 13, 64,108,117, 97,100,105, 97,108, 46,108,117, 97, 0,
- 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,
-117,112, 67,114,101, 97,116,101, 68,105, 97,108, 0, 2, 0, 0, 0, 8,105,117,
-112,100,105, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 13, 64,108,117, 97,100,
-105, 97,108, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 5,100,105, 97,108, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,
-108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,109,111,117,115,101,109,111,118,
-101, 0, 2, 0, 0, 0, 21,105,117,112, 95,118, 97,108, 95,109,111,117,115,101,
-109,111,118,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luadial_be32.lo");
-}
diff --git a/iup/srclua3/loh/dial_be64.loh b/iup/srclua3/loh/dial_be64.loh
deleted file mode 100755
index d6a30c1..0000000
--- a/iup/srclua3/loh/dial_be64.loh
+++ /dev/null
@@ -1,30 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/dial_be64.lo");
-*/
-/* ../obj/iupluacontrols3/dial_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,100,105, 97,108, 46,
-108,117, 97, 0, 0, 0, 0, 40, 3, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9,
- 18, 10, 11, 8, 15, 11, 26, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0,
- 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116,
- 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,
-101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3,
- 0, 0, 0, 10, 64,100,105, 97,108, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2,
- 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
- 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,
-116,101, 68,105, 97,108, 0, 2, 0, 0, 0, 8,105,117,112,100,105, 97,108, 0,
- 4, 0, 0, 0, 7, 0, 0, 0, 10, 64,100,105, 97,108, 46,108,117, 97, 0, 0,
- 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 68, 73,
- 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,100,105, 97,108, 0, 2,
- 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0,
- 0, 0, 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 21,105,117,
-112, 95,118, 97,108, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/dial_be64.lo");
-}
diff --git a/iup/srclua3/loh/dial_le64.loh b/iup/srclua3/loh/dial_le64.loh
deleted file mode 100755
index e68eb83..0000000
--- a/iup/srclua3/loh/dial_le64.loh
+++ /dev/null
@@ -1,31 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luadial_le64.lo");
-*/
-/* ../obj/iupluacontrols3/luadial_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,100,105,
- 97,108, 46,108,117, 97, 0, 0, 0, 0, 40, 3, 0, 22, 1, 11, 1, 15, 2, 30,
- 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5,
- 26, 15, 9, 18, 10, 11, 8, 15, 11, 26, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2,
- 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 7,112, 97,114,
-101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0,
- 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0,
- 0, 0, 3, 0, 0, 0, 13, 64,108,117, 97,100,105, 97,108, 46,108,117, 97, 0,
- 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,
-117,112, 67,114,101, 97,116,101, 68,105, 97,108, 0, 2, 0, 0, 0, 8,105,117,
-112,100,105, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 13, 64,108,117, 97,100,
-105, 97,108, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 5,100,105, 97,108, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,
-108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,109,111,117,115,101,109,111,118,
-101, 0, 2, 0, 0, 0, 21,105,117,112, 95,118, 97,108, 95,109,111,117,115,101,
-109,111,118,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luadial_le64.lo");
-}
diff --git a/iup/srclua3/loh/dial_le64w.loh b/iup/srclua3/loh/dial_le64w.loh
deleted file mode 100755
index ace3d04..0000000
--- a/iup/srclua3/loh/dial_le64w.loh
+++ /dev/null
@@ -1,31 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luadial_le64w.lo");
-*/
-/* ../obj/iupluacontrols3/luadial_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,100,105,
- 97,108, 46,108,117, 97, 0, 0, 0, 0, 40, 3, 0, 22, 1, 11, 1, 15, 2, 30,
- 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5,
- 26, 15, 9, 18, 10, 11, 8, 15, 11, 26, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2,
- 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 7,112, 97,114,
-101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0,
- 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0,
- 0, 0, 3, 0, 0, 0, 13, 64,108,117, 97,100,105, 97,108, 46,108,117, 97, 0,
- 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,
-117,112, 67,114,101, 97,116,101, 68,105, 97,108, 0, 2, 0, 0, 0, 8,105,117,
-112,100,105, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 13, 64,108,117, 97,100,
-105, 97,108, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0,
- 0, 0, 5,100,105, 97,108, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,
-108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,109,111,117,115,101,109,111,118,
-101, 0, 2, 0, 0, 0, 21,105,117,112, 95,118, 97,108, 95,109,111,117,115,101,
-109,111,118,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luadial_le64w.lo");
-}
diff --git a/iup/srclua3/loh/gauge.loh b/iup/srclua3/loh/gauge.loh
deleted file mode 100755
index f4f22bf..0000000
--- a/iup/srclua3/loh/gauge.loh
+++ /dev/null
@@ -1,28 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luagauge.lo");
-*/
-/* ../obj/iupluacontrols3/luagauge.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97,103, 97,
-117,103,101, 46,108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2,
- 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15,
- 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 9, 73, 85, 80, 71,
- 65, 85, 71, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0,
- 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101,
- 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14,
- 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2,
- 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 71, 97,117,
-103,101, 0, 2, 0, 0, 0, 9,105,117,112,103, 97,117,103,101, 0, 4, 0, 0,
- 0, 7, 0, 0, 0, 14, 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 71,
- 65, 85, 71, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,103, 97,117,103,
-101, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luagauge.lo");
-}
diff --git a/iup/srclua3/loh/gauge_be32.loh b/iup/srclua3/loh/gauge_be32.loh
deleted file mode 100755
index c4ef637..0000000
--- a/iup/srclua3/loh/gauge_be32.loh
+++ /dev/null
@@ -1,28 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luagauge_be32.lo");
-*/
-/* ../obj/iupluacontrols3/luagauge_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97,103, 97,
-117,103,101, 46,108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2,
- 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15,
- 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 9, 73, 85, 80, 71,
- 65, 85, 71, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0,
- 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101,
- 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14,
- 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2,
- 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 71, 97,117,
-103,101, 0, 2, 0, 0, 0, 9,105,117,112,103, 97,117,103,101, 0, 4, 0, 0,
- 0, 7, 0, 0, 0, 14, 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 71,
- 65, 85, 71, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,103, 97,117,103,
-101, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luagauge_be32.lo");
-}
diff --git a/iup/srclua3/loh/gauge_be64.loh b/iup/srclua3/loh/gauge_be64.loh
deleted file mode 100755
index 99ce14d..0000000
--- a/iup/srclua3/loh/gauge_be64.loh
+++ /dev/null
@@ -1,27 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/gauge_be64.lo");
-*/
-/* ../obj/iupluacontrols3/gauge_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,103, 97,117,103,101,
- 46,108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25,
- 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 9, 73, 85, 80, 71, 65, 85, 71,
- 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87,
- 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,
-101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 11, 64,103, 97,
-117,103,101, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0,
- 0, 15,105,117,112, 67,114,101, 97,116,101, 71, 97,117,103,101, 0, 2, 0, 0,
- 0, 9,105,117,112,103, 97,117,103,101, 0, 4, 0, 0, 0, 7, 0, 0, 0, 11,
- 64,103, 97,117,103,101, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20,
- 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,
-111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 71, 65, 85, 71, 69, 0, 2, 0, 0, 0,
- 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,
-112, 0, 2, 0, 0, 0, 6,103, 97,117,103,101, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/gauge_be64.lo");
-}
diff --git a/iup/srclua3/loh/gauge_le64.loh b/iup/srclua3/loh/gauge_le64.loh
deleted file mode 100755
index 5c3803c..0000000
--- a/iup/srclua3/loh/gauge_le64.loh
+++ /dev/null
@@ -1,28 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luagauge_le64.lo");
-*/
-/* ../obj/iupluacontrols3/luagauge_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97,103, 97,
-117,103,101, 46,108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2,
- 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15,
- 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 9, 73, 85, 80, 71,
- 65, 85, 71, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0,
- 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101,
- 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14,
- 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2,
- 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 71, 97,117,
-103,101, 0, 2, 0, 0, 0, 9,105,117,112,103, 97,117,103,101, 0, 4, 0, 0,
- 0, 7, 0, 0, 0, 14, 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 71,
- 65, 85, 71, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,103, 97,117,103,
-101, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luagauge_le64.lo");
-}
diff --git a/iup/srclua3/loh/gauge_le64w.loh b/iup/srclua3/loh/gauge_le64w.loh
deleted file mode 100755
index 7aeedac..0000000
--- a/iup/srclua3/loh/gauge_le64w.loh
+++ /dev/null
@@ -1,28 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luagauge_le64w.lo");
-*/
-/* ../obj/iupluacontrols3/luagauge_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97,103, 97,
-117,103,101, 46,108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2,
- 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15,
- 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 9, 73, 85, 80, 71,
- 65, 85, 71, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0,
- 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101,
- 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14,
- 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2,
- 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 71, 97,117,
-103,101, 0, 2, 0, 0, 0, 9,105,117,112,103, 97,117,103,101, 0, 4, 0, 0,
- 0, 7, 0, 0, 0, 14, 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 71,
- 65, 85, 71, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,103, 97,117,103,
-101, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luagauge_le64w.lo");
-}
diff --git a/iup/srclua3/loh/iuplua.loh b/iup/srclua3/loh/iuplua.loh
deleted file mode 100755
index d55bd40..0000000
--- a/iup/srclua3/loh/iuplua.loh
+++ /dev/null
@@ -1,170 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/iuplua.lo");
-*/
-/* ../obj/iuplua3/iuplua.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,105,117,112,108,117,
- 97, 46,108,117, 97, 0, 0, 0, 0,122, 4, 0, 22, 0, 25, 0, 15, 1, 15, 2,
- 11, 3, 15, 4, 2, 0, 3, 15, 1, 15, 2, 11, 5, 15, 6, 2, 0, 3, 15, 1,
- 15, 7, 22, 0, 2, 1, 1, 11, 8, 15, 9, 2, 0, 3, 11, 11, 25, 10, 11, 13,
- 25, 12, 11, 15, 25, 14, 11, 17, 25, 16, 11, 19, 25, 18, 11, 21, 25, 20, 11, 23,
- 25, 22, 11, 25, 25, 24, 11, 27, 25, 26, 11, 29, 25, 28, 11, 31, 25, 30, 11, 33,
- 25, 32, 15, 34, 11, 35, 15, 32, 26, 11, 37, 25, 36, 15, 34, 11, 38, 15, 36, 26,
- 11, 40, 25, 39, 15, 34, 11, 41, 11, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 43,
- 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0,
- 0, 13,115,101,116,116, 97,103,109,101,116,104,111,100, 0, 2, 0, 0, 0, 11,
-105,117,112,108,117, 97, 95,116, 97,103, 0, 2, 0, 0, 0, 9,103,101,116,116,
- 97, 98,108,101, 0, 2, 0, 0, 0, 13,105,117,112, 95,103,101,116,116, 97, 98,
-108,101, 0, 2, 0, 0, 0, 9,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0,
- 0, 13,105,117,112, 95,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, 0, 4,
-116, 97,103, 0, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 10,
-105,117,112, 95,105,110,100,101,120, 0, 2, 0, 0, 0, 7, 95, 65, 76, 69, 82,
- 84, 0, 4, 0, 0, 0, 14, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,
-117, 97, 0, 0, 0, 0,125, 14, 1, 15, 2, 22, 3, 11, 3, 11, 4, 11, 5, 11,
- 6, 11, 7, 11, 8, 30, 2, 2, 1, 1, 15, 10, 22, 4, 11, 11, 11, 12, 11, 13,
- 11, 12, 11, 14, 13, 0, 11, 5, 11, 15, 30, 3, 2, 1, 1, 15, 17, 22, 5, 13,
- 2, 13, 1, 29, 0, 2, 11, 18, 11, 19, 11, 20, 11, 21, 11, 22, 11, 23, 30, 2,
- 2, 1, 1, 15, 25, 22, 5, 13, 3, 29, 0, 1, 11, 3, 11, 26, 11, 27, 13, 1,
- 11, 28, 13, 1, 11, 29, 13, 1, 30, 3, 2, 1, 1, 13, 4, 20, 30, 15, 31, 15,
- 31, 2, 0, 3, 13, 4, 20, 32, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 33,
- 2, 0, 0, 0, 2,115, 0, 2, 0, 0, 0, 3, 98,116, 0, 2, 0, 0, 0, 10,
-105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, 6,116,105,116,108,101,
- 0, 2, 0, 0, 0, 3, 79,107, 0, 2, 0, 0, 0, 5,115,105,122,101, 0, 2,
- 0, 0, 0, 3, 54, 48, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2,
- 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69,
- 0, 2, 0, 0, 0, 3,109,108, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108,
-116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2,
- 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 9,114,101, 97,100,111,110,108,
-121, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8, 51, 48,
- 48,120, 49, 53, 48, 0, 2, 0, 0, 0, 3,118, 98, 0, 2, 0, 0, 0, 8,105,
-117,112,118, 98,111,120, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,109,101,110,
-116, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7,
-109, 97,114,103,105,110, 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0,
- 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 3,
-100,103, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, 2, 0,
- 0, 0, 10, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, 11,100,101,
-102, 97,117,108,116,101,115, 99, 0, 2, 0, 0, 0, 13,100,101,102, 97,117,108,
-116,101,110,116,101,114, 0, 2, 0, 0, 0, 11,115,116, 97,114,116,102,111, 99,
-117,115, 0, 2, 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 95, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8,100,101,115,116,114,
-111,121, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0,
- 4, 0, 0, 0, 23, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97,
- 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,
-116,121,112,101, 0, 2, 0, 0, 0, 7,115,116,114,105,110,103, 0, 2, 0, 0,
- 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, 0, 4, 0, 0, 0, 27, 0,
- 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3,
- 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2,
- 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 9,116,121,112,101,
- 95,110,105,108, 0, 4, 0, 0, 0, 31, 0, 0, 0, 12, 64,105,117,112,108,117,
- 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11,
- 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 4,110,105,108, 0, 2,
- 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,105,111,110, 0, 4, 0,
- 0, 0, 35, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0,
- 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,
-112,101, 0, 2, 0, 0, 0, 9,102,117,110, 99,116,105,111,110, 0, 2, 0, 0,
- 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 0, 39, 0,
- 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 20, 3,
- 1, 13, 0, 52, 9, 15, 1, 13, 0, 16, 1, 1, 50, 4, 4, 0, 1, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2,119, 0, 2, 0, 0, 0, 12,105,
-117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 10,116,121,112,101,
- 95,109,101,110,117, 0, 4, 0, 0, 0, 47, 0, 0, 0, 12, 64,105,117,112,108,
-117, 97, 46,108,117, 97, 0, 0, 0, 0, 21, 3, 1, 15, 1, 13, 0, 2, 1, 1,
- 48, 7, 13, 0, 18, 2, 15, 3, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,
-103,101,116, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 8, 73, 85, 80, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,116,121,112,101, 95,105,
-116,101,109, 0, 4, 0, 0, 0, 51, 0, 0, 0, 12, 64,105,117,112,108,117, 97,
- 46,108,117, 97, 0, 0, 0, 0, 39, 3, 1, 15, 1, 13, 0, 2, 1, 1, 48, 25,
- 13, 0, 18, 2, 15, 3, 32, 46, 7, 13, 0, 18, 2, 15, 4, 32, 46, 7, 13, 0,
- 18, 2, 15, 5, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 73, 84, 69, 77, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85,
- 0, 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2,
- 0, 0, 0, 14,105,117,112, 67, 97,108,108, 77,101,116,104,111,100, 0, 4, 0,
- 0, 0, 55, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0,
- 0, 0,105, 7,129, 13, 1, 7, 1, 16, 13, 2, 13, 0, 16, 13, 3, 44, 52, 29,
- 15, 5, 15, 6, 13, 0, 16, 7, 1, 16, 2, 1, 1, 13, 2, 13, 4, 16, 23, 3,
- 13, 3, 44, 52, 2, 1, 5, 5, 1, 15, 7, 13, 3, 2, 1, 1, 52, 11, 15, 8,
- 13, 3, 13, 1, 3, 4, 2, 50, 38, 15, 9, 13, 3, 2, 1, 1, 52, 25, 15, 11,
- 13, 2, 25, 11, 15, 13, 13, 3, 2, 1, 1, 13, 4, 25, 11, 13, 5, 1, 6, 5,
- 2, 50, 4, 15, 14, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0,
- 5,110, 97,109,101, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 4, 97,114,103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0,
- 0, 10,102,117,108,108, 95,110, 97,109,101, 0, 2, 0, 0, 0, 9,115,116,114,
-108,111,119,101,114, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98,
- 97, 99,107,115, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,
-105,111,110, 0, 2, 0, 0, 0, 5, 99, 97,108,108, 0, 2, 0, 0, 0, 12,116,
-121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 5,116,101,109,112,
- 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,114,101,115,117,
-108,116, 0, 2, 0, 0, 0, 9,100,111,115,116,114,105,110,103, 0, 2, 0, 0,
- 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11,105,117,112,
- 83,101,116, 78, 97,109,101, 0, 4, 0, 0, 0, 81, 0, 0, 0, 12, 64,105,117,
-112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 51, 7, 1, 15, 1, 15, 2, 13,
- 0, 16, 18, 3, 2, 1, 1, 44, 52, 33, 15, 2, 13, 0, 16, 11, 3, 15, 4, 11,
- 5, 15, 6, 13, 0, 2, 1, 1, 2, 1, 2, 26, 15, 7, 13, 0, 18, 3, 13, 0,
- 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 7,104, 97,110,
-100,108,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103,
- 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0,
- 0, 0, 9, 73, 85, 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 7,102,111,114,
-109, 97,116, 0, 2, 0, 0, 0, 17, 95, 73, 85, 80, 76, 85, 65, 95, 78, 65, 77,
- 69, 40, 37,115, 41, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, 0,
- 2, 0, 0, 0, 13, 73,117,112, 83,101,116, 72, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110,
- 78, 97,109,101,115, 0, 4, 0, 0, 0, 88, 0, 0, 0, 12, 64,105,117,112,108,
-117, 97, 46,108,117, 97, 0, 0, 0, 0, 74, 5, 1, 13, 0, 18, 1, 18, 1, 15,
- 2, 32, 52, 32, 7, 1, 50, 17, 15, 4, 13, 0, 13, 1, 16, 2, 0, 1, 13, 1,
- 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 54, 24, 5, 1, 50, 28, 13, 0, 18, 1,
- 15, 5, 32, 52, 12, 15, 4, 13, 0, 7, 1, 16, 2, 0, 1, 50, 7, 15, 6, 13,
- 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 12, 67,
- 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 2, 0, 0, 0, 2,105, 0, 2, 0,
- 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110,
- 78, 97,109,101,115, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0,
- 2, 0, 0, 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0,
- 7, 73,117,112, 82, 71, 66, 0, 4, 0, 0, 0,108, 0, 0, 0, 12, 64,105,117,
-112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 43, 7, 3, 15, 3, 13, 0, 7,
-255, 39, 2, 1, 1, 11, 4, 42, 15, 3, 13, 1, 7,255, 39, 2, 1, 1, 42, 11,
- 4, 42, 15, 3, 13, 2, 7,255, 39, 2, 1, 1, 42, 1, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 2, 0, 0, 0, 4,114,101,100, 0, 2, 0, 0, 0, 6,103,114,
-101,101,110, 0, 2, 0, 0, 0, 5, 98,108,117,101, 0, 2, 0, 0, 0, 6,102,
-108,111,111,114, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112,
- 0, 2, 0, 0, 0, 4, 82, 71, 66, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,
-103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 4, 0, 0, 0,113, 0, 0,
- 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 58, 10, 2,
- 15, 2, 13, 0, 16, 44, 52, 43, 15, 4, 11, 5, 15, 6, 13, 1, 2, 1, 1, 42,
- 2, 1, 1, 13, 2, 44, 52, 4, 15, 7, 23, 2, 15, 2, 13, 0, 22, 2, 11, 8,
- 13, 2, 11, 0, 13, 0, 30, 1, 26, 5, 1, 13, 0, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0,
- 9,116,121,112,101,110, 97,109,101, 0, 2, 0, 0, 0, 12,105,117,112, 95,104,
- 97,110,100,108,101,115, 0, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 10,103,101,116,103,108,111, 98, 97,108, 0, 2, 0, 0, 0, 4, 73, 85, 80, 0,
- 2, 0, 0, 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 7, 87,
- 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 15, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 12, 73,117,112, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,125,
- 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 27,
- 6, 1, 15, 2, 13, 0, 7, 1, 16, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1,
- 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0,
- 13, 73,117,112, 71,101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,
-117,112, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0,
- 0, 16, 73,117,112, 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, 2, 0,
- 0, 0, 9, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,130, 0, 0, 0,
- 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 24, 6, 1, 15,
- 2, 13, 0, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, 2, 1, 1, 3, 2, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 5,110, 97,109,101, 0, 2,
- 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,
-101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,103,
-105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 16, 73,117,112,
- 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua.lo");
-}
diff --git a/iup/srclua3/loh/iuplua_be32.loh b/iup/srclua3/loh/iuplua_be32.loh
deleted file mode 100755
index 2d41b1b..0000000
--- a/iup/srclua3/loh/iuplua_be32.loh
+++ /dev/null
@@ -1,170 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/iuplua_be32.lo");
-*/
-/* ../obj/iuplua3/iuplua_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,105,117,112,108,117,
- 97, 46,108,117, 97, 0, 0, 0, 0,122, 4, 0, 22, 0, 25, 0, 15, 1, 15, 2,
- 11, 3, 15, 4, 2, 0, 3, 15, 1, 15, 2, 11, 5, 15, 6, 2, 0, 3, 15, 1,
- 15, 7, 22, 0, 2, 1, 1, 11, 8, 15, 9, 2, 0, 3, 11, 11, 25, 10, 11, 13,
- 25, 12, 11, 15, 25, 14, 11, 17, 25, 16, 11, 19, 25, 18, 11, 21, 25, 20, 11, 23,
- 25, 22, 11, 25, 25, 24, 11, 27, 25, 26, 11, 29, 25, 28, 11, 31, 25, 30, 11, 33,
- 25, 32, 15, 34, 11, 35, 15, 32, 26, 11, 37, 25, 36, 15, 34, 11, 38, 15, 36, 26,
- 11, 40, 25, 39, 15, 34, 11, 41, 11, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 43,
- 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0,
- 0, 13,115,101,116,116, 97,103,109,101,116,104,111,100, 0, 2, 0, 0, 0, 11,
-105,117,112,108,117, 97, 95,116, 97,103, 0, 2, 0, 0, 0, 9,103,101,116,116,
- 97, 98,108,101, 0, 2, 0, 0, 0, 13,105,117,112, 95,103,101,116,116, 97, 98,
-108,101, 0, 2, 0, 0, 0, 9,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0,
- 0, 13,105,117,112, 95,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, 0, 4,
-116, 97,103, 0, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 10,
-105,117,112, 95,105,110,100,101,120, 0, 2, 0, 0, 0, 7, 95, 65, 76, 69, 82,
- 84, 0, 4, 0, 0, 0, 14, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,
-117, 97, 0, 0, 0, 0,125, 14, 1, 15, 2, 22, 3, 11, 3, 11, 4, 11, 5, 11,
- 6, 11, 7, 11, 8, 30, 2, 2, 1, 1, 15, 10, 22, 4, 11, 11, 11, 12, 11, 13,
- 11, 12, 11, 14, 13, 0, 11, 5, 11, 15, 30, 3, 2, 1, 1, 15, 17, 22, 5, 13,
- 2, 13, 1, 29, 0, 2, 11, 18, 11, 19, 11, 20, 11, 21, 11, 22, 11, 23, 30, 2,
- 2, 1, 1, 15, 25, 22, 5, 13, 3, 29, 0, 1, 11, 3, 11, 26, 11, 27, 13, 1,
- 11, 28, 13, 1, 11, 29, 13, 1, 30, 3, 2, 1, 1, 13, 4, 20, 30, 15, 31, 15,
- 31, 2, 0, 3, 13, 4, 20, 32, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 33,
- 2, 0, 0, 0, 2,115, 0, 2, 0, 0, 0, 3, 98,116, 0, 2, 0, 0, 0, 10,
-105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, 6,116,105,116,108,101,
- 0, 2, 0, 0, 0, 3, 79,107, 0, 2, 0, 0, 0, 5,115,105,122,101, 0, 2,
- 0, 0, 0, 3, 54, 48, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2,
- 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69,
- 0, 2, 0, 0, 0, 3,109,108, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108,
-116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2,
- 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 9,114,101, 97,100,111,110,108,
-121, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8, 51, 48,
- 48,120, 49, 53, 48, 0, 2, 0, 0, 0, 3,118, 98, 0, 2, 0, 0, 0, 8,105,
-117,112,118, 98,111,120, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,109,101,110,
-116, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7,
-109, 97,114,103,105,110, 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0,
- 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 3,
-100,103, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, 2, 0,
- 0, 0, 10, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, 11,100,101,
-102, 97,117,108,116,101,115, 99, 0, 2, 0, 0, 0, 13,100,101,102, 97,117,108,
-116,101,110,116,101,114, 0, 2, 0, 0, 0, 11,115,116, 97,114,116,102,111, 99,
-117,115, 0, 2, 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 95, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8,100,101,115,116,114,
-111,121, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0,
- 4, 0, 0, 0, 23, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97,
- 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,
-116,121,112,101, 0, 2, 0, 0, 0, 7,115,116,114,105,110,103, 0, 2, 0, 0,
- 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, 0, 4, 0, 0, 0, 27, 0,
- 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3,
- 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2,
- 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 9,116,121,112,101,
- 95,110,105,108, 0, 4, 0, 0, 0, 31, 0, 0, 0, 12, 64,105,117,112,108,117,
- 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11,
- 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 4,110,105,108, 0, 2,
- 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,105,111,110, 0, 4, 0,
- 0, 0, 35, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0,
- 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,
-112,101, 0, 2, 0, 0, 0, 9,102,117,110, 99,116,105,111,110, 0, 2, 0, 0,
- 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 0, 39, 0,
- 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 20, 3,
- 1, 13, 0, 52, 9, 15, 1, 13, 0, 16, 1, 1, 50, 4, 4, 0, 1, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2,119, 0, 2, 0, 0, 0, 12,105,
-117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 10,116,121,112,101,
- 95,109,101,110,117, 0, 4, 0, 0, 0, 47, 0, 0, 0, 12, 64,105,117,112,108,
-117, 97, 46,108,117, 97, 0, 0, 0, 0, 21, 3, 1, 15, 1, 13, 0, 2, 1, 1,
- 48, 7, 13, 0, 18, 2, 15, 3, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,
-103,101,116, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 8, 73, 85, 80, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,116,121,112,101, 95,105,
-116,101,109, 0, 4, 0, 0, 0, 51, 0, 0, 0, 12, 64,105,117,112,108,117, 97,
- 46,108,117, 97, 0, 0, 0, 0, 39, 3, 1, 15, 1, 13, 0, 2, 1, 1, 48, 25,
- 13, 0, 18, 2, 15, 3, 32, 46, 7, 13, 0, 18, 2, 15, 4, 32, 46, 7, 13, 0,
- 18, 2, 15, 5, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 73, 84, 69, 77, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85,
- 0, 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2,
- 0, 0, 0, 14,105,117,112, 67, 97,108,108, 77,101,116,104,111,100, 0, 4, 0,
- 0, 0, 55, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0,
- 0, 0,105, 7,129, 13, 1, 7, 1, 16, 13, 2, 13, 0, 16, 13, 3, 44, 52, 29,
- 15, 5, 15, 6, 13, 0, 16, 7, 1, 16, 2, 1, 1, 13, 2, 13, 4, 16, 23, 3,
- 13, 3, 44, 52, 2, 1, 5, 5, 1, 15, 7, 13, 3, 2, 1, 1, 52, 11, 15, 8,
- 13, 3, 13, 1, 3, 4, 2, 50, 38, 15, 9, 13, 3, 2, 1, 1, 52, 25, 15, 11,
- 13, 2, 25, 11, 15, 13, 13, 3, 2, 1, 1, 13, 4, 25, 11, 13, 5, 1, 6, 5,
- 2, 50, 4, 15, 14, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0,
- 5,110, 97,109,101, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 4, 97,114,103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0,
- 0, 10,102,117,108,108, 95,110, 97,109,101, 0, 2, 0, 0, 0, 9,115,116,114,
-108,111,119,101,114, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98,
- 97, 99,107,115, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,
-105,111,110, 0, 2, 0, 0, 0, 5, 99, 97,108,108, 0, 2, 0, 0, 0, 12,116,
-121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 5,116,101,109,112,
- 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,114,101,115,117,
-108,116, 0, 2, 0, 0, 0, 9,100,111,115,116,114,105,110,103, 0, 2, 0, 0,
- 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11,105,117,112,
- 83,101,116, 78, 97,109,101, 0, 4, 0, 0, 0, 81, 0, 0, 0, 12, 64,105,117,
-112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 51, 7, 1, 15, 1, 15, 2, 13,
- 0, 16, 18, 3, 2, 1, 1, 44, 52, 33, 15, 2, 13, 0, 16, 11, 3, 15, 4, 11,
- 5, 15, 6, 13, 0, 2, 1, 1, 2, 1, 2, 26, 15, 7, 13, 0, 18, 3, 13, 0,
- 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 7,104, 97,110,
-100,108,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103,
- 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0,
- 0, 0, 9, 73, 85, 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 7,102,111,114,
-109, 97,116, 0, 2, 0, 0, 0, 17, 95, 73, 85, 80, 76, 85, 65, 95, 78, 65, 77,
- 69, 40, 37,115, 41, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, 0,
- 2, 0, 0, 0, 13, 73,117,112, 83,101,116, 72, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110,
- 78, 97,109,101,115, 0, 4, 0, 0, 0, 88, 0, 0, 0, 12, 64,105,117,112,108,
-117, 97, 46,108,117, 97, 0, 0, 0, 0, 74, 5, 1, 13, 0, 18, 1, 18, 1, 15,
- 2, 32, 52, 32, 7, 1, 50, 17, 15, 4, 13, 0, 13, 1, 16, 2, 0, 1, 13, 1,
- 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 54, 24, 5, 1, 50, 28, 13, 0, 18, 1,
- 15, 5, 32, 52, 12, 15, 4, 13, 0, 7, 1, 16, 2, 0, 1, 50, 7, 15, 6, 13,
- 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 12, 67,
- 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 2, 0, 0, 0, 2,105, 0, 2, 0,
- 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110,
- 78, 97,109,101,115, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0,
- 2, 0, 0, 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0,
- 7, 73,117,112, 82, 71, 66, 0, 4, 0, 0, 0,108, 0, 0, 0, 12, 64,105,117,
-112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 43, 7, 3, 15, 3, 13, 0, 7,
-255, 39, 2, 1, 1, 11, 4, 42, 15, 3, 13, 1, 7,255, 39, 2, 1, 1, 42, 11,
- 4, 42, 15, 3, 13, 2, 7,255, 39, 2, 1, 1, 42, 1, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 2, 0, 0, 0, 4,114,101,100, 0, 2, 0, 0, 0, 6,103,114,
-101,101,110, 0, 2, 0, 0, 0, 5, 98,108,117,101, 0, 2, 0, 0, 0, 6,102,
-108,111,111,114, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112,
- 0, 2, 0, 0, 0, 4, 82, 71, 66, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,
-103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 4, 0, 0, 0,113, 0, 0,
- 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 58, 10, 2,
- 15, 2, 13, 0, 16, 44, 52, 43, 15, 4, 11, 5, 15, 6, 13, 1, 2, 1, 1, 42,
- 2, 1, 1, 13, 2, 44, 52, 4, 15, 7, 23, 2, 15, 2, 13, 0, 22, 2, 11, 8,
- 13, 2, 11, 0, 13, 0, 30, 1, 26, 5, 1, 13, 0, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0,
- 9,116,121,112,101,110, 97,109,101, 0, 2, 0, 0, 0, 12,105,117,112, 95,104,
- 97,110,100,108,101,115, 0, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 10,103,101,116,103,108,111, 98, 97,108, 0, 2, 0, 0, 0, 4, 73, 85, 80, 0,
- 2, 0, 0, 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 7, 87,
- 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 15, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 12, 73,117,112, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,125,
- 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 27,
- 6, 1, 15, 2, 13, 0, 7, 1, 16, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1,
- 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0,
- 13, 73,117,112, 71,101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,
-117,112, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0,
- 0, 16, 73,117,112, 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, 2, 0,
- 0, 0, 9, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,130, 0, 0, 0,
- 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 24, 6, 1, 15,
- 2, 13, 0, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, 2, 1, 1, 3, 2, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 5,110, 97,109,101, 0, 2,
- 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,
-101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,103,
-105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 16, 73,117,112,
- 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_be32.lo");
-}
diff --git a/iup/srclua3/loh/iuplua_be64.loh b/iup/srclua3/loh/iuplua_be64.loh
deleted file mode 100755
index f9f7162..0000000
--- a/iup/srclua3/loh/iuplua_be64.loh
+++ /dev/null
@@ -1,170 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/iuplua_be64.lo");
-*/
-/* ../obj/iuplua3/iuplua_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,105,117,112,108,117,
- 97, 46,108,117, 97, 0, 0, 0, 0,122, 4, 0, 22, 0, 25, 0, 15, 1, 15, 2,
- 11, 3, 15, 4, 2, 0, 3, 15, 1, 15, 2, 11, 5, 15, 6, 2, 0, 3, 15, 1,
- 15, 7, 22, 0, 2, 1, 1, 11, 8, 15, 9, 2, 0, 3, 11, 11, 25, 10, 11, 13,
- 25, 12, 11, 15, 25, 14, 11, 17, 25, 16, 11, 19, 25, 18, 11, 21, 25, 20, 11, 23,
- 25, 22, 11, 25, 25, 24, 11, 27, 25, 26, 11, 29, 25, 28, 11, 31, 25, 30, 11, 33,
- 25, 32, 15, 34, 11, 35, 15, 32, 26, 11, 37, 25, 36, 15, 34, 11, 38, 15, 36, 26,
- 11, 40, 25, 39, 15, 34, 11, 41, 11, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 43,
- 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0,
- 0, 13,115,101,116,116, 97,103,109,101,116,104,111,100, 0, 2, 0, 0, 0, 11,
-105,117,112,108,117, 97, 95,116, 97,103, 0, 2, 0, 0, 0, 9,103,101,116,116,
- 97, 98,108,101, 0, 2, 0, 0, 0, 13,105,117,112, 95,103,101,116,116, 97, 98,
-108,101, 0, 2, 0, 0, 0, 9,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0,
- 0, 13,105,117,112, 95,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, 0, 4,
-116, 97,103, 0, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 10,
-105,117,112, 95,105,110,100,101,120, 0, 2, 0, 0, 0, 7, 95, 65, 76, 69, 82,
- 84, 0, 4, 0, 0, 0, 14, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,
-117, 97, 0, 0, 0, 0,125, 14, 1, 15, 2, 22, 3, 11, 3, 11, 4, 11, 5, 11,
- 6, 11, 7, 11, 8, 30, 2, 2, 1, 1, 15, 10, 22, 4, 11, 11, 11, 12, 11, 13,
- 11, 12, 11, 14, 13, 0, 11, 5, 11, 15, 30, 3, 2, 1, 1, 15, 17, 22, 5, 13,
- 2, 13, 1, 29, 0, 2, 11, 18, 11, 19, 11, 20, 11, 21, 11, 22, 11, 23, 30, 2,
- 2, 1, 1, 15, 25, 22, 5, 13, 3, 29, 0, 1, 11, 3, 11, 26, 11, 27, 13, 1,
- 11, 28, 13, 1, 11, 29, 13, 1, 30, 3, 2, 1, 1, 13, 4, 20, 30, 15, 31, 15,
- 31, 2, 0, 3, 13, 4, 20, 32, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 33,
- 2, 0, 0, 0, 2,115, 0, 2, 0, 0, 0, 3, 98,116, 0, 2, 0, 0, 0, 10,
-105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, 6,116,105,116,108,101,
- 0, 2, 0, 0, 0, 3, 79,107, 0, 2, 0, 0, 0, 5,115,105,122,101, 0, 2,
- 0, 0, 0, 3, 54, 48, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2,
- 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69,
- 0, 2, 0, 0, 0, 3,109,108, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108,
-116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2,
- 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 9,114,101, 97,100,111,110,108,
-121, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8, 51, 48,
- 48,120, 49, 53, 48, 0, 2, 0, 0, 0, 3,118, 98, 0, 2, 0, 0, 0, 8,105,
-117,112,118, 98,111,120, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,109,101,110,
-116, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7,
-109, 97,114,103,105,110, 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0,
- 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 3,
-100,103, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, 2, 0,
- 0, 0, 10, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, 11,100,101,
-102, 97,117,108,116,101,115, 99, 0, 2, 0, 0, 0, 13,100,101,102, 97,117,108,
-116,101,110,116,101,114, 0, 2, 0, 0, 0, 11,115,116, 97,114,116,102,111, 99,
-117,115, 0, 2, 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 95, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8,100,101,115,116,114,
-111,121, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0,
- 4, 0, 0, 0, 23, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97,
- 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,
-116,121,112,101, 0, 2, 0, 0, 0, 7,115,116,114,105,110,103, 0, 2, 0, 0,
- 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, 0, 4, 0, 0, 0, 27, 0,
- 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3,
- 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2,
- 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 9,116,121,112,101,
- 95,110,105,108, 0, 4, 0, 0, 0, 31, 0, 0, 0, 12, 64,105,117,112,108,117,
- 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11,
- 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 4,110,105,108, 0, 2,
- 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,105,111,110, 0, 4, 0,
- 0, 0, 35, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0,
- 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,
-112,101, 0, 2, 0, 0, 0, 9,102,117,110, 99,116,105,111,110, 0, 2, 0, 0,
- 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 0, 39, 0,
- 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 20, 3,
- 1, 13, 0, 52, 9, 15, 1, 13, 0, 16, 1, 1, 50, 4, 4, 0, 1, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2,119, 0, 2, 0, 0, 0, 12,105,
-117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 10,116,121,112,101,
- 95,109,101,110,117, 0, 4, 0, 0, 0, 47, 0, 0, 0, 12, 64,105,117,112,108,
-117, 97, 46,108,117, 97, 0, 0, 0, 0, 21, 3, 1, 15, 1, 13, 0, 2, 1, 1,
- 48, 7, 13, 0, 18, 2, 15, 3, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,
-103,101,116, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 8, 73, 85, 80, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,116,121,112,101, 95,105,
-116,101,109, 0, 4, 0, 0, 0, 51, 0, 0, 0, 12, 64,105,117,112,108,117, 97,
- 46,108,117, 97, 0, 0, 0, 0, 39, 3, 1, 15, 1, 13, 0, 2, 1, 1, 48, 25,
- 13, 0, 18, 2, 15, 3, 32, 46, 7, 13, 0, 18, 2, 15, 4, 32, 46, 7, 13, 0,
- 18, 2, 15, 5, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 73, 84, 69, 77, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85,
- 0, 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2,
- 0, 0, 0, 14,105,117,112, 67, 97,108,108, 77,101,116,104,111,100, 0, 4, 0,
- 0, 0, 55, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0,
- 0, 0,105, 7,129, 13, 1, 7, 1, 16, 13, 2, 13, 0, 16, 13, 3, 44, 52, 29,
- 15, 5, 15, 6, 13, 0, 16, 7, 1, 16, 2, 1, 1, 13, 2, 13, 4, 16, 23, 3,
- 13, 3, 44, 52, 2, 1, 5, 5, 1, 15, 7, 13, 3, 2, 1, 1, 52, 11, 15, 8,
- 13, 3, 13, 1, 3, 4, 2, 50, 38, 15, 9, 13, 3, 2, 1, 1, 52, 25, 15, 11,
- 13, 2, 25, 11, 15, 13, 13, 3, 2, 1, 1, 13, 4, 25, 11, 13, 5, 1, 6, 5,
- 2, 50, 4, 15, 14, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0,
- 5,110, 97,109,101, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 4, 97,114,103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0,
- 0, 10,102,117,108,108, 95,110, 97,109,101, 0, 2, 0, 0, 0, 9,115,116,114,
-108,111,119,101,114, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98,
- 97, 99,107,115, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,
-105,111,110, 0, 2, 0, 0, 0, 5, 99, 97,108,108, 0, 2, 0, 0, 0, 12,116,
-121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 5,116,101,109,112,
- 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,114,101,115,117,
-108,116, 0, 2, 0, 0, 0, 9,100,111,115,116,114,105,110,103, 0, 2, 0, 0,
- 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11,105,117,112,
- 83,101,116, 78, 97,109,101, 0, 4, 0, 0, 0, 81, 0, 0, 0, 12, 64,105,117,
-112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 51, 7, 1, 15, 1, 15, 2, 13,
- 0, 16, 18, 3, 2, 1, 1, 44, 52, 33, 15, 2, 13, 0, 16, 11, 3, 15, 4, 11,
- 5, 15, 6, 13, 0, 2, 1, 1, 2, 1, 2, 26, 15, 7, 13, 0, 18, 3, 13, 0,
- 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 7,104, 97,110,
-100,108,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103,
- 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0,
- 0, 0, 9, 73, 85, 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 7,102,111,114,
-109, 97,116, 0, 2, 0, 0, 0, 17, 95, 73, 85, 80, 76, 85, 65, 95, 78, 65, 77,
- 69, 40, 37,115, 41, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, 0,
- 2, 0, 0, 0, 13, 73,117,112, 83,101,116, 72, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110,
- 78, 97,109,101,115, 0, 4, 0, 0, 0, 88, 0, 0, 0, 12, 64,105,117,112,108,
-117, 97, 46,108,117, 97, 0, 0, 0, 0, 74, 5, 1, 13, 0, 18, 1, 18, 1, 15,
- 2, 32, 52, 32, 7, 1, 50, 17, 15, 4, 13, 0, 13, 1, 16, 2, 0, 1, 13, 1,
- 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 54, 24, 5, 1, 50, 28, 13, 0, 18, 1,
- 15, 5, 32, 52, 12, 15, 4, 13, 0, 7, 1, 16, 2, 0, 1, 50, 7, 15, 6, 13,
- 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 12, 67,
- 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 2, 0, 0, 0, 2,105, 0, 2, 0,
- 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110,
- 78, 97,109,101,115, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0,
- 2, 0, 0, 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0,
- 7, 73,117,112, 82, 71, 66, 0, 4, 0, 0, 0,108, 0, 0, 0, 12, 64,105,117,
-112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 43, 7, 3, 15, 3, 13, 0, 7,
-255, 39, 2, 1, 1, 11, 4, 42, 15, 3, 13, 1, 7,255, 39, 2, 1, 1, 42, 11,
- 4, 42, 15, 3, 13, 2, 7,255, 39, 2, 1, 1, 42, 1, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 2, 0, 0, 0, 4,114,101,100, 0, 2, 0, 0, 0, 6,103,114,
-101,101,110, 0, 2, 0, 0, 0, 5, 98,108,117,101, 0, 2, 0, 0, 0, 6,102,
-108,111,111,114, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112,
- 0, 2, 0, 0, 0, 4, 82, 71, 66, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,
-103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 4, 0, 0, 0,113, 0, 0,
- 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 58, 10, 2,
- 15, 2, 13, 0, 16, 44, 52, 43, 15, 4, 11, 5, 15, 6, 13, 1, 2, 1, 1, 42,
- 2, 1, 1, 13, 2, 44, 52, 4, 15, 7, 23, 2, 15, 2, 13, 0, 22, 2, 11, 8,
- 13, 2, 11, 0, 13, 0, 30, 1, 26, 5, 1, 13, 0, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0,
- 9,116,121,112,101,110, 97,109,101, 0, 2, 0, 0, 0, 12,105,117,112, 95,104,
- 97,110,100,108,101,115, 0, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 10,103,101,116,103,108,111, 98, 97,108, 0, 2, 0, 0, 0, 4, 73, 85, 80, 0,
- 2, 0, 0, 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 7, 87,
- 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 15, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 12, 73,117,112, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,125,
- 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 27,
- 6, 1, 15, 2, 13, 0, 7, 1, 16, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1,
- 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0,
- 13, 73,117,112, 71,101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,
-117,112, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0,
- 0, 16, 73,117,112, 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, 2, 0,
- 0, 0, 9, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,130, 0, 0, 0,
- 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 24, 6, 1, 15,
- 2, 13, 0, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, 2, 1, 1, 3, 2, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 5,110, 97,109,101, 0, 2,
- 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,
-101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,103,
-105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 16, 73,117,112,
- 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_be64.lo");
-}
diff --git a/iup/srclua3/loh/iuplua_le64.loh b/iup/srclua3/loh/iuplua_le64.loh
deleted file mode 100755
index 0e58b29..0000000
--- a/iup/srclua3/loh/iuplua_le64.loh
+++ /dev/null
@@ -1,170 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/iuplua_le64.lo");
-*/
-/* ../obj/iuplua3/iuplua_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,105,117,112,108,117,
- 97, 46,108,117, 97, 0, 0, 0, 0,122, 4, 0, 22, 0, 25, 0, 15, 1, 15, 2,
- 11, 3, 15, 4, 2, 0, 3, 15, 1, 15, 2, 11, 5, 15, 6, 2, 0, 3, 15, 1,
- 15, 7, 22, 0, 2, 1, 1, 11, 8, 15, 9, 2, 0, 3, 11, 11, 25, 10, 11, 13,
- 25, 12, 11, 15, 25, 14, 11, 17, 25, 16, 11, 19, 25, 18, 11, 21, 25, 20, 11, 23,
- 25, 22, 11, 25, 25, 24, 11, 27, 25, 26, 11, 29, 25, 28, 11, 31, 25, 30, 11, 33,
- 25, 32, 15, 34, 11, 35, 15, 32, 26, 11, 37, 25, 36, 15, 34, 11, 38, 15, 36, 26,
- 11, 40, 25, 39, 15, 34, 11, 41, 11, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 43,
- 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0,
- 0, 13,115,101,116,116, 97,103,109,101,116,104,111,100, 0, 2, 0, 0, 0, 11,
-105,117,112,108,117, 97, 95,116, 97,103, 0, 2, 0, 0, 0, 9,103,101,116,116,
- 97, 98,108,101, 0, 2, 0, 0, 0, 13,105,117,112, 95,103,101,116,116, 97, 98,
-108,101, 0, 2, 0, 0, 0, 9,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0,
- 0, 13,105,117,112, 95,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, 0, 4,
-116, 97,103, 0, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 10,
-105,117,112, 95,105,110,100,101,120, 0, 2, 0, 0, 0, 7, 95, 65, 76, 69, 82,
- 84, 0, 4, 0, 0, 0, 14, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,
-117, 97, 0, 0, 0, 0,125, 14, 1, 15, 2, 22, 3, 11, 3, 11, 4, 11, 5, 11,
- 6, 11, 7, 11, 8, 30, 2, 2, 1, 1, 15, 10, 22, 4, 11, 11, 11, 12, 11, 13,
- 11, 12, 11, 14, 13, 0, 11, 5, 11, 15, 30, 3, 2, 1, 1, 15, 17, 22, 5, 13,
- 2, 13, 1, 29, 0, 2, 11, 18, 11, 19, 11, 20, 11, 21, 11, 22, 11, 23, 30, 2,
- 2, 1, 1, 15, 25, 22, 5, 13, 3, 29, 0, 1, 11, 3, 11, 26, 11, 27, 13, 1,
- 11, 28, 13, 1, 11, 29, 13, 1, 30, 3, 2, 1, 1, 13, 4, 20, 30, 15, 31, 15,
- 31, 2, 0, 3, 13, 4, 20, 32, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 33,
- 2, 0, 0, 0, 2,115, 0, 2, 0, 0, 0, 3, 98,116, 0, 2, 0, 0, 0, 10,
-105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, 6,116,105,116,108,101,
- 0, 2, 0, 0, 0, 3, 79,107, 0, 2, 0, 0, 0, 5,115,105,122,101, 0, 2,
- 0, 0, 0, 3, 54, 48, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2,
- 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69,
- 0, 2, 0, 0, 0, 3,109,108, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108,
-116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2,
- 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 9,114,101, 97,100,111,110,108,
-121, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8, 51, 48,
- 48,120, 49, 53, 48, 0, 2, 0, 0, 0, 3,118, 98, 0, 2, 0, 0, 0, 8,105,
-117,112,118, 98,111,120, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,109,101,110,
-116, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7,
-109, 97,114,103,105,110, 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0,
- 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 3,
-100,103, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, 2, 0,
- 0, 0, 10, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, 11,100,101,
-102, 97,117,108,116,101,115, 99, 0, 2, 0, 0, 0, 13,100,101,102, 97,117,108,
-116,101,110,116,101,114, 0, 2, 0, 0, 0, 11,115,116, 97,114,116,102,111, 99,
-117,115, 0, 2, 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 95, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8,100,101,115,116,114,
-111,121, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0,
- 4, 0, 0, 0, 23, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97,
- 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,
-116,121,112,101, 0, 2, 0, 0, 0, 7,115,116,114,105,110,103, 0, 2, 0, 0,
- 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, 0, 4, 0, 0, 0, 27, 0,
- 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3,
- 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2,
- 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 9,116,121,112,101,
- 95,110,105,108, 0, 4, 0, 0, 0, 31, 0, 0, 0, 12, 64,105,117,112,108,117,
- 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11,
- 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 4,110,105,108, 0, 2,
- 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,105,111,110, 0, 4, 0,
- 0, 0, 35, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0,
- 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,
-112,101, 0, 2, 0, 0, 0, 9,102,117,110, 99,116,105,111,110, 0, 2, 0, 0,
- 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 0, 39, 0,
- 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 20, 3,
- 1, 13, 0, 52, 9, 15, 1, 13, 0, 16, 1, 1, 50, 4, 4, 0, 1, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2,119, 0, 2, 0, 0, 0, 12,105,
-117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 10,116,121,112,101,
- 95,109,101,110,117, 0, 4, 0, 0, 0, 47, 0, 0, 0, 12, 64,105,117,112,108,
-117, 97, 46,108,117, 97, 0, 0, 0, 0, 21, 3, 1, 15, 1, 13, 0, 2, 1, 1,
- 48, 7, 13, 0, 18, 2, 15, 3, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,
-103,101,116, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 8, 73, 85, 80, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,116,121,112,101, 95,105,
-116,101,109, 0, 4, 0, 0, 0, 51, 0, 0, 0, 12, 64,105,117,112,108,117, 97,
- 46,108,117, 97, 0, 0, 0, 0, 39, 3, 1, 15, 1, 13, 0, 2, 1, 1, 48, 25,
- 13, 0, 18, 2, 15, 3, 32, 46, 7, 13, 0, 18, 2, 15, 4, 32, 46, 7, 13, 0,
- 18, 2, 15, 5, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 73, 84, 69, 77, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85,
- 0, 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2,
- 0, 0, 0, 14,105,117,112, 67, 97,108,108, 77,101,116,104,111,100, 0, 4, 0,
- 0, 0, 55, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0,
- 0, 0,105, 7,129, 13, 1, 7, 1, 16, 13, 2, 13, 0, 16, 13, 3, 44, 52, 29,
- 15, 5, 15, 6, 13, 0, 16, 7, 1, 16, 2, 1, 1, 13, 2, 13, 4, 16, 23, 3,
- 13, 3, 44, 52, 2, 1, 5, 5, 1, 15, 7, 13, 3, 2, 1, 1, 52, 11, 15, 8,
- 13, 3, 13, 1, 3, 4, 2, 50, 38, 15, 9, 13, 3, 2, 1, 1, 52, 25, 15, 11,
- 13, 2, 25, 11, 15, 13, 13, 3, 2, 1, 1, 13, 4, 25, 11, 13, 5, 1, 6, 5,
- 2, 50, 4, 15, 14, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0,
- 5,110, 97,109,101, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 4, 97,114,103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0,
- 0, 10,102,117,108,108, 95,110, 97,109,101, 0, 2, 0, 0, 0, 9,115,116,114,
-108,111,119,101,114, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98,
- 97, 99,107,115, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,
-105,111,110, 0, 2, 0, 0, 0, 5, 99, 97,108,108, 0, 2, 0, 0, 0, 12,116,
-121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 5,116,101,109,112,
- 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,114,101,115,117,
-108,116, 0, 2, 0, 0, 0, 9,100,111,115,116,114,105,110,103, 0, 2, 0, 0,
- 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11,105,117,112,
- 83,101,116, 78, 97,109,101, 0, 4, 0, 0, 0, 81, 0, 0, 0, 12, 64,105,117,
-112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 51, 7, 1, 15, 1, 15, 2, 13,
- 0, 16, 18, 3, 2, 1, 1, 44, 52, 33, 15, 2, 13, 0, 16, 11, 3, 15, 4, 11,
- 5, 15, 6, 13, 0, 2, 1, 1, 2, 1, 2, 26, 15, 7, 13, 0, 18, 3, 13, 0,
- 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 7,104, 97,110,
-100,108,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103,
- 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0,
- 0, 0, 9, 73, 85, 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 7,102,111,114,
-109, 97,116, 0, 2, 0, 0, 0, 17, 95, 73, 85, 80, 76, 85, 65, 95, 78, 65, 77,
- 69, 40, 37,115, 41, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, 0,
- 2, 0, 0, 0, 13, 73,117,112, 83,101,116, 72, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110,
- 78, 97,109,101,115, 0, 4, 0, 0, 0, 88, 0, 0, 0, 12, 64,105,117,112,108,
-117, 97, 46,108,117, 97, 0, 0, 0, 0, 74, 5, 1, 13, 0, 18, 1, 18, 1, 15,
- 2, 32, 52, 32, 7, 1, 50, 17, 15, 4, 13, 0, 13, 1, 16, 2, 0, 1, 13, 1,
- 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 54, 24, 5, 1, 50, 28, 13, 0, 18, 1,
- 15, 5, 32, 52, 12, 15, 4, 13, 0, 7, 1, 16, 2, 0, 1, 50, 7, 15, 6, 13,
- 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 12, 67,
- 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 2, 0, 0, 0, 2,105, 0, 2, 0,
- 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110,
- 78, 97,109,101,115, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0,
- 2, 0, 0, 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0,
- 7, 73,117,112, 82, 71, 66, 0, 4, 0, 0, 0,108, 0, 0, 0, 12, 64,105,117,
-112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 43, 7, 3, 15, 3, 13, 0, 7,
-255, 39, 2, 1, 1, 11, 4, 42, 15, 3, 13, 1, 7,255, 39, 2, 1, 1, 42, 11,
- 4, 42, 15, 3, 13, 2, 7,255, 39, 2, 1, 1, 42, 1, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 2, 0, 0, 0, 4,114,101,100, 0, 2, 0, 0, 0, 6,103,114,
-101,101,110, 0, 2, 0, 0, 0, 5, 98,108,117,101, 0, 2, 0, 0, 0, 6,102,
-108,111,111,114, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112,
- 0, 2, 0, 0, 0, 4, 82, 71, 66, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,
-103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 4, 0, 0, 0,113, 0, 0,
- 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 58, 10, 2,
- 15, 2, 13, 0, 16, 44, 52, 43, 15, 4, 11, 5, 15, 6, 13, 1, 2, 1, 1, 42,
- 2, 1, 1, 13, 2, 44, 52, 4, 15, 7, 23, 2, 15, 2, 13, 0, 22, 2, 11, 8,
- 13, 2, 11, 0, 13, 0, 30, 1, 26, 5, 1, 13, 0, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0,
- 9,116,121,112,101,110, 97,109,101, 0, 2, 0, 0, 0, 12,105,117,112, 95,104,
- 97,110,100,108,101,115, 0, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 10,103,101,116,103,108,111, 98, 97,108, 0, 2, 0, 0, 0, 4, 73, 85, 80, 0,
- 2, 0, 0, 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 7, 87,
- 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 15, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 12, 73,117,112, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,125,
- 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 27,
- 6, 1, 15, 2, 13, 0, 7, 1, 16, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1,
- 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0,
- 13, 73,117,112, 71,101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,
-117,112, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0,
- 0, 16, 73,117,112, 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, 2, 0,
- 0, 0, 9, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,130, 0, 0, 0,
- 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 24, 6, 1, 15,
- 2, 13, 0, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, 2, 1, 1, 3, 2, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 5,110, 97,109,101, 0, 2,
- 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,
-101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,103,
-105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 16, 73,117,112,
- 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_le64.lo");
-}
diff --git a/iup/srclua3/loh/iuplua_le64w.loh b/iup/srclua3/loh/iuplua_le64w.loh
deleted file mode 100755
index 6755c03..0000000
--- a/iup/srclua3/loh/iuplua_le64w.loh
+++ /dev/null
@@ -1,170 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/iuplua_le64w.lo");
-*/
-/* ../obj/iuplua3/iuplua_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,105,117,112,108,117,
- 97, 46,108,117, 97, 0, 0, 0, 0,122, 4, 0, 22, 0, 25, 0, 15, 1, 15, 2,
- 11, 3, 15, 4, 2, 0, 3, 15, 1, 15, 2, 11, 5, 15, 6, 2, 0, 3, 15, 1,
- 15, 7, 22, 0, 2, 1, 1, 11, 8, 15, 9, 2, 0, 3, 11, 11, 25, 10, 11, 13,
- 25, 12, 11, 15, 25, 14, 11, 17, 25, 16, 11, 19, 25, 18, 11, 21, 25, 20, 11, 23,
- 25, 22, 11, 25, 25, 24, 11, 27, 25, 26, 11, 29, 25, 28, 11, 31, 25, 30, 11, 33,
- 25, 32, 15, 34, 11, 35, 15, 32, 26, 11, 37, 25, 36, 15, 34, 11, 38, 15, 36, 26,
- 11, 40, 25, 39, 15, 34, 11, 41, 11, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 43,
- 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0,
- 0, 13,115,101,116,116, 97,103,109,101,116,104,111,100, 0, 2, 0, 0, 0, 11,
-105,117,112,108,117, 97, 95,116, 97,103, 0, 2, 0, 0, 0, 9,103,101,116,116,
- 97, 98,108,101, 0, 2, 0, 0, 0, 13,105,117,112, 95,103,101,116,116, 97, 98,
-108,101, 0, 2, 0, 0, 0, 9,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0,
- 0, 13,105,117,112, 95,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, 0, 4,
-116, 97,103, 0, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 10,
-105,117,112, 95,105,110,100,101,120, 0, 2, 0, 0, 0, 7, 95, 65, 76, 69, 82,
- 84, 0, 4, 0, 0, 0, 14, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,
-117, 97, 0, 0, 0, 0,125, 14, 1, 15, 2, 22, 3, 11, 3, 11, 4, 11, 5, 11,
- 6, 11, 7, 11, 8, 30, 2, 2, 1, 1, 15, 10, 22, 4, 11, 11, 11, 12, 11, 13,
- 11, 12, 11, 14, 13, 0, 11, 5, 11, 15, 30, 3, 2, 1, 1, 15, 17, 22, 5, 13,
- 2, 13, 1, 29, 0, 2, 11, 18, 11, 19, 11, 20, 11, 21, 11, 22, 11, 23, 30, 2,
- 2, 1, 1, 15, 25, 22, 5, 13, 3, 29, 0, 1, 11, 3, 11, 26, 11, 27, 13, 1,
- 11, 28, 13, 1, 11, 29, 13, 1, 30, 3, 2, 1, 1, 13, 4, 20, 30, 15, 31, 15,
- 31, 2, 0, 3, 13, 4, 20, 32, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 33,
- 2, 0, 0, 0, 2,115, 0, 2, 0, 0, 0, 3, 98,116, 0, 2, 0, 0, 0, 10,
-105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, 6,116,105,116,108,101,
- 0, 2, 0, 0, 0, 3, 79,107, 0, 2, 0, 0, 0, 5,115,105,122,101, 0, 2,
- 0, 0, 0, 3, 54, 48, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2,
- 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69,
- 0, 2, 0, 0, 0, 3,109,108, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108,
-116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2,
- 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 9,114,101, 97,100,111,110,108,
-121, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8, 51, 48,
- 48,120, 49, 53, 48, 0, 2, 0, 0, 0, 3,118, 98, 0, 2, 0, 0, 0, 8,105,
-117,112,118, 98,111,120, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,109,101,110,
-116, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7,
-109, 97,114,103,105,110, 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0,
- 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 3,
-100,103, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, 2, 0,
- 0, 0, 10, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, 11,100,101,
-102, 97,117,108,116,101,115, 99, 0, 2, 0, 0, 0, 13,100,101,102, 97,117,108,
-116,101,110,116,101,114, 0, 2, 0, 0, 0, 11,115,116, 97,114,116,102,111, 99,
-117,115, 0, 2, 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 95, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8,100,101,115,116,114,
-111,121, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0,
- 4, 0, 0, 0, 23, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97,
- 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,
-116,121,112,101, 0, 2, 0, 0, 0, 7,115,116,114,105,110,103, 0, 2, 0, 0,
- 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, 0, 4, 0, 0, 0, 27, 0,
- 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3,
- 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2,
- 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 9,116,121,112,101,
- 95,110,105,108, 0, 4, 0, 0, 0, 31, 0, 0, 0, 12, 64,105,117,112,108,117,
- 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11,
- 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 4,110,105,108, 0, 2,
- 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,105,111,110, 0, 4, 0,
- 0, 0, 35, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0,
- 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,
-112,101, 0, 2, 0, 0, 0, 9,102,117,110, 99,116,105,111,110, 0, 2, 0, 0,
- 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 0, 39, 0,
- 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 20, 3,
- 1, 13, 0, 52, 9, 15, 1, 13, 0, 16, 1, 1, 50, 4, 4, 0, 1, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2,119, 0, 2, 0, 0, 0, 12,105,
-117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 10,116,121,112,101,
- 95,109,101,110,117, 0, 4, 0, 0, 0, 47, 0, 0, 0, 12, 64,105,117,112,108,
-117, 97, 46,108,117, 97, 0, 0, 0, 0, 21, 3, 1, 15, 1, 13, 0, 2, 1, 1,
- 48, 7, 13, 0, 18, 2, 15, 3, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,
-103,101,116, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 8, 73, 85, 80, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,116,121,112,101, 95,105,
-116,101,109, 0, 4, 0, 0, 0, 51, 0, 0, 0, 12, 64,105,117,112,108,117, 97,
- 46,108,117, 97, 0, 0, 0, 0, 39, 3, 1, 15, 1, 13, 0, 2, 1, 1, 48, 25,
- 13, 0, 18, 2, 15, 3, 32, 46, 7, 13, 0, 18, 2, 15, 4, 32, 46, 7, 13, 0,
- 18, 2, 15, 5, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 73, 84, 69, 77, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85,
- 0, 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2,
- 0, 0, 0, 14,105,117,112, 67, 97,108,108, 77,101,116,104,111,100, 0, 4, 0,
- 0, 0, 55, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0,
- 0, 0,105, 7,129, 13, 1, 7, 1, 16, 13, 2, 13, 0, 16, 13, 3, 44, 52, 29,
- 15, 5, 15, 6, 13, 0, 16, 7, 1, 16, 2, 1, 1, 13, 2, 13, 4, 16, 23, 3,
- 13, 3, 44, 52, 2, 1, 5, 5, 1, 15, 7, 13, 3, 2, 1, 1, 52, 11, 15, 8,
- 13, 3, 13, 1, 3, 4, 2, 50, 38, 15, 9, 13, 3, 2, 1, 1, 52, 25, 15, 11,
- 13, 2, 25, 11, 15, 13, 13, 3, 2, 1, 1, 13, 4, 25, 11, 13, 5, 1, 6, 5,
- 2, 50, 4, 15, 14, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0,
- 5,110, 97,109,101, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 4, 97,114,103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0,
- 0, 10,102,117,108,108, 95,110, 97,109,101, 0, 2, 0, 0, 0, 9,115,116,114,
-108,111,119,101,114, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98,
- 97, 99,107,115, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,
-105,111,110, 0, 2, 0, 0, 0, 5, 99, 97,108,108, 0, 2, 0, 0, 0, 12,116,
-121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 5,116,101,109,112,
- 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,114,101,115,117,
-108,116, 0, 2, 0, 0, 0, 9,100,111,115,116,114,105,110,103, 0, 2, 0, 0,
- 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11,105,117,112,
- 83,101,116, 78, 97,109,101, 0, 4, 0, 0, 0, 81, 0, 0, 0, 12, 64,105,117,
-112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 51, 7, 1, 15, 1, 15, 2, 13,
- 0, 16, 18, 3, 2, 1, 1, 44, 52, 33, 15, 2, 13, 0, 16, 11, 3, 15, 4, 11,
- 5, 15, 6, 13, 0, 2, 1, 1, 2, 1, 2, 26, 15, 7, 13, 0, 18, 3, 13, 0,
- 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 7,104, 97,110,
-100,108,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103,
- 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0,
- 0, 0, 9, 73, 85, 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 7,102,111,114,
-109, 97,116, 0, 2, 0, 0, 0, 17, 95, 73, 85, 80, 76, 85, 65, 95, 78, 65, 77,
- 69, 40, 37,115, 41, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, 0,
- 2, 0, 0, 0, 13, 73,117,112, 83,101,116, 72, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110,
- 78, 97,109,101,115, 0, 4, 0, 0, 0, 88, 0, 0, 0, 12, 64,105,117,112,108,
-117, 97, 46,108,117, 97, 0, 0, 0, 0, 74, 5, 1, 13, 0, 18, 1, 18, 1, 15,
- 2, 32, 52, 32, 7, 1, 50, 17, 15, 4, 13, 0, 13, 1, 16, 2, 0, 1, 13, 1,
- 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 54, 24, 5, 1, 50, 28, 13, 0, 18, 1,
- 15, 5, 32, 52, 12, 15, 4, 13, 0, 7, 1, 16, 2, 0, 1, 50, 7, 15, 6, 13,
- 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 12, 67,
- 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 2, 0, 0, 0, 2,105, 0, 2, 0,
- 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110,
- 78, 97,109,101,115, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0,
- 2, 0, 0, 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0,
- 7, 73,117,112, 82, 71, 66, 0, 4, 0, 0, 0,108, 0, 0, 0, 12, 64,105,117,
-112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 43, 7, 3, 15, 3, 13, 0, 7,
-255, 39, 2, 1, 1, 11, 4, 42, 15, 3, 13, 1, 7,255, 39, 2, 1, 1, 42, 11,
- 4, 42, 15, 3, 13, 2, 7,255, 39, 2, 1, 1, 42, 1, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 2, 0, 0, 0, 4,114,101,100, 0, 2, 0, 0, 0, 6,103,114,
-101,101,110, 0, 2, 0, 0, 0, 5, 98,108,117,101, 0, 2, 0, 0, 0, 6,102,
-108,111,111,114, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112,
- 0, 2, 0, 0, 0, 4, 82, 71, 66, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,
-103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 4, 0, 0, 0,113, 0, 0,
- 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 58, 10, 2,
- 15, 2, 13, 0, 16, 44, 52, 43, 15, 4, 11, 5, 15, 6, 13, 1, 2, 1, 1, 42,
- 2, 1, 1, 13, 2, 44, 52, 4, 15, 7, 23, 2, 15, 2, 13, 0, 22, 2, 11, 8,
- 13, 2, 11, 0, 13, 0, 30, 1, 26, 5, 1, 13, 0, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0,
- 9,116,121,112,101,110, 97,109,101, 0, 2, 0, 0, 0, 12,105,117,112, 95,104,
- 97,110,100,108,101,115, 0, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 10,103,101,116,103,108,111, 98, 97,108, 0, 2, 0, 0, 0, 4, 73, 85, 80, 0,
- 2, 0, 0, 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 7, 87,
- 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 15, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 12, 73,117,112, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,125,
- 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 27,
- 6, 1, 15, 2, 13, 0, 7, 1, 16, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1,
- 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0,
- 13, 73,117,112, 71,101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,
-117,112, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0,
- 0, 16, 73,117,112, 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, 2, 0,
- 0, 0, 9, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,130, 0, 0, 0,
- 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 24, 6, 1, 15,
- 2, 13, 0, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, 2, 1, 1, 3, 2, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 5,110, 97,109,101, 0, 2,
- 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,
-101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,103,
-105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 16, 73,117,112,
- 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_le64w.lo");
-}
diff --git a/iup/srclua3/loh/iuplua_widgets.loh b/iup/srclua3/loh/iuplua_widgets.loh
deleted file mode 100755
index efaed40..0000000
--- a/iup/srclua3/loh/iuplua_widgets.loh
+++ /dev/null
@@ -1,939 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/iuplua_widgets.lo");
-*/
-/* ../obj/iuplua3/iuplua_widgets.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 20, 64,105,117,112,108,117,
- 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 7,202, 67, 0,
- 22, 1, 11, 1, 22, 0, 30, 0, 25, 0, 15, 0, 11, 2, 11, 3, 26, 15, 0, 11,
- 4, 11, 5, 26, 15, 0, 11, 6, 11, 7, 26, 15, 0, 11, 8, 11, 9, 26, 15, 0,
- 11, 10, 11, 11, 26, 15, 0, 11, 12, 11, 13, 26, 15, 0, 11, 14, 11, 15, 26, 15,
- 0, 11, 16, 11, 17, 26, 15, 0, 11, 18, 11, 19, 26, 15, 0, 11, 20, 11, 21, 26,
- 15, 0, 11, 22, 11, 23, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 24, 15, 24, 11,
- 26, 11, 27, 26, 11, 29, 25, 28, 15, 30, 11, 31, 15, 28, 26, 22, 1, 11, 25, 15,
- 0, 30, 0, 25, 32, 15, 32, 11, 26, 11, 33, 26, 11, 35, 25, 34, 15, 30, 11, 36,
- 15, 34, 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1,
- 25, 37, 15, 37, 11, 26, 11, 39, 26, 15, 37, 11, 40, 11, 41, 26, 15, 37, 11, 42,
- 11, 43, 26, 15, 37, 11, 44, 11, 45, 26, 11, 47, 25, 46, 15, 30, 11, 48, 15, 46,
- 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1, 25, 49,
- 15, 49, 11, 26, 11, 50, 26, 11, 52, 25, 51, 15, 30, 11, 53, 15, 51, 26, 11, 55,
- 25, 54, 11, 57, 25, 56, 11, 59, 25, 58, 22, 1, 11, 25, 15, 0, 30, 0, 25, 60,
- 15, 60, 11, 4, 11, 61, 26, 15, 60, 11, 26, 11, 62, 26, 11, 64, 25, 63, 15, 30,
- 11, 65, 15, 63, 26, 15, 66, 11, 44, 11, 67, 26, 22, 1, 11, 25, 15, 0, 30, 0,
- 25, 68, 15, 68, 11, 4, 11, 69, 26, 15, 68, 11, 26, 11, 70, 26, 22, 1, 11, 25,
- 15, 68, 30, 0, 25, 71, 15, 71, 11, 72, 11, 73, 26, 11, 75, 25, 74, 15, 30, 11,
- 76, 15, 74, 26, 11, 78, 25, 77, 11, 80, 25, 79, 22, 1, 11, 25, 15, 68, 30, 0,
- 25, 81, 15, 81, 11, 72, 11, 82, 26, 11, 84, 25, 83, 15, 30, 11, 85, 15, 83, 26,
- 11, 87, 25, 86, 22, 1, 11, 25, 15, 68, 30, 0, 25, 88, 15, 88, 11, 72, 11, 89,
- 26, 11, 91, 25, 90, 15, 30, 11, 92, 15, 90, 26, 22, 1, 11, 25, 15, 0, 30, 0,
- 25, 93, 15, 93, 11, 26, 11, 94, 26, 11, 96, 25, 95, 15, 30, 11, 97, 15, 95, 26,
- 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 11,100, 15,101, 30, 0, 30, 1, 25, 98,
- 15, 98, 11, 26, 11,102, 26, 11,104, 25,103, 15, 30, 11,105, 15,103, 26, 22, 1,
- 11, 25, 15, 0, 30, 0, 25,106, 15,106, 11, 26, 11,107, 26, 11,109, 25,108, 15,
- 30, 11,110, 15,108, 26, 22, 1, 11, 25, 15,112, 30, 0, 25,111, 15,111, 11, 26,
- 11,113, 26, 11,115, 25,114, 15, 30, 11,116, 15,114, 26, 22, 2, 11, 25, 15, 0,
- 11, 99, 22, 1, 11,118, 15,101, 30, 0, 30, 1, 25,117, 15,117, 11, 26, 11,119,
- 26, 11,121, 25,120, 15, 30, 11,122, 15,120, 26, 22, 1, 11, 25, 15,124, 30, 0,
- 25,123, 15,123, 11, 26, 11,125, 26, 11,127, 25,126, 15, 30, 11,128, 15,126, 26,
- 22, 1, 11, 25, 15,124, 30, 0, 25,129, 15,129, 11, 26, 11,130, 26, 11,132, 25,
-131, 15, 30, 11,133, 15,131, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 2, 15,135,
- 29, 0, 1, 11,136, 15,101, 30, 0, 30, 1, 25,134, 15,134, 11, 26, 11,137, 26,
- 11,139, 25,138, 15, 30, 11,140, 15,138, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,
-141, 15,141, 11, 26, 11,142, 26, 11,144, 25,143, 15, 30, 11,145, 15,143, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,146, 15,146, 11, 44, 11,147, 26, 15,146, 11, 26,
- 11,148, 26, 11,150, 25,149, 15, 30, 11,151, 15,149, 26, 22, 1, 11, 25, 15, 0,
- 30, 0, 25,152, 15,152, 11, 44, 11,153, 26, 15,152, 11, 26, 11,154, 26, 11,156,
- 25,155, 15, 30, 11,157, 15,155, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,158, 15,
-158, 11, 44, 11,159, 26, 15,158, 11, 26, 11,160, 26, 11,162, 25,161, 15, 30, 11,
-163, 15,161, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,164, 15,164, 11, 44, 11,165,
- 26, 15,164, 11, 26, 11,166, 26, 11,168, 25,167, 15, 30, 11,169, 15,167, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,170, 15,170, 11, 26, 11,171, 26, 11,173, 25,172,
- 15, 30, 11,174, 15,172, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,175, 15,175, 11,
- 4, 11,176, 26, 15,175, 11, 26, 11,177, 26, 11,179, 25,178, 15, 30, 11,180, 15,
-178, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 15,182, 29, 0, 1, 30, 1, 25,
-181, 15,181, 11, 26, 11,183, 26, 11,185, 25,184, 15, 30, 11,186, 15,184, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,187, 15,187, 11, 26, 11,188, 26, 11,190, 25,189,
- 15, 30, 11,191, 15,189, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,192, 15,192, 11,
- 26, 11,193, 26, 15,192, 11, 8, 11,194, 26, 15,192, 11, 10, 11,195, 26, 11,197,
- 25,196, 15, 30, 11,198, 15,196, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,199, 15,
-199, 11, 4, 11,201, 26, 15,199, 11, 26, 11,202, 26, 11,204, 25,203, 15, 30, 11,
-205, 15,203, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,206, 15,206, 11, 26, 11,207,
- 26, 11,209, 25,208, 15, 30, 11,210, 15,208, 26, 22, 1, 11, 25, 15,200, 30, 0,
- 25,211, 15,211, 11, 26, 11,212, 26, 11,214, 25,213, 15, 30, 11,215, 15,213, 26,
- 22, 1, 11, 25, 15,200, 30, 0, 25,216, 15,216, 11, 26, 11,217, 26, 11,219, 25,
-218, 15, 30, 11,220, 15,218, 26, 22, 33, 11,222, 22, 2, 11,223, 4, 0, 29, 0,
- 2, 11,224, 22, 2, 11,225, 4, 0, 29, 0, 2, 11,226, 22, 2, 11,227, 15,228,
- 29, 0, 2, 11,229, 22, 2, 11,230, 15,231, 29, 0, 2, 11,232, 22, 2, 11,233,
- 15,234, 29, 0, 2, 11,235, 22, 2, 11,236, 15,237, 29, 0, 2, 11,238, 22, 2,
- 11,239, 15,240, 29, 0, 2, 11,241, 22, 2, 11,242, 15,243, 29, 0, 2, 11,244,
- 22, 2, 11,245, 15,246, 29, 0, 2, 11,247, 22, 2, 11,248, 15,249, 29, 0, 2,
- 11,250, 22, 2, 11,251, 15,252, 29, 0, 2, 11,253, 22, 2, 11,254, 15,255, 29,
- 0, 2, 10, 1, 0, 22, 2, 10, 1, 1, 14, 1, 2, 29, 0, 2, 10, 1, 3, 22,
- 2, 10, 1, 4, 14, 1, 5, 29, 0, 2, 10, 1, 6, 22, 2, 10, 1, 7, 14, 1,
- 8, 29, 0, 2, 10, 1, 9, 22, 2, 10, 1, 10, 14, 1, 11, 29, 0, 2, 10, 1,
- 12, 22, 2, 10, 1, 13, 14, 1, 14, 29, 0, 2, 10, 1, 15, 22, 2, 10, 1, 16,
- 14, 1, 17, 29, 0, 2, 10, 1, 18, 22, 2, 10, 1, 19, 14, 1, 20, 29, 0, 2,
- 10, 1, 21, 22, 2, 10, 1, 22, 14, 1, 23, 29, 0, 2, 10, 1, 24, 22, 2, 10,
- 1, 25, 14, 1, 26, 29, 0, 2, 11,105, 22, 2, 10, 1, 27, 14, 1, 28, 29, 0,
- 2, 10, 1, 29, 22, 2, 10, 1, 30, 14, 1, 31, 29, 0, 2, 10, 1, 32, 22, 2,
- 10, 1, 30, 14, 1, 33, 29, 0, 2, 10, 1, 34, 22, 2, 10, 1, 35, 14, 1, 36,
- 29, 0, 2, 10, 1, 37, 22, 2, 10, 1, 38, 14, 1, 39, 29, 0, 2, 10, 1, 40,
- 22, 2, 10, 1, 41, 14, 1, 42, 29, 0, 2, 10, 1, 43, 22, 2, 10, 1, 44, 14,
- 1, 45, 29, 0, 2, 10, 1, 46, 22, 2, 10, 1, 47, 14, 1, 48, 29, 0, 2, 10,
- 1, 49, 22, 2, 10, 1, 50, 14, 1, 51, 29, 0, 2, 10, 1, 52, 22, 2, 10, 1,
- 53, 14, 1, 54, 29, 0, 2, 10, 1, 55, 22, 2, 10, 1, 56, 14, 1, 57, 29, 0,
- 2, 30, 31, 10, 1, 58, 22, 2, 10, 1, 59, 14, 1, 60, 29, 0, 2, 30, 0, 25,
-221, 15,221, 18,222, 11,128, 14, 1, 61, 26, 15,221, 18,222, 11,116, 14, 1, 62,
- 26, 15,221, 18,222, 11,110, 14, 1, 62, 26, 15,221, 18,222, 11,105, 14, 1, 63,
- 26, 15,221, 18,222, 11,198, 14, 1, 64, 26, 15,221, 18,222, 11,133, 14, 1, 63,
- 26, 15,221, 18,222, 11,191, 14, 1, 65, 26, 15,221, 18,224, 11, 31, 14, 1, 66,
- 26, 15,221, 10, 1, 67, 15,221, 18,224, 26, 15,221, 10, 1, 68, 15,221, 18,226,
- 26, 15,221, 10, 1, 69, 15,221, 18,229, 26, 15,221, 10, 1, 70, 15,221, 18,232,
- 26, 15,221, 11,235, 15,221, 18,235, 26, 15,221, 10, 1, 71, 15,221, 18,238, 26,
- 15,221, 10, 1, 72, 15,221, 18,241, 26, 15,221, 10, 1, 73, 15,221, 18,244, 26,
- 15,221, 10, 1, 74, 15,221, 18,247, 26, 15,221, 10, 1, 75, 15,221, 18,250, 26,
- 15,221, 10, 1, 76, 15,221, 18,253, 26, 15,221, 10, 1, 77, 15,221, 17, 1, 0,
- 26, 15,221, 10, 1, 78, 15,221, 17, 1, 3, 26, 15,221, 10, 1, 79, 15,221, 17,
- 1, 6, 26, 15,221, 10, 1, 80, 15,221, 17, 1, 9, 26, 15,221, 10, 1, 81, 15,
-221, 17, 1, 12, 26, 15,221, 10, 1, 82, 15,221, 17, 1, 15, 26, 15,221, 10, 1,
- 83, 15,221, 17, 1, 18, 26, 15,221, 10, 1, 84, 15,221, 17, 1, 21, 26, 15,221,
- 10, 1, 85, 15,221, 17, 1, 24, 26, 15,221, 10, 1, 86, 15,221, 18,105, 26, 15,
-221, 10, 1, 87, 15,221, 17, 1, 29, 26, 15,221, 10, 1, 88, 15,221, 17, 1, 32,
- 26, 15,221, 10, 1, 89, 15,221, 17, 1, 34, 26, 15,221, 10, 1, 90, 15,221, 17,
- 1, 37, 26, 15,221, 10, 1, 91, 15,221, 17, 1, 40, 26, 15,221, 10, 1, 92, 15,
-221, 17, 1, 43, 26, 15,221, 10, 1, 93, 15,221, 17, 1, 46, 26, 15,221, 10, 1,
- 94, 15,221, 17, 1, 52, 26, 15,221, 10, 1, 95, 15,221, 17, 1, 49, 26, 15,221,
- 10, 1, 96, 15,221, 17, 1, 55, 26, 15,221, 10, 1, 97, 15,221, 17, 1, 58, 26,
- 15,221, 10, 1, 98, 15,221, 17, 1, 99, 26, 0, 0, 0, 0, 0, 0, 0, 1,100,
- 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 5,116,121,112,
-101, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 4,
- 0, 0, 0, 12, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 57, 7, 2, 13, 1, 11, 1, 13, 0,
- 26, 13, 0, 20, 3, 13, 1, 2, 0, 2, 13, 1, 11, 4, 13, 0, 20, 5, 13, 1,
- 2, 1, 2, 26, 13, 0, 20, 6, 13, 1, 2, 0, 2, 15, 7, 13, 1, 18, 4, 13,
- 1, 26, 13, 1, 18, 4, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, 99,104,101, 99,107, 80, 97,
-114, 97,109,115, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0,
- 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 2,
- 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117,116,101,115, 0, 2, 0,
- 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 12,
- 99,104,101, 99,107, 80, 97,114, 97,109,115, 0, 4, 0, 0, 0, 32, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 61, 8, 2, 13, 0, 18, 1, 15, 5, 13, 2, 4, 0, 2, 2, 2,
- 50, 39, 13, 4, 13, 1, 13, 3, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13,
- 3, 42, 11, 8, 42, 2, 0, 1, 15, 5, 13, 2, 13, 3, 2, 2, 2, 23, 4, 23,
- 3, 13, 3, 54, 43, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 2, 0, 0, 0, 6,112, 97,114, 97,109, 0, 2, 0, 0, 0, 5,102,
-117,110, 99, 0, 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,101,
-114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32,
- 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,
-117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,
-105,122,101,100, 0, 2, 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117,
-116,101,115, 0, 4, 0, 0, 0, 43, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 80, 9, 2, 22,
- 0, 15, 3, 13, 1, 4, 0, 2, 1, 2, 50, 18, 13, 2, 13, 3, 7, 1, 26, 15,
- 3, 13, 1, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 22, 15, 3, 13, 2, 4, 0,
- 2, 1, 2, 23, 3, 50, 25, 13, 1, 20, 4, 13, 3, 13, 1, 13, 3, 16, 2, 0,
- 3, 15, 3, 13, 2, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 29, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 5,116,
-101,109,112, 0, 2, 0, 0, 0, 2,102, 0, 2, 0, 0, 0, 5,110,101,120,116,
- 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, 0, 0, 0, 4,103,101,116, 0, 4,
- 0, 0, 0, 57, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 82, 6, 2, 15, 1, 13, 1, 2, 1,
- 1, 52, 63, 15, 2, 13, 1, 16, 52, 9, 13, 0, 13, 1, 16, 1, 2, 50, 47, 15,
- 5, 13, 1, 2, 1, 1, 15, 7, 13, 0, 18, 8, 13, 2, 2, 1, 2, 13, 3, 52,
- 23, 15, 9, 13, 3, 2, 1, 1, 13, 4, 52, 6, 13, 4, 1, 5, 50, 4, 13, 3,
- 1, 5, 5, 1, 5, 2, 13, 0, 13, 1, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 10, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 12,116,121,
-112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99,
- 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2,
- 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115,116,114,117,112,
-112,101,114, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 16,
- 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0,
- 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,101,116, 72,
- 97,110,100,108,101, 0, 2, 0, 0, 0, 4,115,101,116, 0, 4, 0, 0, 0, 77,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0,228, 11, 3, 15, 2, 13, 1, 2, 1, 1, 52,209, 15,
- 4, 13, 1, 2, 1, 1, 15, 6, 13, 1, 16, 13, 1, 11, 7, 32, 48, 12, 15, 8,
- 13, 0, 18, 10, 2, 1, 1, 11, 11, 32, 52, 4, 4, 0, 23, 4, 13, 4, 52, 55,
- 13, 4, 7, 2, 16, 13, 5, 44, 52, 14, 13, 4, 15, 8, 13, 0, 18, 10, 2, 1,
- 1, 16, 23, 5, 15, 13, 13, 0, 18, 10, 13, 4, 7, 1, 16, 13, 5, 13, 2, 2,
- 0, 4, 13, 0, 13, 1, 13, 2, 26, 1, 6, 5, 1, 50,111, 15, 2, 13, 2, 2,
- 1, 1, 46, 7, 15, 14, 13, 2, 2, 1, 1, 52, 17, 15, 15, 13, 0, 18, 10, 13,
- 3, 13, 2, 2, 0, 3, 1, 5, 50, 76, 15, 16, 13, 2, 2, 1, 1, 52, 34, 15,
- 18, 13, 0, 18, 10, 13, 3, 2, 1, 2, 13, 5, 52, 15, 15, 15, 13, 0, 18, 10,
- 13, 3, 13, 2, 2, 0, 3, 1, 6, 5, 1, 50, 33, 15, 19, 13, 2, 2, 1, 1,
- 52, 24, 15, 20, 13, 2, 2, 0, 1, 15, 15, 13, 0, 18, 10, 13, 3, 13, 2, 18,
- 21, 2, 0, 3, 1, 5, 5, 2, 13, 0, 13, 1, 13, 2, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 22, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 6,
-118, 97,108,117,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,
-110,103, 0, 2, 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115,
-116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 3, 99, 98, 0, 2, 0, 0, 0,
- 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 7,
-114,101,115,105,122,101, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 67,108,
- 97,115,115, 78, 97,109,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0,
- 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,
-103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, 0, 15,105,117,112,
- 83,101,116, 67, 97,108,108, 98, 97, 99,107, 0, 2, 0, 0, 0, 12,116,121,112,
-101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116,
- 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,116,121,112,101, 95,
-110,105,108, 0, 2, 0, 0, 0, 10,111,108,100, 95,118, 97,108,117,101, 0, 2,
- 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0,
- 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0,
- 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 9, 73, 85,
- 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,
-121, 0, 4, 0, 0, 0,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 89, 6, 1, 7, 1, 13,
- 0, 13, 1, 16, 50, 66, 15, 3, 13, 2, 2, 1, 1, 48, 4, 13, 2, 18, 4, 52,
- 37, 13, 2, 18, 4, 13, 0, 32, 52, 16, 13, 2, 11, 4, 4, 0, 26, 13, 2, 20,
- 5, 2, 0, 1, 50, 12, 15, 6, 11, 7, 2, 0, 1, 15, 8, 2, 0, 0, 13, 1,
- 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 23, 2, 13, 2, 54, 70, 15, 9, 13, 0,
- 4, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 2,105, 0, 2,
- 0, 0, 0, 5,101,108,101,109, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2,
- 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0,
- 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 10,114, 95,100,
-101,115,116,114,111,121, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0,
- 0, 0, 29, 73,110,116,101,114,110, 97,108, 32,116, 97, 98,108,101, 32,105,110,
- 99,111,110,115,105,115,116,101,110, 99,121, 0, 2, 0, 0, 0, 5,101,120,105,
-116, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2,
- 0, 0, 0, 8,100,101,115,116,114,111,121, 0, 4, 0, 0, 0,133, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 17, 3, 1, 13, 0, 20, 1, 2, 0, 1, 15, 2, 13, 0, 2, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,121, 0, 2, 0, 0, 0, 11,
- 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 7,100,101,116, 97,
- 99,104, 0, 4, 0, 0, 0,138, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 96, 8, 1, 15, 0,
- 13, 0, 2, 0, 1, 13, 0, 18, 3, 13, 1, 52, 78, 13, 0, 11, 3, 4, 0, 26,
- 7, 1, 50, 58, 13, 1, 13, 2, 16, 13, 0, 32, 52, 41, 50, 20, 13, 1, 13, 2,
- 13, 1, 13, 2, 7, 1, 37, 16, 26, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2,
- 7, 1, 37, 16, 54, 30, 13, 1, 13, 2, 4, 0, 26, 1, 3, 13, 2, 7, 1, 37,
- 23, 2, 13, 1, 13, 2, 16, 54, 65, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5,
- 2, 0, 0, 0, 10, 73,117,112, 68,101,116, 97, 99,104, 0, 2, 0, 0, 0, 5,
-115,101,108,102, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0,
- 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 2,105, 0,
- 2, 0, 0, 0, 7, 97,112,112,101,110,100, 0, 4, 0, 0, 0,158, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 75, 6, 2, 15, 1, 13, 0, 13, 1, 2, 1, 2, 52, 57, 13, 1,
- 11, 3, 13, 0, 26, 7, 1, 50, 21, 13, 0, 13, 2, 16, 13, 1, 32, 52, 4, 13,
- 2, 1, 3, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 28, 15, 5, 13,
- 0, 16, 13, 2, 13, 1, 26, 13, 2, 1, 3, 5, 1, 50, 4, 4, 0, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10,
- 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 2,105, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0,
- 2, 0, 0, 0, 4,109, 97,112, 0, 4, 0, 0, 0,175, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2,
- 2, 0, 0, 0, 7, 73,117,112, 77, 97,112, 0, 2, 0, 0, 0, 5,115,101,108,
-102, 0, 2, 0, 0, 0, 5,104,105,100,101, 0, 4, 0, 0, 0,179, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 72,105,100,101, 0, 2, 0, 0, 0,
- 5,115,101,108,102, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 17, 67,114,101,
- 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0,187, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112,
- 67,114,101, 97,116,101, 84,105,109,101,114, 0, 2, 0, 0, 0, 9,105,117,112,
-116,105,109,101,114, 0, 4, 0, 0, 0,191, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,116,105,109,101,114, 0, 2, 0, 0,
- 0, 13, 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 4, 0, 0, 0,200,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,105,117,
-112, 67,114,101, 97,116,101, 67,108,105,112, 98,111, 97,114,100, 0, 2, 0, 0,
- 0, 13,105,117,112, 99,108,105,112, 98,111, 97,114,100, 0, 4, 0, 0, 0,204,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 13,
- 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10, 99,108,105,112, 98,
-111, 97,114,100, 0, 2, 0, 0, 0, 10, 73, 85, 80, 68, 73, 65, 76, 79, 71, 0,
- 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0,
- 0,213, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2,
- 1, 1, 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104,
- 97,110,100,108,101, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101,
- 68,105, 97,108,111,103, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 4, 0, 0, 0,219, 0, 0,
- 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117,
- 97, 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 83,104,111,119, 0, 2, 0, 0,
- 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,115,104,111,119,120,121, 0, 4,
- 0, 0, 0,223, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1,
- 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120,
- 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 10, 73,117,112, 83,104,111,119,
- 88, 89, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 6,112,111,
-112,117,112, 0, 4, 0, 0, 0,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15,
- 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,
- 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,
-112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0,
- 0, 10,105,117,112,100,105, 97,108,111,103, 0, 4, 0, 0, 0,231, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80,
- 68, 73, 65, 76, 79, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,
-116,111,114, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,103, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 82, 65, 68, 73, 79, 0, 4, 0, 0, 0,240, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, 13, 1, 7, 1, 16,
- 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0,
- 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2,
- 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 82, 97,100,105,111, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9,
-105,117,112,114, 97,100,105,111, 0, 4, 0, 0, 0,246, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 26, 5, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 15, 4, 13, 1, 7, 1, 16,
- 2, 0, 1, 13, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 9,
- 73, 85, 80, 82, 65, 68, 73, 79, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,
-117, 99,116,111,114, 0, 2, 0, 0, 0, 23,105,117,112, 67,114,101, 97,116,101,
- 67,104,105,108,100,114,101,110, 78, 97,109,101,115, 0, 2, 0, 0, 0, 6,114,
- 97,100,105,111, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115,
- 0, 4, 0, 0, 0,254, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,156, 11, 1, 22, 0, 7, 1,
- 50, 61, 15, 3, 13, 0, 13, 2, 16, 2, 1, 1, 52, 29, 13, 1, 13, 2, 15, 4,
- 22, 2, 11, 5, 13, 0, 13, 2, 16, 11, 6, 13, 0, 18, 6, 30, 1, 2, 1, 1,
- 26, 50, 13, 15, 7, 11, 8, 13, 2, 42, 11, 9, 42, 2, 0, 1, 13, 2, 7, 1,
- 37, 23, 2, 13, 0, 13, 2, 16, 54, 68, 13, 0, 18, 10, 52, 51, 7, 1, 50, 7,
- 13, 3, 7, 1, 37, 23, 3, 13, 0, 13, 3, 16, 48, 10, 13, 0, 13, 3, 16, 13,
- 0, 18, 10, 31, 54, 26, 13, 0, 13, 3, 16, 52, 10, 13, 1, 11, 10, 13, 1, 13,
- 3, 16, 26, 5, 1, 50, 18, 13, 0, 18, 12, 52, 12, 13, 1, 11, 10, 13, 1, 13,
- 0, 18, 12, 16, 26, 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0,
- 0, 0, 2,104, 0, 2, 0, 0, 0, 4,116,109,112, 0, 2, 0, 0, 0, 2,105,
- 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0,
- 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,
-116,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0,
- 6,101,114,114,111,114, 0, 2, 0, 0, 0, 8,111,112,116,105,111,110, 32, 0,
- 2, 0, 0, 0, 18, 32,109,117,115,116, 32, 98,101, 32, 97, 32,115,116,114,105,
-110,103, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 2,106,
- 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 9,101,100,
-104,114, 97,100,105,111, 0, 4, 0, 0, 1, 26, 0, 0, 0, 20, 64,105,117,112,
-108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 35,
- 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, 2, 1, 1,
- 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,103,103,108,
-101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, 0, 2,
- 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, 7,101,100,
-104, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0,
- 9,101,100,118,114, 97,100,105,111, 0, 4, 0, 0, 1, 32, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 35, 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1,
- 2, 1, 1, 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,
-103,103,108,101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,
-115, 0, 2, 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0,
- 7,101,100,118, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, 85, 0, 4, 0, 0, 1, 41, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0,159, 7, 2, 7, 1, 50,145, 13, 1, 13, 2, 16, 15, 3, 13, 3,
- 2, 1, 1, 44, 52,121, 15, 4, 13, 3, 2, 1, 1, 11, 5, 31, 52, 15, 15, 6,
- 11, 7, 13, 2, 42, 11, 8, 42, 2, 0, 1, 50, 94, 13, 3, 7, 1, 16, 48, 11,
- 15, 9, 13, 3, 7, 1, 16, 2, 1, 1, 44, 52, 15, 15, 6, 11, 7, 13, 2, 42,
- 11, 10, 42, 2, 0, 1, 50, 59, 13, 3, 7, 2, 16, 48, 11, 15, 9, 13, 3, 7,
- 2, 16, 2, 1, 1, 44, 48, 11, 15, 11, 13, 3, 7, 2, 16, 2, 1, 1, 44, 48,
- 11, 15, 12, 13, 3, 7, 2, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, 2,
- 42, 11, 13, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2,
- 16, 54,152, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10,
-116,121,112,101, 95,105,116,101,109, 0, 2, 0, 0, 0, 5,116,121,112,101, 0,
- 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,
-114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, 2, 0,
- 0, 0, 32, 32,105,115, 32,110,111,116, 32, 97, 32,116, 97, 98,108,101, 32,110,
-111,114, 32, 97, 32,109,101,110,117, 32,105,116,101,109, 0, 2, 0, 0, 0, 12,
-116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 30, 32,100,111,
-101,115, 32,110,111,116, 32,104, 97,118,101, 32, 97, 32,115,116,114,105,110,103,
- 32,116,105,116,108,101, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110,
- 99,116,105,111,110, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,
-101,116, 0, 2, 0, 0, 0, 36, 32,100,111,101,115, 32,110,111,116, 32,104, 97,
-118,101, 32, 97,110, 32, 97, 99,116,105,111,110, 32,110,111,114, 32, 97, 32,109,
-101,110,117, 0, 4, 0, 0, 1, 59, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,189, 10, 2, 15,
- 2, 2, 1, 0, 7, 1, 50,166, 13, 1, 13, 3, 16, 4, 0, 15, 6, 13, 4, 2,
- 1, 1, 52, 6, 13, 4, 23, 5, 50,112, 13, 4, 7, 1, 16, 44, 52, 11, 15, 7,
- 22, 0, 2, 1, 1, 23, 5, 50, 93, 15, 6, 13, 4, 7, 2, 16, 2, 1, 1, 52,
- 38, 13, 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 7, 1, 13, 4, 7, 2, 16,
- 26, 13, 4, 7, 2, 4, 0, 26, 15, 9, 13, 4, 2, 1, 1, 23, 5, 50, 43, 13,
- 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 11, 10, 13, 4, 7, 2, 16, 26, 13,
- 4, 7, 1, 4, 0, 26, 13, 4, 7, 2, 4, 0, 26, 15, 11, 13, 4, 2, 1, 1,
- 23, 5, 15, 12, 13, 2, 13, 5, 2, 0, 2, 13, 5, 11, 13, 13, 2, 26, 13, 1,
- 13, 3, 13, 5, 26, 13, 3, 7, 1, 37, 23, 3, 5, 2, 13, 1, 13, 3, 16, 54,
-173, 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 14,
-105,117,112, 67,114,101, 97,116,101, 77,101,110,117, 0, 2, 0, 0, 0, 2,105,
- 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,101,108,101,109, 0, 2, 0,
- 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 13,
-105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 6,116,105,
-116,108,101, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0,
- 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,105,117,112,
-105,116,101,109, 0, 2, 0, 0, 0, 10, 73,117,112, 65,112,112,101,110,100, 0,
- 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 8,105,117,112,109,101,110,117, 0, 4, 0, 0, 1, 89, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78,
- 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2,
- 0, 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78,
- 85, 0, 4, 0, 0, 1, 94, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13,
- 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0,
- 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, 80,
-111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12,
- 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 4, 0, 0, 1,102, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, 2, 13, 1, 13, 2, 16, 2, 1,
- 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, 5, 42, 2, 0, 1, 13, 2, 7,
- 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, 0, 0, 0, 0, 0, 0, 0, 6,
- 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0,
- 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 6,101,114,
-114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0,
- 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,
-101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,
-122,101,100, 0, 4, 0, 0, 1,112, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,187, 11, 2, 13,
- 0, 20, 3, 2, 1, 1, 13, 1, 18, 4, 7, 1, 7, 0, 50, 14, 13, 5, 7, 1,
- 37, 23, 5, 13, 4, 7, 1, 37, 23, 4, 13, 1, 13, 4, 16, 54, 21, 7, 1, 23,
- 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, 2,
- 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, 1,
- 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 50, 79, 15, 9, 13, 2, 13, 1, 13,
- 4, 16, 2, 0, 2, 13, 1, 13, 4, 16, 11, 10, 13, 2, 26, 13, 4, 7, 1, 37,
- 23, 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0,
- 2, 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13,
- 1, 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 13, 4, 13, 5, 34, 54, 86, 13,
- 2, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,
-109,101,110,116, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0,
- 0, 2,105, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95,
- 89, 69, 83, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0,
- 0, 10, 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 11, 73, 85, 80,
- 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88,
- 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,109,101,
-110,116, 0, 4, 0, 0, 1,146, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0,
- 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112,
- 67,114,101, 97,116,101, 72, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,104,
- 98,111,120, 0, 4, 0, 0, 1,150, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15,
- 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0, 2, 0, 0,
- 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,104,
- 98,111,120, 0, 2, 0, 0, 0, 7,101,100,104, 98,111,120, 0, 4, 0, 0, 1,
-156, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3,
- 20, 4, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8,
- 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88,
- 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0,
- 0, 0, 8,101,100,102,105,101,108,100, 0, 4, 0, 0, 1,162, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0,123, 7, 1, 4, 1, 15, 3, 13, 0, 18, 4, 2, 1, 1, 46, 9, 15,
- 5, 13, 0, 18, 4, 2, 1, 1, 52, 19, 15, 6, 22, 1, 11, 7, 13, 0, 18, 4,
- 30, 0, 2, 1, 1, 23, 1, 50, 7, 15, 8, 11, 9, 2, 0, 1, 13, 0, 18, 10,
- 52, 19, 15, 11, 22, 1, 11, 10, 13, 0, 18, 10, 30, 0, 2, 1, 1, 23, 2, 50,
- 17, 15, 11, 22, 1, 11, 10, 13, 0, 18, 12, 30, 0, 2, 1, 1, 23, 2, 13, 2,
- 48, 2, 13, 1, 52, 16, 15, 13, 22, 2, 13, 1, 13, 2, 29, 0, 2, 3, 3, 1,
- 50, 4, 4, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 2,
-102, 0, 2, 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0,
- 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 7,112,114,
-111,109,112,116, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,110,117,109, 98,101,
-114, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0,
- 6,116,105,116,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0,
- 0, 0, 55,112, 97,114, 97,109,101,116,101,114, 32,112,114,111,109,112,116, 32,
-104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,
-115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,122,101,100, 0, 2, 0,
- 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8,105,117,112,116,101,120,
-116, 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 7,101,
-100,104, 98,111,120, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 4,
- 0, 0, 1,185, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,
-116,101, 86, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0,
- 4, 0, 0, 1,189, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,118, 98,111,120, 0,
- 2, 0, 0, 0, 7,101,100,118, 98,111,120, 0, 4, 0, 0, 1,195, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, 20, 4, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95,
- 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0,
- 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8, 73,
- 85, 80, 90, 66, 79, 88, 0, 4, 0, 0, 1,204, 0, 0, 0, 20, 64,105,117,112,
-108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8,
- 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0,
- 14,105,117,112, 67,114,101, 97,116,101, 90, 98,111,120, 0, 2, 0, 0, 0, 8,
-105,117,112,122, 98,111,120, 0, 4, 0, 0, 1,208, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 44, 6, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 7, 1, 50, 17, 15, 5, 13, 1,
- 13, 2, 16, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 24,
- 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 8, 73,
- 85, 80, 90, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,
-116,111,114, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11,105,117,112, 83,
-101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 5,122, 98,111,120, 0, 2, 0, 0,
- 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 4, 0, 0, 1,223, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
- 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,
-116,101, 70,105,108,108, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0,
- 4, 0, 0, 1,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,102,105,108,108, 0,
- 2, 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 5,
-116,121,112,101, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0,
- 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 4, 0, 0, 1,236, 0, 0,
- 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117,
- 97, 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52,
- 7, 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,
-116,105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0,
- 0, 1, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 66,117,116,
-116,111,110, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 4,
- 0, 0, 1,243, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 98,117,116,116,
-111,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, 1,
-252, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,
-117,112, 67,114,101, 97,116,101, 84,101,120,116, 0, 2, 0, 0, 0, 8,105,117,
-112,116,101,120,116, 0, 4, 0, 0, 2, 0, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 2,
- 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0,
- 5,116,101,120,116, 0, 2, 0, 0, 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76,
- 73, 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0,
- 2, 9, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,
-105,117,112, 67,114,101, 97,116,101, 77,117,108,116,105, 76,105,110,101, 0, 2,
- 0, 0, 0, 13,105,117,112,109,117,108,116,105,108,105,110,101, 0, 4, 0, 0,
- 2, 13, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0,
- 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, 73, 78, 69, 0, 2, 0, 0, 0, 12,
- 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,109,117,108,
-116,105,108,105,110,101, 0, 2, 0, 0, 0, 9, 73, 85, 80, 76, 65, 66, 69, 76,
- 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 2, 22, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, 7,
- 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,116,
-105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, 0,
- 1, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 76, 97, 98,101,
-108, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 4, 0, 0, 2,
- 29, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 76, 65, 66, 69, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,
-114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,108, 97, 98,101,108, 0, 2, 0,
- 0, 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 10, 73, 85,
- 80, 66, 85, 84, 84, 79, 78, 0, 4, 0, 0, 2, 38, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,
-101, 97,116,101, 84,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,116,108,
-101, 0, 2, 0, 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 4, 0, 0,
- 2, 42, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0,
- 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7,116,111,103,103,108,101,
- 0, 2, 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 4, 0, 0, 2, 51, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 14,105,117,112, 67,114,101, 97,116,101, 73,116,101,109, 0, 2, 0, 0, 0, 6,
-116,105,116,108,101, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 4,
- 0, 0, 2, 55, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,
-116,121,112,101, 95,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,101,
- 0, 4, 0, 0, 2, 64, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 31, 6, 2, 15, 2, 13, 1,
- 18, 3, 13, 1, 7, 1, 16, 2, 1, 2, 13, 1, 7, 1, 16, 11, 4, 13, 2, 26,
- 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 2,104, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101,
- 97,116,101, 83,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,
-101, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, 4, 0, 0, 2, 70, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,
-114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,117, 98,109,101,110,117, 0,
- 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 4, 0,
- 0, 2, 79, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 19,105,117,112, 67,114,101, 97,116,101, 83,101,112, 97,114, 97,116,111,114, 0,
- 2, 0, 0, 0, 13,105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 4, 0,
- 0, 2, 83, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, 0, 0, 0,
- 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,115,101,
-112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69,
- 68, 76, 71, 0, 4, 0, 0, 2, 92, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15,
- 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,
- 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,
-112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0,
- 2, 96, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101,
- 70,105,108,101, 68,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101,
-100,108,103, 0, 4, 0, 0, 2,100, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15,
- 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, 68, 76, 71, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 14, 73, 85, 80, 77, 69,
- 83, 83, 65, 71, 69, 68, 76, 71, 0, 4, 0, 0, 2,109, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0,
- 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,
-102, 0, 4, 0, 0, 2,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 20,105,117,112, 67,
-114,101, 97,116,101, 77,101,115,115, 97,103,101, 68,108,103, 0, 2, 0, 0, 0,
- 14,105,117,112,109,101,115,115, 97,103,101,100,108,103, 0, 4, 0, 0, 2,117,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 14,
- 73, 85, 80, 77, 69, 83, 83, 65, 71, 69, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,109,101,115,115,
- 97,103,101,100,108,103, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82,
- 68, 76, 71, 0, 4, 0, 0, 2,126, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15,
- 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,
- 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,
-112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0,
- 2,130, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101,
- 67,111,108,111,114, 68,108,103, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108,
-111,114,100,108,103, 0, 4, 0, 0, 2,134, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 68,
- 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 9, 99,111,108,111,114,100,108,103, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 70, 79, 78, 84, 68, 76, 71, 0, 4, 0, 0, 2,143, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2,
- 0, 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 4, 0, 0, 2,147, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0,
- 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112,
- 67,114,101, 97,116,101, 70,111,110,116, 68,108,103, 0, 2, 0, 0, 0, 11,105,
-117,112,102,111,110,116,100,108,103, 0, 4, 0, 0, 2,151, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 79,
- 78, 84, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,
-111,114, 0, 2, 0, 0, 0, 8,102,111,110,116,100,108,103, 0, 2, 0, 0, 0,
- 8, 73, 85, 80, 85, 83, 69, 82, 0, 4, 0, 0, 2,160, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0,
- 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 85,115,101,114, 0, 2, 0, 0,
- 0, 8,105,117,112,117,115,101,114, 0, 4, 0, 0, 2,164, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 10, 2, 0, 15, 0, 20, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 0, 0, 0, 8, 73, 85, 80, 85, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,117,115,101,114,
- 0, 2, 0, 0, 0, 14, 73, 85, 80, 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0,
- 4, 0, 0, 2,173, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15,
- 2, 13, 1, 13, 2, 16, 2, 1, 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11,
- 5, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0,
- 0, 2,105, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116,
- 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114,
- 97,109,101,116,101,114, 32, 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,
-111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,
-105,110,105,116,105, 97,108,105,122,101,100, 0, 4, 0, 0, 2,183, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 40, 8, 2, 15, 2, 2, 1, 0, 7, 1, 50, 17, 13, 2, 11, 4,
- 13, 1, 13, 3, 16, 26, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 3, 16, 54, 24,
- 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 20,105,
-117,112, 67,114,101, 97,116,101, 78,111,114,109, 97,108,105,122,101,114, 0, 2,
- 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11, 97,100,100, 99,111,110,116,114,111,
-108, 0, 2, 0, 0, 0, 14,105,117,112,110,111,114,109, 97,108,105,122,101,114,
- 0, 4, 0, 0, 2,193, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 10, 2, 0, 15, 0, 20, 1,
- 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 14, 73, 85, 80,
- 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,
-116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,110,111,114,109, 97,108,105,
-122,101,114, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, 2, 0,
- 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 2,202,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1,
- 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,104, 0, 2,
- 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 70,114, 97,109,101, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9,
-105,117,112,102,114, 97,109,101, 0, 4, 0, 0, 2,208, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65,
- 77, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 6,102,114, 97,109,101, 0, 2, 0, 0, 0, 10, 73, 85, 80, 67,
- 65, 78, 86, 65, 83, 0, 4, 0, 0, 2,217, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3,
- 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 67, 97,
-110,118, 97,115, 0, 2, 0, 0, 0, 10,105,117,112, 99, 97,110,118, 97,115, 0,
- 4, 0, 0, 2,221, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 10, 73, 85, 80, 67, 65, 78, 86, 65, 83, 0, 2, 0, 0, 0, 12,
- 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 99, 97,110,
-118, 97,115, 0, 2, 0, 0, 0, 8, 73, 85, 80, 76, 73, 83, 84, 0, 4, 0, 0,
- 2,230, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,
-105,117,112, 67,114,101, 97,116,101, 76,105,115,116, 0, 4, 0, 0, 2,234, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 42, 6, 2, 15, 1, 13, 1, 2, 1, 1, 11, 2, 32, 52,
- 16, 15, 3, 13, 0, 18, 5, 11, 6, 13, 1, 42, 3, 2, 2, 50, 11, 15, 7, 18,
- 8, 13, 0, 13, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0,
- 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0,
- 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,
-116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102,
- 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2,
- 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,103,101,116, 0,
- 4, 0, 0, 2,242, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 90, 8, 3, 15, 2, 13, 1, 2,
- 1, 1, 11, 3, 32, 52, 62, 15, 4, 13, 2, 2, 1, 1, 46, 7, 15, 5, 13, 2,
- 2, 1, 1, 52, 21, 15, 6, 13, 0, 18, 8, 11, 9, 13, 1, 42, 11, 9, 13, 2,
- 42, 3, 3, 3, 50, 23, 13, 2, 4, 0, 32, 52, 16, 15, 6, 13, 0, 18, 8, 11,
- 9, 13, 1, 42, 13, 2, 3, 3, 3, 15, 10, 18, 11, 13, 0, 13, 1, 13, 2, 3,
- 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 6,105,110,100,101,
-120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 5,116,121,
-112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 12,
-116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 12,116,121,112,
-101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116,
- 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, 0,
- 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,115,101,116, 0, 2,
- 0, 0, 0, 8,105,117,112,108,105,115,116, 0, 4, 0, 0, 2,253, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 76, 73, 83, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 5,108,105,115,116, 0, 2, 0, 0, 0, 9, 73, 85, 80,
- 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 4, 0,
- 0, 3, 6, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0,116, 8, 2, 7, 1, 50, 92, 7, 1, 50,
- 32, 15, 3, 13, 1, 13, 2, 16, 13, 3, 16, 2, 1, 1, 11, 4, 31, 52, 7, 15,
- 5, 11, 6, 2, 0, 1, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 2, 16, 13, 3,
- 16, 54, 42, 13, 1, 18, 7, 48, 10, 13, 3, 7, 1, 38, 13, 1, 18, 7, 31, 52,
- 9, 15, 5, 11, 8, 2, 0, 1, 50, 10, 13, 1, 11, 7, 13, 3, 7, 1, 38, 26,
- 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, 16, 54, 99, 13, 1, 11, 9,
- 13, 2, 7, 1, 38, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,106, 0, 2, 0,
- 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0,
- 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 38,110,111,110, 45,
-110,117,109,101,114,105, 99, 32,118, 97,108,117,101, 32,105,110, 32,105,109, 97,
-103,101, 32,100,101,102,105,110,105,116,105,111,110, 0, 2, 0, 0, 0, 6,119,
-105,100,116,104, 0, 2, 0, 0, 0, 26,105,110, 99,111,110,115,105,115,116,101,
-110,116, 32,105,109, 97,103,101, 32,108,101,110,103,104,116, 0, 2, 0, 0, 0,
- 7,104,101,105,103,104,116, 0, 4, 0, 0, 3, 29, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 74, 9, 2, 15, 2, 13, 1, 18, 3, 13, 1, 18, 4, 13, 1, 2, 1, 3, 15, 5,
- 13, 1, 18, 6, 2, 1, 1, 11, 7, 32, 52, 38, 7, 1, 50, 23, 15, 9, 13, 2,
- 13, 3, 13, 1, 18, 6, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 37, 23, 3, 13,
- 1, 18, 6, 13, 3, 16, 54, 32, 5, 1, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 10, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,
-100,108,101, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 73,109,
- 97,103,101, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 7,
-104,101,105,103,104,116, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0,
- 0, 7, 99,111,108,111,114,115, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0,
- 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,
-116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,105,117,112,105,109, 97,103,
-101, 0, 4, 0, 0, 3, 41, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20,
- 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,
-111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 73, 77, 65, 71, 69, 0, 2, 0, 0, 0,
- 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,105,109,
- 97,103,101, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66,
- 0, 4, 0, 0, 3, 49, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1,
- 18, 2, 13, 1, 18, 3, 13, 1, 18, 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,
-114,101, 97,116,101, 73,109, 97,103,101, 82, 71, 66, 0, 2, 0, 0, 0, 6,119,
-105,100,116,104, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, 0, 2, 0, 0,
- 0, 7,112,105,120,101,108,115, 0, 2, 0, 0, 0, 12,105,117,112,105,109, 97,
-103,101,114,103, 98, 0, 4, 0, 0, 3, 53, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82,
- 71, 66, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 9,105,109, 97,103,101,114,103, 98, 0, 2, 0, 0, 0, 13, 73,
- 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 4, 0, 0, 3, 61, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, 18, 2, 13, 1, 18, 3, 13, 1, 18,
- 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 19,105,117,112, 67,114,101, 97,116,101, 73,109, 97,103,
-101, 82, 71, 66, 65, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0,
- 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, 7,112,105,120,101,108,115,
- 0, 2, 0, 0, 0, 13,105,117,112,105,109, 97,103,101,114,103, 98, 97, 0, 4,
- 0, 0, 3, 65, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 13, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 2, 0, 0,
- 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,105,
-109, 97,103,101,114,103, 98, 97, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79,
- 71, 82, 69, 83, 83, 66, 65, 82, 0, 4, 0, 0, 3, 74, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0,
- 0, 0, 21,105,117,112, 67,114,101, 97,116,101, 80,114,111,103,114,101,115,115,
- 66, 97,114, 0, 2, 0, 0, 0, 15,105,117,112,112,114,111,103,114,101,115,115,
- 98, 97,114, 0, 4, 0, 0, 3, 78, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15,
- 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 2,111, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, 71, 82, 69, 83, 83,
- 66, 65, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114,
- 0, 2, 0, 0, 0, 12,112,114,111,103,114,101,115,115, 98, 97,114, 0, 2, 0,
- 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0,
- 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 7, 65, 67, 84, 73, 79, 78,
- 0, 2, 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 10,
- 65, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 9,103,101,116,102,111,
- 99,117,115, 0, 2, 0, 0, 0, 12, 71, 69, 84, 70, 79, 67, 85, 83, 95, 67, 66,
- 0, 2, 0, 0, 0, 16,105,117,112, 95,103,101,116,102,111, 99,117,115, 95, 99,
- 98, 0, 2, 0, 0, 0, 10,107,105,108,108,102,111, 99,117,115, 0, 2, 0, 0,
- 0, 13, 75, 73, 76, 76, 70, 79, 67, 85, 83, 95, 67, 66, 0, 2, 0, 0, 0, 17,
-105,117,112, 95,107,105,108,108,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0,
- 0, 6,102,111, 99,117,115, 0, 2, 0, 0, 0, 9, 70, 79, 67, 85, 83, 95, 67,
- 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,102,111, 99,117,115, 95, 99, 98, 0,
- 2, 0, 0, 0, 6,107, 95, 97,110,121, 0, 2, 0, 0, 0, 6, 75, 95, 65, 78,
- 89, 0, 2, 0, 0, 0, 10,105,117,112, 95,107, 95, 97,110,121, 0, 2, 0, 0,
- 0, 5,104,101,108,112, 0, 2, 0, 0, 0, 8, 72, 69, 76, 80, 95, 67, 66, 0,
- 2, 0, 0, 0, 12,105,117,112, 95,104,101,108,112, 95, 99, 98, 0, 2, 0, 0,
- 0, 8, 99, 97,114,101,116, 99, 98, 0, 2, 0, 0, 0, 9, 67, 65, 82, 69, 84,
- 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, 99, 97,114,101,116, 95, 99,
- 98, 0, 2, 0, 0, 0, 9,107,101,121,112,114,101,115,115, 0, 2, 0, 0, 0,
- 12, 75, 69, 89, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,
-112, 95,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 7,115,
- 99,114,111,108,108, 0, 2, 0, 0, 0, 10, 83, 67, 82, 79, 76, 76, 95, 67, 66,
- 0, 2, 0, 0, 0, 14,105,117,112, 95,115, 99,114,111,108,108, 95, 99, 98, 0,
- 2, 0, 0, 0, 10,116,114, 97,121, 99,108,105, 99,107, 0, 2, 0, 0, 0, 13,
- 84, 82, 65, 89, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,
-112, 95,116,114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 6,
- 99,108,111,115,101, 0, 2, 0, 0, 0, 9, 67, 76, 79, 83, 69, 95, 67, 66, 0,
- 2, 0, 0, 0, 13,105,117,112, 95, 99,108,111,115,101, 95, 99, 98, 0, 2, 0,
- 0, 0, 5,111,112,101,110, 0, 2, 0, 0, 0, 8, 79, 80, 69, 78, 95, 67, 66,
- 0, 2, 0, 0, 0, 12,105,117,112, 95,111,112,101,110, 95, 99, 98, 0, 2, 0,
- 0, 0, 7,115,104,111,119, 99, 98, 0, 2, 0, 0, 0, 8, 83, 72, 79, 87, 95,
- 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,104,111,119, 95, 99, 98, 0,
- 2, 0, 0, 0, 6,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 7, 77, 65, 80, 95,
- 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,109, 97,112, 95, 99, 98, 0, 2,
- 0, 0, 0, 8,117,110,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 9, 85, 78, 77,
- 65, 80, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,117,110,109, 97,112,
- 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114,111,112,102,105,108,101,115, 0, 2,
- 0, 0, 0, 13, 68, 82, 79, 80, 70, 73, 76, 69, 83, 95, 67, 66, 0, 2, 0, 0,
- 0, 17,105,117,112, 95,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,109,101,110,117, 99,108,111,115,101, 0, 2, 0, 0, 0, 13, 77,
- 69, 78, 85, 67, 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112,
- 95,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,
-105,103,104,108,105,103,104,116, 0, 2, 0, 0, 0, 13, 72, 73, 71, 72, 76, 73,
- 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,104,105,103,104,
-108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 4,119,111,109, 0, 2, 0,
- 0, 0, 7, 87, 79, 77, 95, 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,119,
-111,109, 95, 99, 98, 0, 2, 0, 0, 0, 6,119,104,101,101,108, 0, 2, 0, 0,
- 0, 9, 87, 72, 69, 69, 76, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,
-119,104,101,101,108, 95, 99, 98, 0, 2, 0, 0, 0, 10, 66, 85, 84, 84, 79, 78,
- 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95, 98,117,116,116,111,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 10,
- 82, 69, 83, 73, 90, 69, 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,114,
-101,115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,109,111,118,101, 0, 2,
- 0, 0, 0, 12,105,117,112, 95,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 7,109,111,116,105,111,110, 0, 2, 0, 0, 0, 10, 77, 79, 84, 73, 79, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,109,111,116,105,111,110, 95, 99,
- 98, 0, 2, 0, 0, 0, 12,101,110,116,101,114,119,105,110,100,111,119, 0, 2,
- 0, 0, 0, 15, 69, 78, 84, 69, 82, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, 2,
- 0, 0, 0, 19,105,117,112, 95,101,110,116,101,114,119,105,110,100,111,119, 95,
- 99, 98, 0, 2, 0, 0, 0, 12,108,101, 97,118,101,119,105,110,100,111,119, 0,
- 2, 0, 0, 0, 15, 76, 69, 65, 86, 69, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0,
- 2, 0, 0, 0, 19,105,117,112, 95,108,101, 97,118,101,119,105,110,100,111,119,
- 95, 99, 98, 0, 2, 0, 0, 0, 5,101,100,105,116, 0, 2, 0, 0, 0, 8, 69,
- 68, 73, 84, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,101,100,105,116,
- 95, 99, 98, 0, 2, 0, 0, 0, 12,109,117,108,116,105,115,101,108,101, 99,116,
- 0, 2, 0, 0, 0, 15, 77, 85, 76, 84, 73, 83, 69, 76, 69, 67, 84, 95, 67, 66,
- 0, 2, 0, 0, 0, 19,105,117,112, 95,109,117,108,116,105,115,101,108,101, 99,
-116, 95, 99, 98, 0, 2, 0, 0, 0, 7,102,105,108,101, 99, 98, 0, 2, 0, 0,
- 0, 8, 70, 73, 76, 69, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,102,
-105,108,101, 95, 99, 98, 0, 2, 0, 0, 0, 14,109,100,105, 97, 99,116,105,118,
- 97,116,101, 99, 98, 0, 2, 0, 0, 0, 15, 77, 68, 73, 65, 67, 84, 73, 86, 65,
- 84, 69, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109,100,105, 97, 99,
-116,105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 11,100,114,111,112,100,
-111,119,110, 99, 98, 0, 2, 0, 0, 0, 12, 68, 82, 79, 80, 68, 79, 87, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,100,114,111,112,100,111,119,110,
- 95, 99, 98, 0, 2, 0, 0, 0, 11,100, 98,108, 99,108,105, 99,107, 99, 98, 0,
- 2, 0, 0, 0, 12, 68, 66, 76, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0,
- 0, 16,105,117,112, 95,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0,
- 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95,116,111,103,103,108,101,
- 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110, 95,116,101,120,
-116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95, 98,117,
-116,116,111,110, 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110,
- 95,108,105,115,116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,
-110, 95, 99, 97,110,118, 97,115, 0, 2, 0, 0, 0, 17,105,117,112, 95, 97, 99,
-116,105,111,110, 95,116,105,109,101,114, 0, 2, 0, 0, 0, 10, 97, 99,116,105,
-111,110, 95, 99, 98, 0, 2, 0, 0, 0, 12,103,101,116,102,111, 99,117,115, 95,
- 99, 98, 0, 2, 0, 0, 0, 13,107,105,108,108,102,111, 99,117,115, 95, 99, 98,
- 0, 2, 0, 0, 0, 9,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 8,
-104,101,108,112, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99, 97,114,101,116, 95, 99,
- 98, 0, 2, 0, 0, 0, 12,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,115, 99,114,111,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 13,116,
-114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,111,
-115,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,111,112,101,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 8,115,104,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 7,109, 97,112,
- 95, 99, 98, 0, 2, 0, 0, 0, 9,117,110,109, 97,112, 95, 99, 98, 0, 2, 0,
- 0, 0, 13,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, 0, 0, 0,
- 13,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 13,104,
-105,103,104,108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 7,119,111,109,
- 95, 99, 98, 0, 2, 0, 0, 0, 9,119,104,101,101,108, 95, 99, 98, 0, 2, 0,
- 0, 0, 10, 98,117,116,116,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,
-115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,109,111,118,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 10,109,111,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0,
- 15,101,110,116,101,114,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0,
- 15,108,101, 97,118,101,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0,
- 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,108,116,105,115,
-101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,100,105, 97, 99,116,
-105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,102,105,108,101, 95, 99,
- 98, 0, 2, 0, 0, 0, 12,100,114,111,112,100,111,119,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 12,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0,
- 16,118, 97,108,117,101, 99,104, 97,110,103,101,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 15,118, 97,108,117,101, 99,104, 97,110,103,101,100, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_widgets.lo");
-}
diff --git a/iup/srclua3/loh/iuplua_widgets_be32.loh b/iup/srclua3/loh/iuplua_widgets_be32.loh
deleted file mode 100755
index 4ed9835..0000000
--- a/iup/srclua3/loh/iuplua_widgets_be32.loh
+++ /dev/null
@@ -1,939 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/iuplua_widgets_be32.lo");
-*/
-/* ../obj/iuplua3/iuplua_widgets_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 20, 64,105,117,112,108,117,
- 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 7,202, 67, 0,
- 22, 1, 11, 1, 22, 0, 30, 0, 25, 0, 15, 0, 11, 2, 11, 3, 26, 15, 0, 11,
- 4, 11, 5, 26, 15, 0, 11, 6, 11, 7, 26, 15, 0, 11, 8, 11, 9, 26, 15, 0,
- 11, 10, 11, 11, 26, 15, 0, 11, 12, 11, 13, 26, 15, 0, 11, 14, 11, 15, 26, 15,
- 0, 11, 16, 11, 17, 26, 15, 0, 11, 18, 11, 19, 26, 15, 0, 11, 20, 11, 21, 26,
- 15, 0, 11, 22, 11, 23, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 24, 15, 24, 11,
- 26, 11, 27, 26, 11, 29, 25, 28, 15, 30, 11, 31, 15, 28, 26, 22, 1, 11, 25, 15,
- 0, 30, 0, 25, 32, 15, 32, 11, 26, 11, 33, 26, 11, 35, 25, 34, 15, 30, 11, 36,
- 15, 34, 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1,
- 25, 37, 15, 37, 11, 26, 11, 39, 26, 15, 37, 11, 40, 11, 41, 26, 15, 37, 11, 42,
- 11, 43, 26, 15, 37, 11, 44, 11, 45, 26, 11, 47, 25, 46, 15, 30, 11, 48, 15, 46,
- 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1, 25, 49,
- 15, 49, 11, 26, 11, 50, 26, 11, 52, 25, 51, 15, 30, 11, 53, 15, 51, 26, 11, 55,
- 25, 54, 11, 57, 25, 56, 11, 59, 25, 58, 22, 1, 11, 25, 15, 0, 30, 0, 25, 60,
- 15, 60, 11, 4, 11, 61, 26, 15, 60, 11, 26, 11, 62, 26, 11, 64, 25, 63, 15, 30,
- 11, 65, 15, 63, 26, 15, 66, 11, 44, 11, 67, 26, 22, 1, 11, 25, 15, 0, 30, 0,
- 25, 68, 15, 68, 11, 4, 11, 69, 26, 15, 68, 11, 26, 11, 70, 26, 22, 1, 11, 25,
- 15, 68, 30, 0, 25, 71, 15, 71, 11, 72, 11, 73, 26, 11, 75, 25, 74, 15, 30, 11,
- 76, 15, 74, 26, 11, 78, 25, 77, 11, 80, 25, 79, 22, 1, 11, 25, 15, 68, 30, 0,
- 25, 81, 15, 81, 11, 72, 11, 82, 26, 11, 84, 25, 83, 15, 30, 11, 85, 15, 83, 26,
- 11, 87, 25, 86, 22, 1, 11, 25, 15, 68, 30, 0, 25, 88, 15, 88, 11, 72, 11, 89,
- 26, 11, 91, 25, 90, 15, 30, 11, 92, 15, 90, 26, 22, 1, 11, 25, 15, 0, 30, 0,
- 25, 93, 15, 93, 11, 26, 11, 94, 26, 11, 96, 25, 95, 15, 30, 11, 97, 15, 95, 26,
- 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 11,100, 15,101, 30, 0, 30, 1, 25, 98,
- 15, 98, 11, 26, 11,102, 26, 11,104, 25,103, 15, 30, 11,105, 15,103, 26, 22, 1,
- 11, 25, 15, 0, 30, 0, 25,106, 15,106, 11, 26, 11,107, 26, 11,109, 25,108, 15,
- 30, 11,110, 15,108, 26, 22, 1, 11, 25, 15,112, 30, 0, 25,111, 15,111, 11, 26,
- 11,113, 26, 11,115, 25,114, 15, 30, 11,116, 15,114, 26, 22, 2, 11, 25, 15, 0,
- 11, 99, 22, 1, 11,118, 15,101, 30, 0, 30, 1, 25,117, 15,117, 11, 26, 11,119,
- 26, 11,121, 25,120, 15, 30, 11,122, 15,120, 26, 22, 1, 11, 25, 15,124, 30, 0,
- 25,123, 15,123, 11, 26, 11,125, 26, 11,127, 25,126, 15, 30, 11,128, 15,126, 26,
- 22, 1, 11, 25, 15,124, 30, 0, 25,129, 15,129, 11, 26, 11,130, 26, 11,132, 25,
-131, 15, 30, 11,133, 15,131, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 2, 15,135,
- 29, 0, 1, 11,136, 15,101, 30, 0, 30, 1, 25,134, 15,134, 11, 26, 11,137, 26,
- 11,139, 25,138, 15, 30, 11,140, 15,138, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,
-141, 15,141, 11, 26, 11,142, 26, 11,144, 25,143, 15, 30, 11,145, 15,143, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,146, 15,146, 11, 44, 11,147, 26, 15,146, 11, 26,
- 11,148, 26, 11,150, 25,149, 15, 30, 11,151, 15,149, 26, 22, 1, 11, 25, 15, 0,
- 30, 0, 25,152, 15,152, 11, 44, 11,153, 26, 15,152, 11, 26, 11,154, 26, 11,156,
- 25,155, 15, 30, 11,157, 15,155, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,158, 15,
-158, 11, 44, 11,159, 26, 15,158, 11, 26, 11,160, 26, 11,162, 25,161, 15, 30, 11,
-163, 15,161, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,164, 15,164, 11, 44, 11,165,
- 26, 15,164, 11, 26, 11,166, 26, 11,168, 25,167, 15, 30, 11,169, 15,167, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,170, 15,170, 11, 26, 11,171, 26, 11,173, 25,172,
- 15, 30, 11,174, 15,172, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,175, 15,175, 11,
- 4, 11,176, 26, 15,175, 11, 26, 11,177, 26, 11,179, 25,178, 15, 30, 11,180, 15,
-178, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 15,182, 29, 0, 1, 30, 1, 25,
-181, 15,181, 11, 26, 11,183, 26, 11,185, 25,184, 15, 30, 11,186, 15,184, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,187, 15,187, 11, 26, 11,188, 26, 11,190, 25,189,
- 15, 30, 11,191, 15,189, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,192, 15,192, 11,
- 26, 11,193, 26, 15,192, 11, 8, 11,194, 26, 15,192, 11, 10, 11,195, 26, 11,197,
- 25,196, 15, 30, 11,198, 15,196, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,199, 15,
-199, 11, 4, 11,201, 26, 15,199, 11, 26, 11,202, 26, 11,204, 25,203, 15, 30, 11,
-205, 15,203, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,206, 15,206, 11, 26, 11,207,
- 26, 11,209, 25,208, 15, 30, 11,210, 15,208, 26, 22, 1, 11, 25, 15,200, 30, 0,
- 25,211, 15,211, 11, 26, 11,212, 26, 11,214, 25,213, 15, 30, 11,215, 15,213, 26,
- 22, 1, 11, 25, 15,200, 30, 0, 25,216, 15,216, 11, 26, 11,217, 26, 11,219, 25,
-218, 15, 30, 11,220, 15,218, 26, 22, 33, 11,222, 22, 2, 11,223, 4, 0, 29, 0,
- 2, 11,224, 22, 2, 11,225, 4, 0, 29, 0, 2, 11,226, 22, 2, 11,227, 15,228,
- 29, 0, 2, 11,229, 22, 2, 11,230, 15,231, 29, 0, 2, 11,232, 22, 2, 11,233,
- 15,234, 29, 0, 2, 11,235, 22, 2, 11,236, 15,237, 29, 0, 2, 11,238, 22, 2,
- 11,239, 15,240, 29, 0, 2, 11,241, 22, 2, 11,242, 15,243, 29, 0, 2, 11,244,
- 22, 2, 11,245, 15,246, 29, 0, 2, 11,247, 22, 2, 11,248, 15,249, 29, 0, 2,
- 11,250, 22, 2, 11,251, 15,252, 29, 0, 2, 11,253, 22, 2, 11,254, 15,255, 29,
- 0, 2, 10, 1, 0, 22, 2, 10, 1, 1, 14, 1, 2, 29, 0, 2, 10, 1, 3, 22,
- 2, 10, 1, 4, 14, 1, 5, 29, 0, 2, 10, 1, 6, 22, 2, 10, 1, 7, 14, 1,
- 8, 29, 0, 2, 10, 1, 9, 22, 2, 10, 1, 10, 14, 1, 11, 29, 0, 2, 10, 1,
- 12, 22, 2, 10, 1, 13, 14, 1, 14, 29, 0, 2, 10, 1, 15, 22, 2, 10, 1, 16,
- 14, 1, 17, 29, 0, 2, 10, 1, 18, 22, 2, 10, 1, 19, 14, 1, 20, 29, 0, 2,
- 10, 1, 21, 22, 2, 10, 1, 22, 14, 1, 23, 29, 0, 2, 10, 1, 24, 22, 2, 10,
- 1, 25, 14, 1, 26, 29, 0, 2, 11,105, 22, 2, 10, 1, 27, 14, 1, 28, 29, 0,
- 2, 10, 1, 29, 22, 2, 10, 1, 30, 14, 1, 31, 29, 0, 2, 10, 1, 32, 22, 2,
- 10, 1, 30, 14, 1, 33, 29, 0, 2, 10, 1, 34, 22, 2, 10, 1, 35, 14, 1, 36,
- 29, 0, 2, 10, 1, 37, 22, 2, 10, 1, 38, 14, 1, 39, 29, 0, 2, 10, 1, 40,
- 22, 2, 10, 1, 41, 14, 1, 42, 29, 0, 2, 10, 1, 43, 22, 2, 10, 1, 44, 14,
- 1, 45, 29, 0, 2, 10, 1, 46, 22, 2, 10, 1, 47, 14, 1, 48, 29, 0, 2, 10,
- 1, 49, 22, 2, 10, 1, 50, 14, 1, 51, 29, 0, 2, 10, 1, 52, 22, 2, 10, 1,
- 53, 14, 1, 54, 29, 0, 2, 10, 1, 55, 22, 2, 10, 1, 56, 14, 1, 57, 29, 0,
- 2, 30, 31, 10, 1, 58, 22, 2, 10, 1, 59, 14, 1, 60, 29, 0, 2, 30, 0, 25,
-221, 15,221, 18,222, 11,128, 14, 1, 61, 26, 15,221, 18,222, 11,116, 14, 1, 62,
- 26, 15,221, 18,222, 11,110, 14, 1, 62, 26, 15,221, 18,222, 11,105, 14, 1, 63,
- 26, 15,221, 18,222, 11,198, 14, 1, 64, 26, 15,221, 18,222, 11,133, 14, 1, 63,
- 26, 15,221, 18,222, 11,191, 14, 1, 65, 26, 15,221, 18,224, 11, 31, 14, 1, 66,
- 26, 15,221, 10, 1, 67, 15,221, 18,224, 26, 15,221, 10, 1, 68, 15,221, 18,226,
- 26, 15,221, 10, 1, 69, 15,221, 18,229, 26, 15,221, 10, 1, 70, 15,221, 18,232,
- 26, 15,221, 11,235, 15,221, 18,235, 26, 15,221, 10, 1, 71, 15,221, 18,238, 26,
- 15,221, 10, 1, 72, 15,221, 18,241, 26, 15,221, 10, 1, 73, 15,221, 18,244, 26,
- 15,221, 10, 1, 74, 15,221, 18,247, 26, 15,221, 10, 1, 75, 15,221, 18,250, 26,
- 15,221, 10, 1, 76, 15,221, 18,253, 26, 15,221, 10, 1, 77, 15,221, 17, 1, 0,
- 26, 15,221, 10, 1, 78, 15,221, 17, 1, 3, 26, 15,221, 10, 1, 79, 15,221, 17,
- 1, 6, 26, 15,221, 10, 1, 80, 15,221, 17, 1, 9, 26, 15,221, 10, 1, 81, 15,
-221, 17, 1, 12, 26, 15,221, 10, 1, 82, 15,221, 17, 1, 15, 26, 15,221, 10, 1,
- 83, 15,221, 17, 1, 18, 26, 15,221, 10, 1, 84, 15,221, 17, 1, 21, 26, 15,221,
- 10, 1, 85, 15,221, 17, 1, 24, 26, 15,221, 10, 1, 86, 15,221, 18,105, 26, 15,
-221, 10, 1, 87, 15,221, 17, 1, 29, 26, 15,221, 10, 1, 88, 15,221, 17, 1, 32,
- 26, 15,221, 10, 1, 89, 15,221, 17, 1, 34, 26, 15,221, 10, 1, 90, 15,221, 17,
- 1, 37, 26, 15,221, 10, 1, 91, 15,221, 17, 1, 40, 26, 15,221, 10, 1, 92, 15,
-221, 17, 1, 43, 26, 15,221, 10, 1, 93, 15,221, 17, 1, 46, 26, 15,221, 10, 1,
- 94, 15,221, 17, 1, 52, 26, 15,221, 10, 1, 95, 15,221, 17, 1, 49, 26, 15,221,
- 10, 1, 96, 15,221, 17, 1, 55, 26, 15,221, 10, 1, 97, 15,221, 17, 1, 58, 26,
- 15,221, 10, 1, 98, 15,221, 17, 1, 99, 26, 0, 0, 0, 0, 0, 0, 0, 1,100,
- 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 5,116,121,112,
-101, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 4,
- 0, 0, 0, 12, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 57, 7, 2, 13, 1, 11, 1, 13, 0,
- 26, 13, 0, 20, 3, 13, 1, 2, 0, 2, 13, 1, 11, 4, 13, 0, 20, 5, 13, 1,
- 2, 1, 2, 26, 13, 0, 20, 6, 13, 1, 2, 0, 2, 15, 7, 13, 1, 18, 4, 13,
- 1, 26, 13, 1, 18, 4, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, 99,104,101, 99,107, 80, 97,
-114, 97,109,115, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0,
- 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 2,
- 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117,116,101,115, 0, 2, 0,
- 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 12,
- 99,104,101, 99,107, 80, 97,114, 97,109,115, 0, 4, 0, 0, 0, 32, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 61, 8, 2, 13, 0, 18, 1, 15, 5, 13, 2, 4, 0, 2, 2, 2,
- 50, 39, 13, 4, 13, 1, 13, 3, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13,
- 3, 42, 11, 8, 42, 2, 0, 1, 15, 5, 13, 2, 13, 3, 2, 2, 2, 23, 4, 23,
- 3, 13, 3, 54, 43, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 2, 0, 0, 0, 6,112, 97,114, 97,109, 0, 2, 0, 0, 0, 5,102,
-117,110, 99, 0, 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,101,
-114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32,
- 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,
-117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,
-105,122,101,100, 0, 2, 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117,
-116,101,115, 0, 4, 0, 0, 0, 43, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 80, 9, 2, 22,
- 0, 15, 3, 13, 1, 4, 0, 2, 1, 2, 50, 18, 13, 2, 13, 3, 7, 1, 26, 15,
- 3, 13, 1, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 22, 15, 3, 13, 2, 4, 0,
- 2, 1, 2, 23, 3, 50, 25, 13, 1, 20, 4, 13, 3, 13, 1, 13, 3, 16, 2, 0,
- 3, 15, 3, 13, 2, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 29, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 5,116,
-101,109,112, 0, 2, 0, 0, 0, 2,102, 0, 2, 0, 0, 0, 5,110,101,120,116,
- 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, 0, 0, 0, 4,103,101,116, 0, 4,
- 0, 0, 0, 57, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 82, 6, 2, 15, 1, 13, 1, 2, 1,
- 1, 52, 63, 15, 2, 13, 1, 16, 52, 9, 13, 0, 13, 1, 16, 1, 2, 50, 47, 15,
- 5, 13, 1, 2, 1, 1, 15, 7, 13, 0, 18, 8, 13, 2, 2, 1, 2, 13, 3, 52,
- 23, 15, 9, 13, 3, 2, 1, 1, 13, 4, 52, 6, 13, 4, 1, 5, 50, 4, 13, 3,
- 1, 5, 5, 1, 5, 2, 13, 0, 13, 1, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 10, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 12,116,121,
-112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99,
- 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2,
- 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115,116,114,117,112,
-112,101,114, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 16,
- 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0,
- 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,101,116, 72,
- 97,110,100,108,101, 0, 2, 0, 0, 0, 4,115,101,116, 0, 4, 0, 0, 0, 77,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0,228, 11, 3, 15, 2, 13, 1, 2, 1, 1, 52,209, 15,
- 4, 13, 1, 2, 1, 1, 15, 6, 13, 1, 16, 13, 1, 11, 7, 32, 48, 12, 15, 8,
- 13, 0, 18, 10, 2, 1, 1, 11, 11, 32, 52, 4, 4, 0, 23, 4, 13, 4, 52, 55,
- 13, 4, 7, 2, 16, 13, 5, 44, 52, 14, 13, 4, 15, 8, 13, 0, 18, 10, 2, 1,
- 1, 16, 23, 5, 15, 13, 13, 0, 18, 10, 13, 4, 7, 1, 16, 13, 5, 13, 2, 2,
- 0, 4, 13, 0, 13, 1, 13, 2, 26, 1, 6, 5, 1, 50,111, 15, 2, 13, 2, 2,
- 1, 1, 46, 7, 15, 14, 13, 2, 2, 1, 1, 52, 17, 15, 15, 13, 0, 18, 10, 13,
- 3, 13, 2, 2, 0, 3, 1, 5, 50, 76, 15, 16, 13, 2, 2, 1, 1, 52, 34, 15,
- 18, 13, 0, 18, 10, 13, 3, 2, 1, 2, 13, 5, 52, 15, 15, 15, 13, 0, 18, 10,
- 13, 3, 13, 2, 2, 0, 3, 1, 6, 5, 1, 50, 33, 15, 19, 13, 2, 2, 1, 1,
- 52, 24, 15, 20, 13, 2, 2, 0, 1, 15, 15, 13, 0, 18, 10, 13, 3, 13, 2, 18,
- 21, 2, 0, 3, 1, 5, 5, 2, 13, 0, 13, 1, 13, 2, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 22, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 6,
-118, 97,108,117,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,
-110,103, 0, 2, 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115,
-116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 3, 99, 98, 0, 2, 0, 0, 0,
- 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 7,
-114,101,115,105,122,101, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 67,108,
- 97,115,115, 78, 97,109,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0,
- 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,
-103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, 0, 15,105,117,112,
- 83,101,116, 67, 97,108,108, 98, 97, 99,107, 0, 2, 0, 0, 0, 12,116,121,112,
-101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116,
- 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,116,121,112,101, 95,
-110,105,108, 0, 2, 0, 0, 0, 10,111,108,100, 95,118, 97,108,117,101, 0, 2,
- 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0,
- 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0,
- 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 9, 73, 85,
- 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,
-121, 0, 4, 0, 0, 0,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 89, 6, 1, 7, 1, 13,
- 0, 13, 1, 16, 50, 66, 15, 3, 13, 2, 2, 1, 1, 48, 4, 13, 2, 18, 4, 52,
- 37, 13, 2, 18, 4, 13, 0, 32, 52, 16, 13, 2, 11, 4, 4, 0, 26, 13, 2, 20,
- 5, 2, 0, 1, 50, 12, 15, 6, 11, 7, 2, 0, 1, 15, 8, 2, 0, 0, 13, 1,
- 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 23, 2, 13, 2, 54, 70, 15, 9, 13, 0,
- 4, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 2,105, 0, 2,
- 0, 0, 0, 5,101,108,101,109, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2,
- 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0,
- 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 10,114, 95,100,
-101,115,116,114,111,121, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0,
- 0, 0, 29, 73,110,116,101,114,110, 97,108, 32,116, 97, 98,108,101, 32,105,110,
- 99,111,110,115,105,115,116,101,110, 99,121, 0, 2, 0, 0, 0, 5,101,120,105,
-116, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2,
- 0, 0, 0, 8,100,101,115,116,114,111,121, 0, 4, 0, 0, 0,133, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 17, 3, 1, 13, 0, 20, 1, 2, 0, 1, 15, 2, 13, 0, 2, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,121, 0, 2, 0, 0, 0, 11,
- 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 7,100,101,116, 97,
- 99,104, 0, 4, 0, 0, 0,138, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 96, 8, 1, 15, 0,
- 13, 0, 2, 0, 1, 13, 0, 18, 3, 13, 1, 52, 78, 13, 0, 11, 3, 4, 0, 26,
- 7, 1, 50, 58, 13, 1, 13, 2, 16, 13, 0, 32, 52, 41, 50, 20, 13, 1, 13, 2,
- 13, 1, 13, 2, 7, 1, 37, 16, 26, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2,
- 7, 1, 37, 16, 54, 30, 13, 1, 13, 2, 4, 0, 26, 1, 3, 13, 2, 7, 1, 37,
- 23, 2, 13, 1, 13, 2, 16, 54, 65, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5,
- 2, 0, 0, 0, 10, 73,117,112, 68,101,116, 97, 99,104, 0, 2, 0, 0, 0, 5,
-115,101,108,102, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0,
- 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 2,105, 0,
- 2, 0, 0, 0, 7, 97,112,112,101,110,100, 0, 4, 0, 0, 0,158, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 75, 6, 2, 15, 1, 13, 0, 13, 1, 2, 1, 2, 52, 57, 13, 1,
- 11, 3, 13, 0, 26, 7, 1, 50, 21, 13, 0, 13, 2, 16, 13, 1, 32, 52, 4, 13,
- 2, 1, 3, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 28, 15, 5, 13,
- 0, 16, 13, 2, 13, 1, 26, 13, 2, 1, 3, 5, 1, 50, 4, 4, 0, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10,
- 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 2,105, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0,
- 2, 0, 0, 0, 4,109, 97,112, 0, 4, 0, 0, 0,175, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2,
- 2, 0, 0, 0, 7, 73,117,112, 77, 97,112, 0, 2, 0, 0, 0, 5,115,101,108,
-102, 0, 2, 0, 0, 0, 5,104,105,100,101, 0, 4, 0, 0, 0,179, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 72,105,100,101, 0, 2, 0, 0, 0,
- 5,115,101,108,102, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 17, 67,114,101,
- 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0,187, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112,
- 67,114,101, 97,116,101, 84,105,109,101,114, 0, 2, 0, 0, 0, 9,105,117,112,
-116,105,109,101,114, 0, 4, 0, 0, 0,191, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,116,105,109,101,114, 0, 2, 0, 0,
- 0, 13, 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 4, 0, 0, 0,200,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,105,117,
-112, 67,114,101, 97,116,101, 67,108,105,112, 98,111, 97,114,100, 0, 2, 0, 0,
- 0, 13,105,117,112, 99,108,105,112, 98,111, 97,114,100, 0, 4, 0, 0, 0,204,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 13,
- 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10, 99,108,105,112, 98,
-111, 97,114,100, 0, 2, 0, 0, 0, 10, 73, 85, 80, 68, 73, 65, 76, 79, 71, 0,
- 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0,
- 0,213, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2,
- 1, 1, 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104,
- 97,110,100,108,101, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101,
- 68,105, 97,108,111,103, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 4, 0, 0, 0,219, 0, 0,
- 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117,
- 97, 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 83,104,111,119, 0, 2, 0, 0,
- 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,115,104,111,119,120,121, 0, 4,
- 0, 0, 0,223, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1,
- 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120,
- 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 10, 73,117,112, 83,104,111,119,
- 88, 89, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 6,112,111,
-112,117,112, 0, 4, 0, 0, 0,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15,
- 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,
- 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,
-112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0,
- 0, 10,105,117,112,100,105, 97,108,111,103, 0, 4, 0, 0, 0,231, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80,
- 68, 73, 65, 76, 79, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,
-116,111,114, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,103, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 82, 65, 68, 73, 79, 0, 4, 0, 0, 0,240, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, 13, 1, 7, 1, 16,
- 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0,
- 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2,
- 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 82, 97,100,105,111, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9,
-105,117,112,114, 97,100,105,111, 0, 4, 0, 0, 0,246, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 26, 5, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 15, 4, 13, 1, 7, 1, 16,
- 2, 0, 1, 13, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 9,
- 73, 85, 80, 82, 65, 68, 73, 79, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,
-117, 99,116,111,114, 0, 2, 0, 0, 0, 23,105,117,112, 67,114,101, 97,116,101,
- 67,104,105,108,100,114,101,110, 78, 97,109,101,115, 0, 2, 0, 0, 0, 6,114,
- 97,100,105,111, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115,
- 0, 4, 0, 0, 0,254, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,156, 11, 1, 22, 0, 7, 1,
- 50, 61, 15, 3, 13, 0, 13, 2, 16, 2, 1, 1, 52, 29, 13, 1, 13, 2, 15, 4,
- 22, 2, 11, 5, 13, 0, 13, 2, 16, 11, 6, 13, 0, 18, 6, 30, 1, 2, 1, 1,
- 26, 50, 13, 15, 7, 11, 8, 13, 2, 42, 11, 9, 42, 2, 0, 1, 13, 2, 7, 1,
- 37, 23, 2, 13, 0, 13, 2, 16, 54, 68, 13, 0, 18, 10, 52, 51, 7, 1, 50, 7,
- 13, 3, 7, 1, 37, 23, 3, 13, 0, 13, 3, 16, 48, 10, 13, 0, 13, 3, 16, 13,
- 0, 18, 10, 31, 54, 26, 13, 0, 13, 3, 16, 52, 10, 13, 1, 11, 10, 13, 1, 13,
- 3, 16, 26, 5, 1, 50, 18, 13, 0, 18, 12, 52, 12, 13, 1, 11, 10, 13, 1, 13,
- 0, 18, 12, 16, 26, 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0,
- 0, 0, 2,104, 0, 2, 0, 0, 0, 4,116,109,112, 0, 2, 0, 0, 0, 2,105,
- 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0,
- 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,
-116,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0,
- 6,101,114,114,111,114, 0, 2, 0, 0, 0, 8,111,112,116,105,111,110, 32, 0,
- 2, 0, 0, 0, 18, 32,109,117,115,116, 32, 98,101, 32, 97, 32,115,116,114,105,
-110,103, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 2,106,
- 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 9,101,100,
-104,114, 97,100,105,111, 0, 4, 0, 0, 1, 26, 0, 0, 0, 20, 64,105,117,112,
-108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 35,
- 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, 2, 1, 1,
- 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,103,103,108,
-101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, 0, 2,
- 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, 7,101,100,
-104, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0,
- 9,101,100,118,114, 97,100,105,111, 0, 4, 0, 0, 1, 32, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 35, 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1,
- 2, 1, 1, 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,
-103,103,108,101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,
-115, 0, 2, 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0,
- 7,101,100,118, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, 85, 0, 4, 0, 0, 1, 41, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0,159, 7, 2, 7, 1, 50,145, 13, 1, 13, 2, 16, 15, 3, 13, 3,
- 2, 1, 1, 44, 52,121, 15, 4, 13, 3, 2, 1, 1, 11, 5, 31, 52, 15, 15, 6,
- 11, 7, 13, 2, 42, 11, 8, 42, 2, 0, 1, 50, 94, 13, 3, 7, 1, 16, 48, 11,
- 15, 9, 13, 3, 7, 1, 16, 2, 1, 1, 44, 52, 15, 15, 6, 11, 7, 13, 2, 42,
- 11, 10, 42, 2, 0, 1, 50, 59, 13, 3, 7, 2, 16, 48, 11, 15, 9, 13, 3, 7,
- 2, 16, 2, 1, 1, 44, 48, 11, 15, 11, 13, 3, 7, 2, 16, 2, 1, 1, 44, 48,
- 11, 15, 12, 13, 3, 7, 2, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, 2,
- 42, 11, 13, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2,
- 16, 54,152, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10,
-116,121,112,101, 95,105,116,101,109, 0, 2, 0, 0, 0, 5,116,121,112,101, 0,
- 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,
-114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, 2, 0,
- 0, 0, 32, 32,105,115, 32,110,111,116, 32, 97, 32,116, 97, 98,108,101, 32,110,
-111,114, 32, 97, 32,109,101,110,117, 32,105,116,101,109, 0, 2, 0, 0, 0, 12,
-116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 30, 32,100,111,
-101,115, 32,110,111,116, 32,104, 97,118,101, 32, 97, 32,115,116,114,105,110,103,
- 32,116,105,116,108,101, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110,
- 99,116,105,111,110, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,
-101,116, 0, 2, 0, 0, 0, 36, 32,100,111,101,115, 32,110,111,116, 32,104, 97,
-118,101, 32, 97,110, 32, 97, 99,116,105,111,110, 32,110,111,114, 32, 97, 32,109,
-101,110,117, 0, 4, 0, 0, 1, 59, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,189, 10, 2, 15,
- 2, 2, 1, 0, 7, 1, 50,166, 13, 1, 13, 3, 16, 4, 0, 15, 6, 13, 4, 2,
- 1, 1, 52, 6, 13, 4, 23, 5, 50,112, 13, 4, 7, 1, 16, 44, 52, 11, 15, 7,
- 22, 0, 2, 1, 1, 23, 5, 50, 93, 15, 6, 13, 4, 7, 2, 16, 2, 1, 1, 52,
- 38, 13, 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 7, 1, 13, 4, 7, 2, 16,
- 26, 13, 4, 7, 2, 4, 0, 26, 15, 9, 13, 4, 2, 1, 1, 23, 5, 50, 43, 13,
- 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 11, 10, 13, 4, 7, 2, 16, 26, 13,
- 4, 7, 1, 4, 0, 26, 13, 4, 7, 2, 4, 0, 26, 15, 11, 13, 4, 2, 1, 1,
- 23, 5, 15, 12, 13, 2, 13, 5, 2, 0, 2, 13, 5, 11, 13, 13, 2, 26, 13, 1,
- 13, 3, 13, 5, 26, 13, 3, 7, 1, 37, 23, 3, 5, 2, 13, 1, 13, 3, 16, 54,
-173, 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 14,
-105,117,112, 67,114,101, 97,116,101, 77,101,110,117, 0, 2, 0, 0, 0, 2,105,
- 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,101,108,101,109, 0, 2, 0,
- 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 13,
-105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 6,116,105,
-116,108,101, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0,
- 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,105,117,112,
-105,116,101,109, 0, 2, 0, 0, 0, 10, 73,117,112, 65,112,112,101,110,100, 0,
- 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 8,105,117,112,109,101,110,117, 0, 4, 0, 0, 1, 89, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78,
- 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2,
- 0, 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78,
- 85, 0, 4, 0, 0, 1, 94, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13,
- 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0,
- 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, 80,
-111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12,
- 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 4, 0, 0, 1,102, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, 2, 13, 1, 13, 2, 16, 2, 1,
- 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, 5, 42, 2, 0, 1, 13, 2, 7,
- 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, 0, 0, 0, 0, 0, 0, 0, 6,
- 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0,
- 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 6,101,114,
-114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0,
- 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,
-101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,
-122,101,100, 0, 4, 0, 0, 1,112, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,187, 11, 2, 13,
- 0, 20, 3, 2, 1, 1, 13, 1, 18, 4, 7, 1, 7, 0, 50, 14, 13, 5, 7, 1,
- 37, 23, 5, 13, 4, 7, 1, 37, 23, 4, 13, 1, 13, 4, 16, 54, 21, 7, 1, 23,
- 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, 2,
- 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, 1,
- 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 50, 79, 15, 9, 13, 2, 13, 1, 13,
- 4, 16, 2, 0, 2, 13, 1, 13, 4, 16, 11, 10, 13, 2, 26, 13, 4, 7, 1, 37,
- 23, 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0,
- 2, 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13,
- 1, 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 13, 4, 13, 5, 34, 54, 86, 13,
- 2, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,
-109,101,110,116, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0,
- 0, 2,105, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95,
- 89, 69, 83, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0,
- 0, 10, 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 11, 73, 85, 80,
- 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88,
- 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,109,101,
-110,116, 0, 4, 0, 0, 1,146, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0,
- 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112,
- 67,114,101, 97,116,101, 72, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,104,
- 98,111,120, 0, 4, 0, 0, 1,150, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15,
- 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0, 2, 0, 0,
- 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,104,
- 98,111,120, 0, 2, 0, 0, 0, 7,101,100,104, 98,111,120, 0, 4, 0, 0, 1,
-156, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3,
- 20, 4, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8,
- 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88,
- 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0,
- 0, 0, 8,101,100,102,105,101,108,100, 0, 4, 0, 0, 1,162, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0,123, 7, 1, 4, 1, 15, 3, 13, 0, 18, 4, 2, 1, 1, 46, 9, 15,
- 5, 13, 0, 18, 4, 2, 1, 1, 52, 19, 15, 6, 22, 1, 11, 7, 13, 0, 18, 4,
- 30, 0, 2, 1, 1, 23, 1, 50, 7, 15, 8, 11, 9, 2, 0, 1, 13, 0, 18, 10,
- 52, 19, 15, 11, 22, 1, 11, 10, 13, 0, 18, 10, 30, 0, 2, 1, 1, 23, 2, 50,
- 17, 15, 11, 22, 1, 11, 10, 13, 0, 18, 12, 30, 0, 2, 1, 1, 23, 2, 13, 2,
- 48, 2, 13, 1, 52, 16, 15, 13, 22, 2, 13, 1, 13, 2, 29, 0, 2, 3, 3, 1,
- 50, 4, 4, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 2,
-102, 0, 2, 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0,
- 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 7,112,114,
-111,109,112,116, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,110,117,109, 98,101,
-114, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0,
- 6,116,105,116,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0,
- 0, 0, 55,112, 97,114, 97,109,101,116,101,114, 32,112,114,111,109,112,116, 32,
-104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,
-115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,122,101,100, 0, 2, 0,
- 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8,105,117,112,116,101,120,
-116, 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 7,101,
-100,104, 98,111,120, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 4,
- 0, 0, 1,185, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,
-116,101, 86, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0,
- 4, 0, 0, 1,189, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,118, 98,111,120, 0,
- 2, 0, 0, 0, 7,101,100,118, 98,111,120, 0, 4, 0, 0, 1,195, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, 20, 4, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95,
- 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0,
- 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8, 73,
- 85, 80, 90, 66, 79, 88, 0, 4, 0, 0, 1,204, 0, 0, 0, 20, 64,105,117,112,
-108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8,
- 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0,
- 14,105,117,112, 67,114,101, 97,116,101, 90, 98,111,120, 0, 2, 0, 0, 0, 8,
-105,117,112,122, 98,111,120, 0, 4, 0, 0, 1,208, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 44, 6, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 7, 1, 50, 17, 15, 5, 13, 1,
- 13, 2, 16, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 24,
- 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 8, 73,
- 85, 80, 90, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,
-116,111,114, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11,105,117,112, 83,
-101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 5,122, 98,111,120, 0, 2, 0, 0,
- 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 4, 0, 0, 1,223, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
- 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,
-116,101, 70,105,108,108, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0,
- 4, 0, 0, 1,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,102,105,108,108, 0,
- 2, 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 5,
-116,121,112,101, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0,
- 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 4, 0, 0, 1,236, 0, 0,
- 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117,
- 97, 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52,
- 7, 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,
-116,105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0,
- 0, 1, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 66,117,116,
-116,111,110, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 4,
- 0, 0, 1,243, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 98,117,116,116,
-111,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, 1,
-252, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,
-117,112, 67,114,101, 97,116,101, 84,101,120,116, 0, 2, 0, 0, 0, 8,105,117,
-112,116,101,120,116, 0, 4, 0, 0, 2, 0, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 2,
- 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0,
- 5,116,101,120,116, 0, 2, 0, 0, 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76,
- 73, 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0,
- 2, 9, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,
-105,117,112, 67,114,101, 97,116,101, 77,117,108,116,105, 76,105,110,101, 0, 2,
- 0, 0, 0, 13,105,117,112,109,117,108,116,105,108,105,110,101, 0, 4, 0, 0,
- 2, 13, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0,
- 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, 73, 78, 69, 0, 2, 0, 0, 0, 12,
- 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,109,117,108,
-116,105,108,105,110,101, 0, 2, 0, 0, 0, 9, 73, 85, 80, 76, 65, 66, 69, 76,
- 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 2, 22, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, 7,
- 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,116,
-105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, 0,
- 1, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 76, 97, 98,101,
-108, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 4, 0, 0, 2,
- 29, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 76, 65, 66, 69, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,
-114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,108, 97, 98,101,108, 0, 2, 0,
- 0, 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 10, 73, 85,
- 80, 66, 85, 84, 84, 79, 78, 0, 4, 0, 0, 2, 38, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,
-101, 97,116,101, 84,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,116,108,
-101, 0, 2, 0, 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 4, 0, 0,
- 2, 42, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0,
- 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7,116,111,103,103,108,101,
- 0, 2, 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 4, 0, 0, 2, 51, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 14,105,117,112, 67,114,101, 97,116,101, 73,116,101,109, 0, 2, 0, 0, 0, 6,
-116,105,116,108,101, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 4,
- 0, 0, 2, 55, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,
-116,121,112,101, 95,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,101,
- 0, 4, 0, 0, 2, 64, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 31, 6, 2, 15, 2, 13, 1,
- 18, 3, 13, 1, 7, 1, 16, 2, 1, 2, 13, 1, 7, 1, 16, 11, 4, 13, 2, 26,
- 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 2,104, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101,
- 97,116,101, 83,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,
-101, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, 4, 0, 0, 2, 70, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,
-114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,117, 98,109,101,110,117, 0,
- 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 4, 0,
- 0, 2, 79, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 19,105,117,112, 67,114,101, 97,116,101, 83,101,112, 97,114, 97,116,111,114, 0,
- 2, 0, 0, 0, 13,105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 4, 0,
- 0, 2, 83, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, 0, 0, 0,
- 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,115,101,
-112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69,
- 68, 76, 71, 0, 4, 0, 0, 2, 92, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15,
- 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,
- 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,
-112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0,
- 2, 96, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101,
- 70,105,108,101, 68,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101,
-100,108,103, 0, 4, 0, 0, 2,100, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15,
- 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, 68, 76, 71, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 14, 73, 85, 80, 77, 69,
- 83, 83, 65, 71, 69, 68, 76, 71, 0, 4, 0, 0, 2,109, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0,
- 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,
-102, 0, 4, 0, 0, 2,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 20,105,117,112, 67,
-114,101, 97,116,101, 77,101,115,115, 97,103,101, 68,108,103, 0, 2, 0, 0, 0,
- 14,105,117,112,109,101,115,115, 97,103,101,100,108,103, 0, 4, 0, 0, 2,117,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 14,
- 73, 85, 80, 77, 69, 83, 83, 65, 71, 69, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,109,101,115,115,
- 97,103,101,100,108,103, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82,
- 68, 76, 71, 0, 4, 0, 0, 2,126, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15,
- 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,
- 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,
-112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0,
- 2,130, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101,
- 67,111,108,111,114, 68,108,103, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108,
-111,114,100,108,103, 0, 4, 0, 0, 2,134, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 68,
- 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 9, 99,111,108,111,114,100,108,103, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 70, 79, 78, 84, 68, 76, 71, 0, 4, 0, 0, 2,143, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2,
- 0, 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 4, 0, 0, 2,147, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0,
- 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112,
- 67,114,101, 97,116,101, 70,111,110,116, 68,108,103, 0, 2, 0, 0, 0, 11,105,
-117,112,102,111,110,116,100,108,103, 0, 4, 0, 0, 2,151, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 79,
- 78, 84, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,
-111,114, 0, 2, 0, 0, 0, 8,102,111,110,116,100,108,103, 0, 2, 0, 0, 0,
- 8, 73, 85, 80, 85, 83, 69, 82, 0, 4, 0, 0, 2,160, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0,
- 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 85,115,101,114, 0, 2, 0, 0,
- 0, 8,105,117,112,117,115,101,114, 0, 4, 0, 0, 2,164, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 10, 2, 0, 15, 0, 20, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 0, 0, 0, 8, 73, 85, 80, 85, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,117,115,101,114,
- 0, 2, 0, 0, 0, 14, 73, 85, 80, 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0,
- 4, 0, 0, 2,173, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15,
- 2, 13, 1, 13, 2, 16, 2, 1, 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11,
- 5, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0,
- 0, 2,105, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116,
- 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114,
- 97,109,101,116,101,114, 32, 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,
-111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,
-105,110,105,116,105, 97,108,105,122,101,100, 0, 4, 0, 0, 2,183, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 40, 8, 2, 15, 2, 2, 1, 0, 7, 1, 50, 17, 13, 2, 11, 4,
- 13, 1, 13, 3, 16, 26, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 3, 16, 54, 24,
- 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 20,105,
-117,112, 67,114,101, 97,116,101, 78,111,114,109, 97,108,105,122,101,114, 0, 2,
- 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11, 97,100,100, 99,111,110,116,114,111,
-108, 0, 2, 0, 0, 0, 14,105,117,112,110,111,114,109, 97,108,105,122,101,114,
- 0, 4, 0, 0, 2,193, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 10, 2, 0, 15, 0, 20, 1,
- 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 14, 73, 85, 80,
- 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,
-116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,110,111,114,109, 97,108,105,
-122,101,114, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, 2, 0,
- 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 2,202,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1,
- 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,104, 0, 2,
- 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 70,114, 97,109,101, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9,
-105,117,112,102,114, 97,109,101, 0, 4, 0, 0, 2,208, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65,
- 77, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 6,102,114, 97,109,101, 0, 2, 0, 0, 0, 10, 73, 85, 80, 67,
- 65, 78, 86, 65, 83, 0, 4, 0, 0, 2,217, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3,
- 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 67, 97,
-110,118, 97,115, 0, 2, 0, 0, 0, 10,105,117,112, 99, 97,110,118, 97,115, 0,
- 4, 0, 0, 2,221, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 10, 73, 85, 80, 67, 65, 78, 86, 65, 83, 0, 2, 0, 0, 0, 12,
- 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 99, 97,110,
-118, 97,115, 0, 2, 0, 0, 0, 8, 73, 85, 80, 76, 73, 83, 84, 0, 4, 0, 0,
- 2,230, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,
-105,117,112, 67,114,101, 97,116,101, 76,105,115,116, 0, 4, 0, 0, 2,234, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 42, 6, 2, 15, 1, 13, 1, 2, 1, 1, 11, 2, 32, 52,
- 16, 15, 3, 13, 0, 18, 5, 11, 6, 13, 1, 42, 3, 2, 2, 50, 11, 15, 7, 18,
- 8, 13, 0, 13, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0,
- 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0,
- 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,
-116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102,
- 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2,
- 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,103,101,116, 0,
- 4, 0, 0, 2,242, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 90, 8, 3, 15, 2, 13, 1, 2,
- 1, 1, 11, 3, 32, 52, 62, 15, 4, 13, 2, 2, 1, 1, 46, 7, 15, 5, 13, 2,
- 2, 1, 1, 52, 21, 15, 6, 13, 0, 18, 8, 11, 9, 13, 1, 42, 11, 9, 13, 2,
- 42, 3, 3, 3, 50, 23, 13, 2, 4, 0, 32, 52, 16, 15, 6, 13, 0, 18, 8, 11,
- 9, 13, 1, 42, 13, 2, 3, 3, 3, 15, 10, 18, 11, 13, 0, 13, 1, 13, 2, 3,
- 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 6,105,110,100,101,
-120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 5,116,121,
-112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 12,
-116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 12,116,121,112,
-101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116,
- 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, 0,
- 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,115,101,116, 0, 2,
- 0, 0, 0, 8,105,117,112,108,105,115,116, 0, 4, 0, 0, 2,253, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 76, 73, 83, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 5,108,105,115,116, 0, 2, 0, 0, 0, 9, 73, 85, 80,
- 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 4, 0,
- 0, 3, 6, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0,116, 8, 2, 7, 1, 50, 92, 7, 1, 50,
- 32, 15, 3, 13, 1, 13, 2, 16, 13, 3, 16, 2, 1, 1, 11, 4, 31, 52, 7, 15,
- 5, 11, 6, 2, 0, 1, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 2, 16, 13, 3,
- 16, 54, 42, 13, 1, 18, 7, 48, 10, 13, 3, 7, 1, 38, 13, 1, 18, 7, 31, 52,
- 9, 15, 5, 11, 8, 2, 0, 1, 50, 10, 13, 1, 11, 7, 13, 3, 7, 1, 38, 26,
- 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, 16, 54, 99, 13, 1, 11, 9,
- 13, 2, 7, 1, 38, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,106, 0, 2, 0,
- 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0,
- 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 38,110,111,110, 45,
-110,117,109,101,114,105, 99, 32,118, 97,108,117,101, 32,105,110, 32,105,109, 97,
-103,101, 32,100,101,102,105,110,105,116,105,111,110, 0, 2, 0, 0, 0, 6,119,
-105,100,116,104, 0, 2, 0, 0, 0, 26,105,110, 99,111,110,115,105,115,116,101,
-110,116, 32,105,109, 97,103,101, 32,108,101,110,103,104,116, 0, 2, 0, 0, 0,
- 7,104,101,105,103,104,116, 0, 4, 0, 0, 3, 29, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 74, 9, 2, 15, 2, 13, 1, 18, 3, 13, 1, 18, 4, 13, 1, 2, 1, 3, 15, 5,
- 13, 1, 18, 6, 2, 1, 1, 11, 7, 32, 52, 38, 7, 1, 50, 23, 15, 9, 13, 2,
- 13, 3, 13, 1, 18, 6, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 37, 23, 3, 13,
- 1, 18, 6, 13, 3, 16, 54, 32, 5, 1, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 10, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,
-100,108,101, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 73,109,
- 97,103,101, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 7,
-104,101,105,103,104,116, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0,
- 0, 7, 99,111,108,111,114,115, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0,
- 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,
-116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,105,117,112,105,109, 97,103,
-101, 0, 4, 0, 0, 3, 41, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20,
- 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,
-111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 73, 77, 65, 71, 69, 0, 2, 0, 0, 0,
- 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,105,109,
- 97,103,101, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66,
- 0, 4, 0, 0, 3, 49, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1,
- 18, 2, 13, 1, 18, 3, 13, 1, 18, 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,
-114,101, 97,116,101, 73,109, 97,103,101, 82, 71, 66, 0, 2, 0, 0, 0, 6,119,
-105,100,116,104, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, 0, 2, 0, 0,
- 0, 7,112,105,120,101,108,115, 0, 2, 0, 0, 0, 12,105,117,112,105,109, 97,
-103,101,114,103, 98, 0, 4, 0, 0, 3, 53, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82,
- 71, 66, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 9,105,109, 97,103,101,114,103, 98, 0, 2, 0, 0, 0, 13, 73,
- 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 4, 0, 0, 3, 61, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, 18, 2, 13, 1, 18, 3, 13, 1, 18,
- 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 19,105,117,112, 67,114,101, 97,116,101, 73,109, 97,103,
-101, 82, 71, 66, 65, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0,
- 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, 7,112,105,120,101,108,115,
- 0, 2, 0, 0, 0, 13,105,117,112,105,109, 97,103,101,114,103, 98, 97, 0, 4,
- 0, 0, 3, 65, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 13, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 2, 0, 0,
- 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,105,
-109, 97,103,101,114,103, 98, 97, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79,
- 71, 82, 69, 83, 83, 66, 65, 82, 0, 4, 0, 0, 3, 74, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0,
- 0, 0, 21,105,117,112, 67,114,101, 97,116,101, 80,114,111,103,114,101,115,115,
- 66, 97,114, 0, 2, 0, 0, 0, 15,105,117,112,112,114,111,103,114,101,115,115,
- 98, 97,114, 0, 4, 0, 0, 3, 78, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15,
- 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 2,111, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, 71, 82, 69, 83, 83,
- 66, 65, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114,
- 0, 2, 0, 0, 0, 12,112,114,111,103,114,101,115,115, 98, 97,114, 0, 2, 0,
- 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0,
- 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 7, 65, 67, 84, 73, 79, 78,
- 0, 2, 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 10,
- 65, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 9,103,101,116,102,111,
- 99,117,115, 0, 2, 0, 0, 0, 12, 71, 69, 84, 70, 79, 67, 85, 83, 95, 67, 66,
- 0, 2, 0, 0, 0, 16,105,117,112, 95,103,101,116,102,111, 99,117,115, 95, 99,
- 98, 0, 2, 0, 0, 0, 10,107,105,108,108,102,111, 99,117,115, 0, 2, 0, 0,
- 0, 13, 75, 73, 76, 76, 70, 79, 67, 85, 83, 95, 67, 66, 0, 2, 0, 0, 0, 17,
-105,117,112, 95,107,105,108,108,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0,
- 0, 6,102,111, 99,117,115, 0, 2, 0, 0, 0, 9, 70, 79, 67, 85, 83, 95, 67,
- 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,102,111, 99,117,115, 95, 99, 98, 0,
- 2, 0, 0, 0, 6,107, 95, 97,110,121, 0, 2, 0, 0, 0, 6, 75, 95, 65, 78,
- 89, 0, 2, 0, 0, 0, 10,105,117,112, 95,107, 95, 97,110,121, 0, 2, 0, 0,
- 0, 5,104,101,108,112, 0, 2, 0, 0, 0, 8, 72, 69, 76, 80, 95, 67, 66, 0,
- 2, 0, 0, 0, 12,105,117,112, 95,104,101,108,112, 95, 99, 98, 0, 2, 0, 0,
- 0, 8, 99, 97,114,101,116, 99, 98, 0, 2, 0, 0, 0, 9, 67, 65, 82, 69, 84,
- 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, 99, 97,114,101,116, 95, 99,
- 98, 0, 2, 0, 0, 0, 9,107,101,121,112,114,101,115,115, 0, 2, 0, 0, 0,
- 12, 75, 69, 89, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,
-112, 95,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 7,115,
- 99,114,111,108,108, 0, 2, 0, 0, 0, 10, 83, 67, 82, 79, 76, 76, 95, 67, 66,
- 0, 2, 0, 0, 0, 14,105,117,112, 95,115, 99,114,111,108,108, 95, 99, 98, 0,
- 2, 0, 0, 0, 10,116,114, 97,121, 99,108,105, 99,107, 0, 2, 0, 0, 0, 13,
- 84, 82, 65, 89, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,
-112, 95,116,114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 6,
- 99,108,111,115,101, 0, 2, 0, 0, 0, 9, 67, 76, 79, 83, 69, 95, 67, 66, 0,
- 2, 0, 0, 0, 13,105,117,112, 95, 99,108,111,115,101, 95, 99, 98, 0, 2, 0,
- 0, 0, 5,111,112,101,110, 0, 2, 0, 0, 0, 8, 79, 80, 69, 78, 95, 67, 66,
- 0, 2, 0, 0, 0, 12,105,117,112, 95,111,112,101,110, 95, 99, 98, 0, 2, 0,
- 0, 0, 7,115,104,111,119, 99, 98, 0, 2, 0, 0, 0, 8, 83, 72, 79, 87, 95,
- 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,104,111,119, 95, 99, 98, 0,
- 2, 0, 0, 0, 6,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 7, 77, 65, 80, 95,
- 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,109, 97,112, 95, 99, 98, 0, 2,
- 0, 0, 0, 8,117,110,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 9, 85, 78, 77,
- 65, 80, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,117,110,109, 97,112,
- 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114,111,112,102,105,108,101,115, 0, 2,
- 0, 0, 0, 13, 68, 82, 79, 80, 70, 73, 76, 69, 83, 95, 67, 66, 0, 2, 0, 0,
- 0, 17,105,117,112, 95,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,109,101,110,117, 99,108,111,115,101, 0, 2, 0, 0, 0, 13, 77,
- 69, 78, 85, 67, 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112,
- 95,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,
-105,103,104,108,105,103,104,116, 0, 2, 0, 0, 0, 13, 72, 73, 71, 72, 76, 73,
- 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,104,105,103,104,
-108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 4,119,111,109, 0, 2, 0,
- 0, 0, 7, 87, 79, 77, 95, 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,119,
-111,109, 95, 99, 98, 0, 2, 0, 0, 0, 6,119,104,101,101,108, 0, 2, 0, 0,
- 0, 9, 87, 72, 69, 69, 76, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,
-119,104,101,101,108, 95, 99, 98, 0, 2, 0, 0, 0, 10, 66, 85, 84, 84, 79, 78,
- 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95, 98,117,116,116,111,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 10,
- 82, 69, 83, 73, 90, 69, 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,114,
-101,115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,109,111,118,101, 0, 2,
- 0, 0, 0, 12,105,117,112, 95,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 7,109,111,116,105,111,110, 0, 2, 0, 0, 0, 10, 77, 79, 84, 73, 79, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,109,111,116,105,111,110, 95, 99,
- 98, 0, 2, 0, 0, 0, 12,101,110,116,101,114,119,105,110,100,111,119, 0, 2,
- 0, 0, 0, 15, 69, 78, 84, 69, 82, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, 2,
- 0, 0, 0, 19,105,117,112, 95,101,110,116,101,114,119,105,110,100,111,119, 95,
- 99, 98, 0, 2, 0, 0, 0, 12,108,101, 97,118,101,119,105,110,100,111,119, 0,
- 2, 0, 0, 0, 15, 76, 69, 65, 86, 69, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0,
- 2, 0, 0, 0, 19,105,117,112, 95,108,101, 97,118,101,119,105,110,100,111,119,
- 95, 99, 98, 0, 2, 0, 0, 0, 5,101,100,105,116, 0, 2, 0, 0, 0, 8, 69,
- 68, 73, 84, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,101,100,105,116,
- 95, 99, 98, 0, 2, 0, 0, 0, 12,109,117,108,116,105,115,101,108,101, 99,116,
- 0, 2, 0, 0, 0, 15, 77, 85, 76, 84, 73, 83, 69, 76, 69, 67, 84, 95, 67, 66,
- 0, 2, 0, 0, 0, 19,105,117,112, 95,109,117,108,116,105,115,101,108,101, 99,
-116, 95, 99, 98, 0, 2, 0, 0, 0, 7,102,105,108,101, 99, 98, 0, 2, 0, 0,
- 0, 8, 70, 73, 76, 69, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,102,
-105,108,101, 95, 99, 98, 0, 2, 0, 0, 0, 14,109,100,105, 97, 99,116,105,118,
- 97,116,101, 99, 98, 0, 2, 0, 0, 0, 15, 77, 68, 73, 65, 67, 84, 73, 86, 65,
- 84, 69, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109,100,105, 97, 99,
-116,105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 11,100,114,111,112,100,
-111,119,110, 99, 98, 0, 2, 0, 0, 0, 12, 68, 82, 79, 80, 68, 79, 87, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,100,114,111,112,100,111,119,110,
- 95, 99, 98, 0, 2, 0, 0, 0, 11,100, 98,108, 99,108,105, 99,107, 99, 98, 0,
- 2, 0, 0, 0, 12, 68, 66, 76, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0,
- 0, 16,105,117,112, 95,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0,
- 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95,116,111,103,103,108,101,
- 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110, 95,116,101,120,
-116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95, 98,117,
-116,116,111,110, 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110,
- 95,108,105,115,116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,
-110, 95, 99, 97,110,118, 97,115, 0, 2, 0, 0, 0, 17,105,117,112, 95, 97, 99,
-116,105,111,110, 95,116,105,109,101,114, 0, 2, 0, 0, 0, 10, 97, 99,116,105,
-111,110, 95, 99, 98, 0, 2, 0, 0, 0, 12,103,101,116,102,111, 99,117,115, 95,
- 99, 98, 0, 2, 0, 0, 0, 13,107,105,108,108,102,111, 99,117,115, 95, 99, 98,
- 0, 2, 0, 0, 0, 9,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 8,
-104,101,108,112, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99, 97,114,101,116, 95, 99,
- 98, 0, 2, 0, 0, 0, 12,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,115, 99,114,111,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 13,116,
-114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,111,
-115,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,111,112,101,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 8,115,104,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 7,109, 97,112,
- 95, 99, 98, 0, 2, 0, 0, 0, 9,117,110,109, 97,112, 95, 99, 98, 0, 2, 0,
- 0, 0, 13,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, 0, 0, 0,
- 13,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 13,104,
-105,103,104,108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 7,119,111,109,
- 95, 99, 98, 0, 2, 0, 0, 0, 9,119,104,101,101,108, 95, 99, 98, 0, 2, 0,
- 0, 0, 10, 98,117,116,116,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,
-115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,109,111,118,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 10,109,111,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0,
- 15,101,110,116,101,114,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0,
- 15,108,101, 97,118,101,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0,
- 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,108,116,105,115,
-101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,100,105, 97, 99,116,
-105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,102,105,108,101, 95, 99,
- 98, 0, 2, 0, 0, 0, 12,100,114,111,112,100,111,119,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 12,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0,
- 16,118, 97,108,117,101, 99,104, 97,110,103,101,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 15,118, 97,108,117,101, 99,104, 97,110,103,101,100, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_widgets_be32.lo");
-}
diff --git a/iup/srclua3/loh/iuplua_widgets_be64.loh b/iup/srclua3/loh/iuplua_widgets_be64.loh
deleted file mode 100755
index 6ca1eb6..0000000
--- a/iup/srclua3/loh/iuplua_widgets_be64.loh
+++ /dev/null
@@ -1,939 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/iuplua_widgets_be64.lo");
-*/
-/* ../obj/iuplua3/iuplua_widgets_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 20, 64,105,117,112,108,117,
- 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 7,202, 67, 0,
- 22, 1, 11, 1, 22, 0, 30, 0, 25, 0, 15, 0, 11, 2, 11, 3, 26, 15, 0, 11,
- 4, 11, 5, 26, 15, 0, 11, 6, 11, 7, 26, 15, 0, 11, 8, 11, 9, 26, 15, 0,
- 11, 10, 11, 11, 26, 15, 0, 11, 12, 11, 13, 26, 15, 0, 11, 14, 11, 15, 26, 15,
- 0, 11, 16, 11, 17, 26, 15, 0, 11, 18, 11, 19, 26, 15, 0, 11, 20, 11, 21, 26,
- 15, 0, 11, 22, 11, 23, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 24, 15, 24, 11,
- 26, 11, 27, 26, 11, 29, 25, 28, 15, 30, 11, 31, 15, 28, 26, 22, 1, 11, 25, 15,
- 0, 30, 0, 25, 32, 15, 32, 11, 26, 11, 33, 26, 11, 35, 25, 34, 15, 30, 11, 36,
- 15, 34, 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1,
- 25, 37, 15, 37, 11, 26, 11, 39, 26, 15, 37, 11, 40, 11, 41, 26, 15, 37, 11, 42,
- 11, 43, 26, 15, 37, 11, 44, 11, 45, 26, 11, 47, 25, 46, 15, 30, 11, 48, 15, 46,
- 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1, 25, 49,
- 15, 49, 11, 26, 11, 50, 26, 11, 52, 25, 51, 15, 30, 11, 53, 15, 51, 26, 11, 55,
- 25, 54, 11, 57, 25, 56, 11, 59, 25, 58, 22, 1, 11, 25, 15, 0, 30, 0, 25, 60,
- 15, 60, 11, 4, 11, 61, 26, 15, 60, 11, 26, 11, 62, 26, 11, 64, 25, 63, 15, 30,
- 11, 65, 15, 63, 26, 15, 66, 11, 44, 11, 67, 26, 22, 1, 11, 25, 15, 0, 30, 0,
- 25, 68, 15, 68, 11, 4, 11, 69, 26, 15, 68, 11, 26, 11, 70, 26, 22, 1, 11, 25,
- 15, 68, 30, 0, 25, 71, 15, 71, 11, 72, 11, 73, 26, 11, 75, 25, 74, 15, 30, 11,
- 76, 15, 74, 26, 11, 78, 25, 77, 11, 80, 25, 79, 22, 1, 11, 25, 15, 68, 30, 0,
- 25, 81, 15, 81, 11, 72, 11, 82, 26, 11, 84, 25, 83, 15, 30, 11, 85, 15, 83, 26,
- 11, 87, 25, 86, 22, 1, 11, 25, 15, 68, 30, 0, 25, 88, 15, 88, 11, 72, 11, 89,
- 26, 11, 91, 25, 90, 15, 30, 11, 92, 15, 90, 26, 22, 1, 11, 25, 15, 0, 30, 0,
- 25, 93, 15, 93, 11, 26, 11, 94, 26, 11, 96, 25, 95, 15, 30, 11, 97, 15, 95, 26,
- 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 11,100, 15,101, 30, 0, 30, 1, 25, 98,
- 15, 98, 11, 26, 11,102, 26, 11,104, 25,103, 15, 30, 11,105, 15,103, 26, 22, 1,
- 11, 25, 15, 0, 30, 0, 25,106, 15,106, 11, 26, 11,107, 26, 11,109, 25,108, 15,
- 30, 11,110, 15,108, 26, 22, 1, 11, 25, 15,112, 30, 0, 25,111, 15,111, 11, 26,
- 11,113, 26, 11,115, 25,114, 15, 30, 11,116, 15,114, 26, 22, 2, 11, 25, 15, 0,
- 11, 99, 22, 1, 11,118, 15,101, 30, 0, 30, 1, 25,117, 15,117, 11, 26, 11,119,
- 26, 11,121, 25,120, 15, 30, 11,122, 15,120, 26, 22, 1, 11, 25, 15,124, 30, 0,
- 25,123, 15,123, 11, 26, 11,125, 26, 11,127, 25,126, 15, 30, 11,128, 15,126, 26,
- 22, 1, 11, 25, 15,124, 30, 0, 25,129, 15,129, 11, 26, 11,130, 26, 11,132, 25,
-131, 15, 30, 11,133, 15,131, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 2, 15,135,
- 29, 0, 1, 11,136, 15,101, 30, 0, 30, 1, 25,134, 15,134, 11, 26, 11,137, 26,
- 11,139, 25,138, 15, 30, 11,140, 15,138, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,
-141, 15,141, 11, 26, 11,142, 26, 11,144, 25,143, 15, 30, 11,145, 15,143, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,146, 15,146, 11, 44, 11,147, 26, 15,146, 11, 26,
- 11,148, 26, 11,150, 25,149, 15, 30, 11,151, 15,149, 26, 22, 1, 11, 25, 15, 0,
- 30, 0, 25,152, 15,152, 11, 44, 11,153, 26, 15,152, 11, 26, 11,154, 26, 11,156,
- 25,155, 15, 30, 11,157, 15,155, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,158, 15,
-158, 11, 44, 11,159, 26, 15,158, 11, 26, 11,160, 26, 11,162, 25,161, 15, 30, 11,
-163, 15,161, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,164, 15,164, 11, 44, 11,165,
- 26, 15,164, 11, 26, 11,166, 26, 11,168, 25,167, 15, 30, 11,169, 15,167, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,170, 15,170, 11, 26, 11,171, 26, 11,173, 25,172,
- 15, 30, 11,174, 15,172, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,175, 15,175, 11,
- 4, 11,176, 26, 15,175, 11, 26, 11,177, 26, 11,179, 25,178, 15, 30, 11,180, 15,
-178, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 15,182, 29, 0, 1, 30, 1, 25,
-181, 15,181, 11, 26, 11,183, 26, 11,185, 25,184, 15, 30, 11,186, 15,184, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,187, 15,187, 11, 26, 11,188, 26, 11,190, 25,189,
- 15, 30, 11,191, 15,189, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,192, 15,192, 11,
- 26, 11,193, 26, 15,192, 11, 8, 11,194, 26, 15,192, 11, 10, 11,195, 26, 11,197,
- 25,196, 15, 30, 11,198, 15,196, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,199, 15,
-199, 11, 4, 11,201, 26, 15,199, 11, 26, 11,202, 26, 11,204, 25,203, 15, 30, 11,
-205, 15,203, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,206, 15,206, 11, 26, 11,207,
- 26, 11,209, 25,208, 15, 30, 11,210, 15,208, 26, 22, 1, 11, 25, 15,200, 30, 0,
- 25,211, 15,211, 11, 26, 11,212, 26, 11,214, 25,213, 15, 30, 11,215, 15,213, 26,
- 22, 1, 11, 25, 15,200, 30, 0, 25,216, 15,216, 11, 26, 11,217, 26, 11,219, 25,
-218, 15, 30, 11,220, 15,218, 26, 22, 33, 11,222, 22, 2, 11,223, 4, 0, 29, 0,
- 2, 11,224, 22, 2, 11,225, 4, 0, 29, 0, 2, 11,226, 22, 2, 11,227, 15,228,
- 29, 0, 2, 11,229, 22, 2, 11,230, 15,231, 29, 0, 2, 11,232, 22, 2, 11,233,
- 15,234, 29, 0, 2, 11,235, 22, 2, 11,236, 15,237, 29, 0, 2, 11,238, 22, 2,
- 11,239, 15,240, 29, 0, 2, 11,241, 22, 2, 11,242, 15,243, 29, 0, 2, 11,244,
- 22, 2, 11,245, 15,246, 29, 0, 2, 11,247, 22, 2, 11,248, 15,249, 29, 0, 2,
- 11,250, 22, 2, 11,251, 15,252, 29, 0, 2, 11,253, 22, 2, 11,254, 15,255, 29,
- 0, 2, 10, 1, 0, 22, 2, 10, 1, 1, 14, 1, 2, 29, 0, 2, 10, 1, 3, 22,
- 2, 10, 1, 4, 14, 1, 5, 29, 0, 2, 10, 1, 6, 22, 2, 10, 1, 7, 14, 1,
- 8, 29, 0, 2, 10, 1, 9, 22, 2, 10, 1, 10, 14, 1, 11, 29, 0, 2, 10, 1,
- 12, 22, 2, 10, 1, 13, 14, 1, 14, 29, 0, 2, 10, 1, 15, 22, 2, 10, 1, 16,
- 14, 1, 17, 29, 0, 2, 10, 1, 18, 22, 2, 10, 1, 19, 14, 1, 20, 29, 0, 2,
- 10, 1, 21, 22, 2, 10, 1, 22, 14, 1, 23, 29, 0, 2, 10, 1, 24, 22, 2, 10,
- 1, 25, 14, 1, 26, 29, 0, 2, 11,105, 22, 2, 10, 1, 27, 14, 1, 28, 29, 0,
- 2, 10, 1, 29, 22, 2, 10, 1, 30, 14, 1, 31, 29, 0, 2, 10, 1, 32, 22, 2,
- 10, 1, 30, 14, 1, 33, 29, 0, 2, 10, 1, 34, 22, 2, 10, 1, 35, 14, 1, 36,
- 29, 0, 2, 10, 1, 37, 22, 2, 10, 1, 38, 14, 1, 39, 29, 0, 2, 10, 1, 40,
- 22, 2, 10, 1, 41, 14, 1, 42, 29, 0, 2, 10, 1, 43, 22, 2, 10, 1, 44, 14,
- 1, 45, 29, 0, 2, 10, 1, 46, 22, 2, 10, 1, 47, 14, 1, 48, 29, 0, 2, 10,
- 1, 49, 22, 2, 10, 1, 50, 14, 1, 51, 29, 0, 2, 10, 1, 52, 22, 2, 10, 1,
- 53, 14, 1, 54, 29, 0, 2, 10, 1, 55, 22, 2, 10, 1, 56, 14, 1, 57, 29, 0,
- 2, 30, 31, 10, 1, 58, 22, 2, 10, 1, 59, 14, 1, 60, 29, 0, 2, 30, 0, 25,
-221, 15,221, 18,222, 11,128, 14, 1, 61, 26, 15,221, 18,222, 11,116, 14, 1, 62,
- 26, 15,221, 18,222, 11,110, 14, 1, 62, 26, 15,221, 18,222, 11,105, 14, 1, 63,
- 26, 15,221, 18,222, 11,198, 14, 1, 64, 26, 15,221, 18,222, 11,133, 14, 1, 63,
- 26, 15,221, 18,222, 11,191, 14, 1, 65, 26, 15,221, 18,224, 11, 31, 14, 1, 66,
- 26, 15,221, 10, 1, 67, 15,221, 18,224, 26, 15,221, 10, 1, 68, 15,221, 18,226,
- 26, 15,221, 10, 1, 69, 15,221, 18,229, 26, 15,221, 10, 1, 70, 15,221, 18,232,
- 26, 15,221, 11,235, 15,221, 18,235, 26, 15,221, 10, 1, 71, 15,221, 18,238, 26,
- 15,221, 10, 1, 72, 15,221, 18,241, 26, 15,221, 10, 1, 73, 15,221, 18,244, 26,
- 15,221, 10, 1, 74, 15,221, 18,247, 26, 15,221, 10, 1, 75, 15,221, 18,250, 26,
- 15,221, 10, 1, 76, 15,221, 18,253, 26, 15,221, 10, 1, 77, 15,221, 17, 1, 0,
- 26, 15,221, 10, 1, 78, 15,221, 17, 1, 3, 26, 15,221, 10, 1, 79, 15,221, 17,
- 1, 6, 26, 15,221, 10, 1, 80, 15,221, 17, 1, 9, 26, 15,221, 10, 1, 81, 15,
-221, 17, 1, 12, 26, 15,221, 10, 1, 82, 15,221, 17, 1, 15, 26, 15,221, 10, 1,
- 83, 15,221, 17, 1, 18, 26, 15,221, 10, 1, 84, 15,221, 17, 1, 21, 26, 15,221,
- 10, 1, 85, 15,221, 17, 1, 24, 26, 15,221, 10, 1, 86, 15,221, 18,105, 26, 15,
-221, 10, 1, 87, 15,221, 17, 1, 29, 26, 15,221, 10, 1, 88, 15,221, 17, 1, 32,
- 26, 15,221, 10, 1, 89, 15,221, 17, 1, 34, 26, 15,221, 10, 1, 90, 15,221, 17,
- 1, 37, 26, 15,221, 10, 1, 91, 15,221, 17, 1, 40, 26, 15,221, 10, 1, 92, 15,
-221, 17, 1, 43, 26, 15,221, 10, 1, 93, 15,221, 17, 1, 46, 26, 15,221, 10, 1,
- 94, 15,221, 17, 1, 52, 26, 15,221, 10, 1, 95, 15,221, 17, 1, 49, 26, 15,221,
- 10, 1, 96, 15,221, 17, 1, 55, 26, 15,221, 10, 1, 97, 15,221, 17, 1, 58, 26,
- 15,221, 10, 1, 98, 15,221, 17, 1, 99, 26, 0, 0, 0, 0, 0, 0, 0, 1,100,
- 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 5,116,121,112,
-101, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 4,
- 0, 0, 0, 12, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 57, 7, 2, 13, 1, 11, 1, 13, 0,
- 26, 13, 0, 20, 3, 13, 1, 2, 0, 2, 13, 1, 11, 4, 13, 0, 20, 5, 13, 1,
- 2, 1, 2, 26, 13, 0, 20, 6, 13, 1, 2, 0, 2, 15, 7, 13, 1, 18, 4, 13,
- 1, 26, 13, 1, 18, 4, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, 99,104,101, 99,107, 80, 97,
-114, 97,109,115, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0,
- 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 2,
- 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117,116,101,115, 0, 2, 0,
- 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 12,
- 99,104,101, 99,107, 80, 97,114, 97,109,115, 0, 4, 0, 0, 0, 32, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 61, 8, 2, 13, 0, 18, 1, 15, 5, 13, 2, 4, 0, 2, 2, 2,
- 50, 39, 13, 4, 13, 1, 13, 3, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13,
- 3, 42, 11, 8, 42, 2, 0, 1, 15, 5, 13, 2, 13, 3, 2, 2, 2, 23, 4, 23,
- 3, 13, 3, 54, 43, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 2, 0, 0, 0, 6,112, 97,114, 97,109, 0, 2, 0, 0, 0, 5,102,
-117,110, 99, 0, 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,101,
-114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32,
- 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,
-117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,
-105,122,101,100, 0, 2, 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117,
-116,101,115, 0, 4, 0, 0, 0, 43, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 80, 9, 2, 22,
- 0, 15, 3, 13, 1, 4, 0, 2, 1, 2, 50, 18, 13, 2, 13, 3, 7, 1, 26, 15,
- 3, 13, 1, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 22, 15, 3, 13, 2, 4, 0,
- 2, 1, 2, 23, 3, 50, 25, 13, 1, 20, 4, 13, 3, 13, 1, 13, 3, 16, 2, 0,
- 3, 15, 3, 13, 2, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 29, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 5,116,
-101,109,112, 0, 2, 0, 0, 0, 2,102, 0, 2, 0, 0, 0, 5,110,101,120,116,
- 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, 0, 0, 0, 4,103,101,116, 0, 4,
- 0, 0, 0, 57, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 82, 6, 2, 15, 1, 13, 1, 2, 1,
- 1, 52, 63, 15, 2, 13, 1, 16, 52, 9, 13, 0, 13, 1, 16, 1, 2, 50, 47, 15,
- 5, 13, 1, 2, 1, 1, 15, 7, 13, 0, 18, 8, 13, 2, 2, 1, 2, 13, 3, 52,
- 23, 15, 9, 13, 3, 2, 1, 1, 13, 4, 52, 6, 13, 4, 1, 5, 50, 4, 13, 3,
- 1, 5, 5, 1, 5, 2, 13, 0, 13, 1, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 10, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 12,116,121,
-112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99,
- 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2,
- 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115,116,114,117,112,
-112,101,114, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 16,
- 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0,
- 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,101,116, 72,
- 97,110,100,108,101, 0, 2, 0, 0, 0, 4,115,101,116, 0, 4, 0, 0, 0, 77,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0,228, 11, 3, 15, 2, 13, 1, 2, 1, 1, 52,209, 15,
- 4, 13, 1, 2, 1, 1, 15, 6, 13, 1, 16, 13, 1, 11, 7, 32, 48, 12, 15, 8,
- 13, 0, 18, 10, 2, 1, 1, 11, 11, 32, 52, 4, 4, 0, 23, 4, 13, 4, 52, 55,
- 13, 4, 7, 2, 16, 13, 5, 44, 52, 14, 13, 4, 15, 8, 13, 0, 18, 10, 2, 1,
- 1, 16, 23, 5, 15, 13, 13, 0, 18, 10, 13, 4, 7, 1, 16, 13, 5, 13, 2, 2,
- 0, 4, 13, 0, 13, 1, 13, 2, 26, 1, 6, 5, 1, 50,111, 15, 2, 13, 2, 2,
- 1, 1, 46, 7, 15, 14, 13, 2, 2, 1, 1, 52, 17, 15, 15, 13, 0, 18, 10, 13,
- 3, 13, 2, 2, 0, 3, 1, 5, 50, 76, 15, 16, 13, 2, 2, 1, 1, 52, 34, 15,
- 18, 13, 0, 18, 10, 13, 3, 2, 1, 2, 13, 5, 52, 15, 15, 15, 13, 0, 18, 10,
- 13, 3, 13, 2, 2, 0, 3, 1, 6, 5, 1, 50, 33, 15, 19, 13, 2, 2, 1, 1,
- 52, 24, 15, 20, 13, 2, 2, 0, 1, 15, 15, 13, 0, 18, 10, 13, 3, 13, 2, 18,
- 21, 2, 0, 3, 1, 5, 5, 2, 13, 0, 13, 1, 13, 2, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 22, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 6,
-118, 97,108,117,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,
-110,103, 0, 2, 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115,
-116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 3, 99, 98, 0, 2, 0, 0, 0,
- 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 7,
-114,101,115,105,122,101, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 67,108,
- 97,115,115, 78, 97,109,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0,
- 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,
-103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, 0, 15,105,117,112,
- 83,101,116, 67, 97,108,108, 98, 97, 99,107, 0, 2, 0, 0, 0, 12,116,121,112,
-101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116,
- 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,116,121,112,101, 95,
-110,105,108, 0, 2, 0, 0, 0, 10,111,108,100, 95,118, 97,108,117,101, 0, 2,
- 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0,
- 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0,
- 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 9, 73, 85,
- 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,
-121, 0, 4, 0, 0, 0,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 89, 6, 1, 7, 1, 13,
- 0, 13, 1, 16, 50, 66, 15, 3, 13, 2, 2, 1, 1, 48, 4, 13, 2, 18, 4, 52,
- 37, 13, 2, 18, 4, 13, 0, 32, 52, 16, 13, 2, 11, 4, 4, 0, 26, 13, 2, 20,
- 5, 2, 0, 1, 50, 12, 15, 6, 11, 7, 2, 0, 1, 15, 8, 2, 0, 0, 13, 1,
- 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 23, 2, 13, 2, 54, 70, 15, 9, 13, 0,
- 4, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 2,105, 0, 2,
- 0, 0, 0, 5,101,108,101,109, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2,
- 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0,
- 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 10,114, 95,100,
-101,115,116,114,111,121, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0,
- 0, 0, 29, 73,110,116,101,114,110, 97,108, 32,116, 97, 98,108,101, 32,105,110,
- 99,111,110,115,105,115,116,101,110, 99,121, 0, 2, 0, 0, 0, 5,101,120,105,
-116, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2,
- 0, 0, 0, 8,100,101,115,116,114,111,121, 0, 4, 0, 0, 0,133, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 17, 3, 1, 13, 0, 20, 1, 2, 0, 1, 15, 2, 13, 0, 2, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,121, 0, 2, 0, 0, 0, 11,
- 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 7,100,101,116, 97,
- 99,104, 0, 4, 0, 0, 0,138, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 96, 8, 1, 15, 0,
- 13, 0, 2, 0, 1, 13, 0, 18, 3, 13, 1, 52, 78, 13, 0, 11, 3, 4, 0, 26,
- 7, 1, 50, 58, 13, 1, 13, 2, 16, 13, 0, 32, 52, 41, 50, 20, 13, 1, 13, 2,
- 13, 1, 13, 2, 7, 1, 37, 16, 26, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2,
- 7, 1, 37, 16, 54, 30, 13, 1, 13, 2, 4, 0, 26, 1, 3, 13, 2, 7, 1, 37,
- 23, 2, 13, 1, 13, 2, 16, 54, 65, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5,
- 2, 0, 0, 0, 10, 73,117,112, 68,101,116, 97, 99,104, 0, 2, 0, 0, 0, 5,
-115,101,108,102, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0,
- 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 2,105, 0,
- 2, 0, 0, 0, 7, 97,112,112,101,110,100, 0, 4, 0, 0, 0,158, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 75, 6, 2, 15, 1, 13, 0, 13, 1, 2, 1, 2, 52, 57, 13, 1,
- 11, 3, 13, 0, 26, 7, 1, 50, 21, 13, 0, 13, 2, 16, 13, 1, 32, 52, 4, 13,
- 2, 1, 3, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 28, 15, 5, 13,
- 0, 16, 13, 2, 13, 1, 26, 13, 2, 1, 3, 5, 1, 50, 4, 4, 0, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10,
- 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 2,105, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0,
- 2, 0, 0, 0, 4,109, 97,112, 0, 4, 0, 0, 0,175, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2,
- 2, 0, 0, 0, 7, 73,117,112, 77, 97,112, 0, 2, 0, 0, 0, 5,115,101,108,
-102, 0, 2, 0, 0, 0, 5,104,105,100,101, 0, 4, 0, 0, 0,179, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 72,105,100,101, 0, 2, 0, 0, 0,
- 5,115,101,108,102, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 17, 67,114,101,
- 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0,187, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112,
- 67,114,101, 97,116,101, 84,105,109,101,114, 0, 2, 0, 0, 0, 9,105,117,112,
-116,105,109,101,114, 0, 4, 0, 0, 0,191, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,116,105,109,101,114, 0, 2, 0, 0,
- 0, 13, 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 4, 0, 0, 0,200,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,105,117,
-112, 67,114,101, 97,116,101, 67,108,105,112, 98,111, 97,114,100, 0, 2, 0, 0,
- 0, 13,105,117,112, 99,108,105,112, 98,111, 97,114,100, 0, 4, 0, 0, 0,204,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 13,
- 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10, 99,108,105,112, 98,
-111, 97,114,100, 0, 2, 0, 0, 0, 10, 73, 85, 80, 68, 73, 65, 76, 79, 71, 0,
- 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0,
- 0,213, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2,
- 1, 1, 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104,
- 97,110,100,108,101, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101,
- 68,105, 97,108,111,103, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 4, 0, 0, 0,219, 0, 0,
- 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117,
- 97, 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 83,104,111,119, 0, 2, 0, 0,
- 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,115,104,111,119,120,121, 0, 4,
- 0, 0, 0,223, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1,
- 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120,
- 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 10, 73,117,112, 83,104,111,119,
- 88, 89, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 6,112,111,
-112,117,112, 0, 4, 0, 0, 0,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15,
- 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,
- 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,
-112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0,
- 0, 10,105,117,112,100,105, 97,108,111,103, 0, 4, 0, 0, 0,231, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80,
- 68, 73, 65, 76, 79, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,
-116,111,114, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,103, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 82, 65, 68, 73, 79, 0, 4, 0, 0, 0,240, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, 13, 1, 7, 1, 16,
- 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0,
- 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2,
- 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 82, 97,100,105,111, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9,
-105,117,112,114, 97,100,105,111, 0, 4, 0, 0, 0,246, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 26, 5, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 15, 4, 13, 1, 7, 1, 16,
- 2, 0, 1, 13, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 9,
- 73, 85, 80, 82, 65, 68, 73, 79, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,
-117, 99,116,111,114, 0, 2, 0, 0, 0, 23,105,117,112, 67,114,101, 97,116,101,
- 67,104,105,108,100,114,101,110, 78, 97,109,101,115, 0, 2, 0, 0, 0, 6,114,
- 97,100,105,111, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115,
- 0, 4, 0, 0, 0,254, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,156, 11, 1, 22, 0, 7, 1,
- 50, 61, 15, 3, 13, 0, 13, 2, 16, 2, 1, 1, 52, 29, 13, 1, 13, 2, 15, 4,
- 22, 2, 11, 5, 13, 0, 13, 2, 16, 11, 6, 13, 0, 18, 6, 30, 1, 2, 1, 1,
- 26, 50, 13, 15, 7, 11, 8, 13, 2, 42, 11, 9, 42, 2, 0, 1, 13, 2, 7, 1,
- 37, 23, 2, 13, 0, 13, 2, 16, 54, 68, 13, 0, 18, 10, 52, 51, 7, 1, 50, 7,
- 13, 3, 7, 1, 37, 23, 3, 13, 0, 13, 3, 16, 48, 10, 13, 0, 13, 3, 16, 13,
- 0, 18, 10, 31, 54, 26, 13, 0, 13, 3, 16, 52, 10, 13, 1, 11, 10, 13, 1, 13,
- 3, 16, 26, 5, 1, 50, 18, 13, 0, 18, 12, 52, 12, 13, 1, 11, 10, 13, 1, 13,
- 0, 18, 12, 16, 26, 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0,
- 0, 0, 2,104, 0, 2, 0, 0, 0, 4,116,109,112, 0, 2, 0, 0, 0, 2,105,
- 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0,
- 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,
-116,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0,
- 6,101,114,114,111,114, 0, 2, 0, 0, 0, 8,111,112,116,105,111,110, 32, 0,
- 2, 0, 0, 0, 18, 32,109,117,115,116, 32, 98,101, 32, 97, 32,115,116,114,105,
-110,103, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 2,106,
- 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 9,101,100,
-104,114, 97,100,105,111, 0, 4, 0, 0, 1, 26, 0, 0, 0, 20, 64,105,117,112,
-108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 35,
- 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, 2, 1, 1,
- 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,103,103,108,
-101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, 0, 2,
- 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, 7,101,100,
-104, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0,
- 9,101,100,118,114, 97,100,105,111, 0, 4, 0, 0, 1, 32, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 35, 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1,
- 2, 1, 1, 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,
-103,103,108,101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,
-115, 0, 2, 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0,
- 7,101,100,118, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, 85, 0, 4, 0, 0, 1, 41, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0,159, 7, 2, 7, 1, 50,145, 13, 1, 13, 2, 16, 15, 3, 13, 3,
- 2, 1, 1, 44, 52,121, 15, 4, 13, 3, 2, 1, 1, 11, 5, 31, 52, 15, 15, 6,
- 11, 7, 13, 2, 42, 11, 8, 42, 2, 0, 1, 50, 94, 13, 3, 7, 1, 16, 48, 11,
- 15, 9, 13, 3, 7, 1, 16, 2, 1, 1, 44, 52, 15, 15, 6, 11, 7, 13, 2, 42,
- 11, 10, 42, 2, 0, 1, 50, 59, 13, 3, 7, 2, 16, 48, 11, 15, 9, 13, 3, 7,
- 2, 16, 2, 1, 1, 44, 48, 11, 15, 11, 13, 3, 7, 2, 16, 2, 1, 1, 44, 48,
- 11, 15, 12, 13, 3, 7, 2, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, 2,
- 42, 11, 13, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2,
- 16, 54,152, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10,
-116,121,112,101, 95,105,116,101,109, 0, 2, 0, 0, 0, 5,116,121,112,101, 0,
- 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,
-114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, 2, 0,
- 0, 0, 32, 32,105,115, 32,110,111,116, 32, 97, 32,116, 97, 98,108,101, 32,110,
-111,114, 32, 97, 32,109,101,110,117, 32,105,116,101,109, 0, 2, 0, 0, 0, 12,
-116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 30, 32,100,111,
-101,115, 32,110,111,116, 32,104, 97,118,101, 32, 97, 32,115,116,114,105,110,103,
- 32,116,105,116,108,101, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110,
- 99,116,105,111,110, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,
-101,116, 0, 2, 0, 0, 0, 36, 32,100,111,101,115, 32,110,111,116, 32,104, 97,
-118,101, 32, 97,110, 32, 97, 99,116,105,111,110, 32,110,111,114, 32, 97, 32,109,
-101,110,117, 0, 4, 0, 0, 1, 59, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,189, 10, 2, 15,
- 2, 2, 1, 0, 7, 1, 50,166, 13, 1, 13, 3, 16, 4, 0, 15, 6, 13, 4, 2,
- 1, 1, 52, 6, 13, 4, 23, 5, 50,112, 13, 4, 7, 1, 16, 44, 52, 11, 15, 7,
- 22, 0, 2, 1, 1, 23, 5, 50, 93, 15, 6, 13, 4, 7, 2, 16, 2, 1, 1, 52,
- 38, 13, 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 7, 1, 13, 4, 7, 2, 16,
- 26, 13, 4, 7, 2, 4, 0, 26, 15, 9, 13, 4, 2, 1, 1, 23, 5, 50, 43, 13,
- 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 11, 10, 13, 4, 7, 2, 16, 26, 13,
- 4, 7, 1, 4, 0, 26, 13, 4, 7, 2, 4, 0, 26, 15, 11, 13, 4, 2, 1, 1,
- 23, 5, 15, 12, 13, 2, 13, 5, 2, 0, 2, 13, 5, 11, 13, 13, 2, 26, 13, 1,
- 13, 3, 13, 5, 26, 13, 3, 7, 1, 37, 23, 3, 5, 2, 13, 1, 13, 3, 16, 54,
-173, 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 14,
-105,117,112, 67,114,101, 97,116,101, 77,101,110,117, 0, 2, 0, 0, 0, 2,105,
- 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,101,108,101,109, 0, 2, 0,
- 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 13,
-105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 6,116,105,
-116,108,101, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0,
- 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,105,117,112,
-105,116,101,109, 0, 2, 0, 0, 0, 10, 73,117,112, 65,112,112,101,110,100, 0,
- 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 8,105,117,112,109,101,110,117, 0, 4, 0, 0, 1, 89, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78,
- 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2,
- 0, 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78,
- 85, 0, 4, 0, 0, 1, 94, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13,
- 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0,
- 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, 80,
-111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12,
- 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 4, 0, 0, 1,102, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, 2, 13, 1, 13, 2, 16, 2, 1,
- 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, 5, 42, 2, 0, 1, 13, 2, 7,
- 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, 0, 0, 0, 0, 0, 0, 0, 6,
- 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0,
- 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 6,101,114,
-114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0,
- 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,
-101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,
-122,101,100, 0, 4, 0, 0, 1,112, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,187, 11, 2, 13,
- 0, 20, 3, 2, 1, 1, 13, 1, 18, 4, 7, 1, 7, 0, 50, 14, 13, 5, 7, 1,
- 37, 23, 5, 13, 4, 7, 1, 37, 23, 4, 13, 1, 13, 4, 16, 54, 21, 7, 1, 23,
- 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, 2,
- 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, 1,
- 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 50, 79, 15, 9, 13, 2, 13, 1, 13,
- 4, 16, 2, 0, 2, 13, 1, 13, 4, 16, 11, 10, 13, 2, 26, 13, 4, 7, 1, 37,
- 23, 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0,
- 2, 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13,
- 1, 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 13, 4, 13, 5, 34, 54, 86, 13,
- 2, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,
-109,101,110,116, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0,
- 0, 2,105, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95,
- 89, 69, 83, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0,
- 0, 10, 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 11, 73, 85, 80,
- 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88,
- 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,109,101,
-110,116, 0, 4, 0, 0, 1,146, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0,
- 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112,
- 67,114,101, 97,116,101, 72, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,104,
- 98,111,120, 0, 4, 0, 0, 1,150, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15,
- 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0, 2, 0, 0,
- 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,104,
- 98,111,120, 0, 2, 0, 0, 0, 7,101,100,104, 98,111,120, 0, 4, 0, 0, 1,
-156, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3,
- 20, 4, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8,
- 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88,
- 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0,
- 0, 0, 8,101,100,102,105,101,108,100, 0, 4, 0, 0, 1,162, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0,123, 7, 1, 4, 1, 15, 3, 13, 0, 18, 4, 2, 1, 1, 46, 9, 15,
- 5, 13, 0, 18, 4, 2, 1, 1, 52, 19, 15, 6, 22, 1, 11, 7, 13, 0, 18, 4,
- 30, 0, 2, 1, 1, 23, 1, 50, 7, 15, 8, 11, 9, 2, 0, 1, 13, 0, 18, 10,
- 52, 19, 15, 11, 22, 1, 11, 10, 13, 0, 18, 10, 30, 0, 2, 1, 1, 23, 2, 50,
- 17, 15, 11, 22, 1, 11, 10, 13, 0, 18, 12, 30, 0, 2, 1, 1, 23, 2, 13, 2,
- 48, 2, 13, 1, 52, 16, 15, 13, 22, 2, 13, 1, 13, 2, 29, 0, 2, 3, 3, 1,
- 50, 4, 4, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 2,
-102, 0, 2, 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0,
- 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 7,112,114,
-111,109,112,116, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,110,117,109, 98,101,
-114, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0,
- 6,116,105,116,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0,
- 0, 0, 55,112, 97,114, 97,109,101,116,101,114, 32,112,114,111,109,112,116, 32,
-104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,
-115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,122,101,100, 0, 2, 0,
- 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8,105,117,112,116,101,120,
-116, 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 7,101,
-100,104, 98,111,120, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 4,
- 0, 0, 1,185, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,
-116,101, 86, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0,
- 4, 0, 0, 1,189, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,118, 98,111,120, 0,
- 2, 0, 0, 0, 7,101,100,118, 98,111,120, 0, 4, 0, 0, 1,195, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, 20, 4, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95,
- 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0,
- 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8, 73,
- 85, 80, 90, 66, 79, 88, 0, 4, 0, 0, 1,204, 0, 0, 0, 20, 64,105,117,112,
-108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8,
- 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0,
- 14,105,117,112, 67,114,101, 97,116,101, 90, 98,111,120, 0, 2, 0, 0, 0, 8,
-105,117,112,122, 98,111,120, 0, 4, 0, 0, 1,208, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 44, 6, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 7, 1, 50, 17, 15, 5, 13, 1,
- 13, 2, 16, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 24,
- 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 8, 73,
- 85, 80, 90, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,
-116,111,114, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11,105,117,112, 83,
-101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 5,122, 98,111,120, 0, 2, 0, 0,
- 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 4, 0, 0, 1,223, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
- 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,
-116,101, 70,105,108,108, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0,
- 4, 0, 0, 1,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,102,105,108,108, 0,
- 2, 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 5,
-116,121,112,101, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0,
- 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 4, 0, 0, 1,236, 0, 0,
- 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117,
- 97, 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52,
- 7, 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,
-116,105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0,
- 0, 1, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 66,117,116,
-116,111,110, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 4,
- 0, 0, 1,243, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 98,117,116,116,
-111,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, 1,
-252, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,
-117,112, 67,114,101, 97,116,101, 84,101,120,116, 0, 2, 0, 0, 0, 8,105,117,
-112,116,101,120,116, 0, 4, 0, 0, 2, 0, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 2,
- 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0,
- 5,116,101,120,116, 0, 2, 0, 0, 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76,
- 73, 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0,
- 2, 9, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,
-105,117,112, 67,114,101, 97,116,101, 77,117,108,116,105, 76,105,110,101, 0, 2,
- 0, 0, 0, 13,105,117,112,109,117,108,116,105,108,105,110,101, 0, 4, 0, 0,
- 2, 13, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0,
- 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, 73, 78, 69, 0, 2, 0, 0, 0, 12,
- 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,109,117,108,
-116,105,108,105,110,101, 0, 2, 0, 0, 0, 9, 73, 85, 80, 76, 65, 66, 69, 76,
- 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 2, 22, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, 7,
- 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,116,
-105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, 0,
- 1, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 76, 97, 98,101,
-108, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 4, 0, 0, 2,
- 29, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 76, 65, 66, 69, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,
-114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,108, 97, 98,101,108, 0, 2, 0,
- 0, 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 10, 73, 85,
- 80, 66, 85, 84, 84, 79, 78, 0, 4, 0, 0, 2, 38, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,
-101, 97,116,101, 84,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,116,108,
-101, 0, 2, 0, 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 4, 0, 0,
- 2, 42, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0,
- 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7,116,111,103,103,108,101,
- 0, 2, 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 4, 0, 0, 2, 51, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 14,105,117,112, 67,114,101, 97,116,101, 73,116,101,109, 0, 2, 0, 0, 0, 6,
-116,105,116,108,101, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 4,
- 0, 0, 2, 55, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,
-116,121,112,101, 95,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,101,
- 0, 4, 0, 0, 2, 64, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 31, 6, 2, 15, 2, 13, 1,
- 18, 3, 13, 1, 7, 1, 16, 2, 1, 2, 13, 1, 7, 1, 16, 11, 4, 13, 2, 26,
- 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 2,104, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101,
- 97,116,101, 83,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,
-101, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, 4, 0, 0, 2, 70, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,
-114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,117, 98,109,101,110,117, 0,
- 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 4, 0,
- 0, 2, 79, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 19,105,117,112, 67,114,101, 97,116,101, 83,101,112, 97,114, 97,116,111,114, 0,
- 2, 0, 0, 0, 13,105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 4, 0,
- 0, 2, 83, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, 0, 0, 0,
- 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,115,101,
-112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69,
- 68, 76, 71, 0, 4, 0, 0, 2, 92, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15,
- 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,
- 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,
-112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0,
- 2, 96, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101,
- 70,105,108,101, 68,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101,
-100,108,103, 0, 4, 0, 0, 2,100, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15,
- 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, 68, 76, 71, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 14, 73, 85, 80, 77, 69,
- 83, 83, 65, 71, 69, 68, 76, 71, 0, 4, 0, 0, 2,109, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0,
- 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,
-102, 0, 4, 0, 0, 2,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 20,105,117,112, 67,
-114,101, 97,116,101, 77,101,115,115, 97,103,101, 68,108,103, 0, 2, 0, 0, 0,
- 14,105,117,112,109,101,115,115, 97,103,101,100,108,103, 0, 4, 0, 0, 2,117,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 14,
- 73, 85, 80, 77, 69, 83, 83, 65, 71, 69, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,109,101,115,115,
- 97,103,101,100,108,103, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82,
- 68, 76, 71, 0, 4, 0, 0, 2,126, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15,
- 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,
- 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,
-112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0,
- 2,130, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101,
- 67,111,108,111,114, 68,108,103, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108,
-111,114,100,108,103, 0, 4, 0, 0, 2,134, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 68,
- 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 9, 99,111,108,111,114,100,108,103, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 70, 79, 78, 84, 68, 76, 71, 0, 4, 0, 0, 2,143, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2,
- 0, 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 4, 0, 0, 2,147, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0,
- 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112,
- 67,114,101, 97,116,101, 70,111,110,116, 68,108,103, 0, 2, 0, 0, 0, 11,105,
-117,112,102,111,110,116,100,108,103, 0, 4, 0, 0, 2,151, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 79,
- 78, 84, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,
-111,114, 0, 2, 0, 0, 0, 8,102,111,110,116,100,108,103, 0, 2, 0, 0, 0,
- 8, 73, 85, 80, 85, 83, 69, 82, 0, 4, 0, 0, 2,160, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0,
- 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 85,115,101,114, 0, 2, 0, 0,
- 0, 8,105,117,112,117,115,101,114, 0, 4, 0, 0, 2,164, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 10, 2, 0, 15, 0, 20, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 0, 0, 0, 8, 73, 85, 80, 85, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,117,115,101,114,
- 0, 2, 0, 0, 0, 14, 73, 85, 80, 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0,
- 4, 0, 0, 2,173, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15,
- 2, 13, 1, 13, 2, 16, 2, 1, 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11,
- 5, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0,
- 0, 2,105, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116,
- 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114,
- 97,109,101,116,101,114, 32, 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,
-111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,
-105,110,105,116,105, 97,108,105,122,101,100, 0, 4, 0, 0, 2,183, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 40, 8, 2, 15, 2, 2, 1, 0, 7, 1, 50, 17, 13, 2, 11, 4,
- 13, 1, 13, 3, 16, 26, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 3, 16, 54, 24,
- 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 20,105,
-117,112, 67,114,101, 97,116,101, 78,111,114,109, 97,108,105,122,101,114, 0, 2,
- 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11, 97,100,100, 99,111,110,116,114,111,
-108, 0, 2, 0, 0, 0, 14,105,117,112,110,111,114,109, 97,108,105,122,101,114,
- 0, 4, 0, 0, 2,193, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 10, 2, 0, 15, 0, 20, 1,
- 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 14, 73, 85, 80,
- 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,
-116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,110,111,114,109, 97,108,105,
-122,101,114, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, 2, 0,
- 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 2,202,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1,
- 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,104, 0, 2,
- 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 70,114, 97,109,101, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9,
-105,117,112,102,114, 97,109,101, 0, 4, 0, 0, 2,208, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65,
- 77, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 6,102,114, 97,109,101, 0, 2, 0, 0, 0, 10, 73, 85, 80, 67,
- 65, 78, 86, 65, 83, 0, 4, 0, 0, 2,217, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3,
- 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 67, 97,
-110,118, 97,115, 0, 2, 0, 0, 0, 10,105,117,112, 99, 97,110,118, 97,115, 0,
- 4, 0, 0, 2,221, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 10, 73, 85, 80, 67, 65, 78, 86, 65, 83, 0, 2, 0, 0, 0, 12,
- 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 99, 97,110,
-118, 97,115, 0, 2, 0, 0, 0, 8, 73, 85, 80, 76, 73, 83, 84, 0, 4, 0, 0,
- 2,230, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,
-105,117,112, 67,114,101, 97,116,101, 76,105,115,116, 0, 4, 0, 0, 2,234, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 42, 6, 2, 15, 1, 13, 1, 2, 1, 1, 11, 2, 32, 52,
- 16, 15, 3, 13, 0, 18, 5, 11, 6, 13, 1, 42, 3, 2, 2, 50, 11, 15, 7, 18,
- 8, 13, 0, 13, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0,
- 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0,
- 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,
-116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102,
- 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2,
- 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,103,101,116, 0,
- 4, 0, 0, 2,242, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 90, 8, 3, 15, 2, 13, 1, 2,
- 1, 1, 11, 3, 32, 52, 62, 15, 4, 13, 2, 2, 1, 1, 46, 7, 15, 5, 13, 2,
- 2, 1, 1, 52, 21, 15, 6, 13, 0, 18, 8, 11, 9, 13, 1, 42, 11, 9, 13, 2,
- 42, 3, 3, 3, 50, 23, 13, 2, 4, 0, 32, 52, 16, 15, 6, 13, 0, 18, 8, 11,
- 9, 13, 1, 42, 13, 2, 3, 3, 3, 15, 10, 18, 11, 13, 0, 13, 1, 13, 2, 3,
- 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 6,105,110,100,101,
-120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 5,116,121,
-112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 12,
-116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 12,116,121,112,
-101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116,
- 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, 0,
- 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,115,101,116, 0, 2,
- 0, 0, 0, 8,105,117,112,108,105,115,116, 0, 4, 0, 0, 2,253, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 76, 73, 83, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 5,108,105,115,116, 0, 2, 0, 0, 0, 9, 73, 85, 80,
- 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 4, 0,
- 0, 3, 6, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0,116, 8, 2, 7, 1, 50, 92, 7, 1, 50,
- 32, 15, 3, 13, 1, 13, 2, 16, 13, 3, 16, 2, 1, 1, 11, 4, 31, 52, 7, 15,
- 5, 11, 6, 2, 0, 1, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 2, 16, 13, 3,
- 16, 54, 42, 13, 1, 18, 7, 48, 10, 13, 3, 7, 1, 38, 13, 1, 18, 7, 31, 52,
- 9, 15, 5, 11, 8, 2, 0, 1, 50, 10, 13, 1, 11, 7, 13, 3, 7, 1, 38, 26,
- 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, 16, 54, 99, 13, 1, 11, 9,
- 13, 2, 7, 1, 38, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,106, 0, 2, 0,
- 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0,
- 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 38,110,111,110, 45,
-110,117,109,101,114,105, 99, 32,118, 97,108,117,101, 32,105,110, 32,105,109, 97,
-103,101, 32,100,101,102,105,110,105,116,105,111,110, 0, 2, 0, 0, 0, 6,119,
-105,100,116,104, 0, 2, 0, 0, 0, 26,105,110, 99,111,110,115,105,115,116,101,
-110,116, 32,105,109, 97,103,101, 32,108,101,110,103,104,116, 0, 2, 0, 0, 0,
- 7,104,101,105,103,104,116, 0, 4, 0, 0, 3, 29, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 74, 9, 2, 15, 2, 13, 1, 18, 3, 13, 1, 18, 4, 13, 1, 2, 1, 3, 15, 5,
- 13, 1, 18, 6, 2, 1, 1, 11, 7, 32, 52, 38, 7, 1, 50, 23, 15, 9, 13, 2,
- 13, 3, 13, 1, 18, 6, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 37, 23, 3, 13,
- 1, 18, 6, 13, 3, 16, 54, 32, 5, 1, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 10, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,
-100,108,101, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 73,109,
- 97,103,101, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 7,
-104,101,105,103,104,116, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0,
- 0, 7, 99,111,108,111,114,115, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0,
- 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,
-116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,105,117,112,105,109, 97,103,
-101, 0, 4, 0, 0, 3, 41, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20,
- 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,
-111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 73, 77, 65, 71, 69, 0, 2, 0, 0, 0,
- 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,105,109,
- 97,103,101, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66,
- 0, 4, 0, 0, 3, 49, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1,
- 18, 2, 13, 1, 18, 3, 13, 1, 18, 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,
-114,101, 97,116,101, 73,109, 97,103,101, 82, 71, 66, 0, 2, 0, 0, 0, 6,119,
-105,100,116,104, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, 0, 2, 0, 0,
- 0, 7,112,105,120,101,108,115, 0, 2, 0, 0, 0, 12,105,117,112,105,109, 97,
-103,101,114,103, 98, 0, 4, 0, 0, 3, 53, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82,
- 71, 66, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 9,105,109, 97,103,101,114,103, 98, 0, 2, 0, 0, 0, 13, 73,
- 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 4, 0, 0, 3, 61, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, 18, 2, 13, 1, 18, 3, 13, 1, 18,
- 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 19,105,117,112, 67,114,101, 97,116,101, 73,109, 97,103,
-101, 82, 71, 66, 65, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0,
- 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, 7,112,105,120,101,108,115,
- 0, 2, 0, 0, 0, 13,105,117,112,105,109, 97,103,101,114,103, 98, 97, 0, 4,
- 0, 0, 3, 65, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 13, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 2, 0, 0,
- 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,105,
-109, 97,103,101,114,103, 98, 97, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79,
- 71, 82, 69, 83, 83, 66, 65, 82, 0, 4, 0, 0, 3, 74, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0,
- 0, 0, 21,105,117,112, 67,114,101, 97,116,101, 80,114,111,103,114,101,115,115,
- 66, 97,114, 0, 2, 0, 0, 0, 15,105,117,112,112,114,111,103,114,101,115,115,
- 98, 97,114, 0, 4, 0, 0, 3, 78, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15,
- 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 2,111, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, 71, 82, 69, 83, 83,
- 66, 65, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114,
- 0, 2, 0, 0, 0, 12,112,114,111,103,114,101,115,115, 98, 97,114, 0, 2, 0,
- 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0,
- 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 7, 65, 67, 84, 73, 79, 78,
- 0, 2, 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 10,
- 65, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 9,103,101,116,102,111,
- 99,117,115, 0, 2, 0, 0, 0, 12, 71, 69, 84, 70, 79, 67, 85, 83, 95, 67, 66,
- 0, 2, 0, 0, 0, 16,105,117,112, 95,103,101,116,102,111, 99,117,115, 95, 99,
- 98, 0, 2, 0, 0, 0, 10,107,105,108,108,102,111, 99,117,115, 0, 2, 0, 0,
- 0, 13, 75, 73, 76, 76, 70, 79, 67, 85, 83, 95, 67, 66, 0, 2, 0, 0, 0, 17,
-105,117,112, 95,107,105,108,108,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0,
- 0, 6,102,111, 99,117,115, 0, 2, 0, 0, 0, 9, 70, 79, 67, 85, 83, 95, 67,
- 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,102,111, 99,117,115, 95, 99, 98, 0,
- 2, 0, 0, 0, 6,107, 95, 97,110,121, 0, 2, 0, 0, 0, 6, 75, 95, 65, 78,
- 89, 0, 2, 0, 0, 0, 10,105,117,112, 95,107, 95, 97,110,121, 0, 2, 0, 0,
- 0, 5,104,101,108,112, 0, 2, 0, 0, 0, 8, 72, 69, 76, 80, 95, 67, 66, 0,
- 2, 0, 0, 0, 12,105,117,112, 95,104,101,108,112, 95, 99, 98, 0, 2, 0, 0,
- 0, 8, 99, 97,114,101,116, 99, 98, 0, 2, 0, 0, 0, 9, 67, 65, 82, 69, 84,
- 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, 99, 97,114,101,116, 95, 99,
- 98, 0, 2, 0, 0, 0, 9,107,101,121,112,114,101,115,115, 0, 2, 0, 0, 0,
- 12, 75, 69, 89, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,
-112, 95,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 7,115,
- 99,114,111,108,108, 0, 2, 0, 0, 0, 10, 83, 67, 82, 79, 76, 76, 95, 67, 66,
- 0, 2, 0, 0, 0, 14,105,117,112, 95,115, 99,114,111,108,108, 95, 99, 98, 0,
- 2, 0, 0, 0, 10,116,114, 97,121, 99,108,105, 99,107, 0, 2, 0, 0, 0, 13,
- 84, 82, 65, 89, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,
-112, 95,116,114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 6,
- 99,108,111,115,101, 0, 2, 0, 0, 0, 9, 67, 76, 79, 83, 69, 95, 67, 66, 0,
- 2, 0, 0, 0, 13,105,117,112, 95, 99,108,111,115,101, 95, 99, 98, 0, 2, 0,
- 0, 0, 5,111,112,101,110, 0, 2, 0, 0, 0, 8, 79, 80, 69, 78, 95, 67, 66,
- 0, 2, 0, 0, 0, 12,105,117,112, 95,111,112,101,110, 95, 99, 98, 0, 2, 0,
- 0, 0, 7,115,104,111,119, 99, 98, 0, 2, 0, 0, 0, 8, 83, 72, 79, 87, 95,
- 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,104,111,119, 95, 99, 98, 0,
- 2, 0, 0, 0, 6,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 7, 77, 65, 80, 95,
- 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,109, 97,112, 95, 99, 98, 0, 2,
- 0, 0, 0, 8,117,110,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 9, 85, 78, 77,
- 65, 80, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,117,110,109, 97,112,
- 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114,111,112,102,105,108,101,115, 0, 2,
- 0, 0, 0, 13, 68, 82, 79, 80, 70, 73, 76, 69, 83, 95, 67, 66, 0, 2, 0, 0,
- 0, 17,105,117,112, 95,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,109,101,110,117, 99,108,111,115,101, 0, 2, 0, 0, 0, 13, 77,
- 69, 78, 85, 67, 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112,
- 95,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,
-105,103,104,108,105,103,104,116, 0, 2, 0, 0, 0, 13, 72, 73, 71, 72, 76, 73,
- 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,104,105,103,104,
-108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 4,119,111,109, 0, 2, 0,
- 0, 0, 7, 87, 79, 77, 95, 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,119,
-111,109, 95, 99, 98, 0, 2, 0, 0, 0, 6,119,104,101,101,108, 0, 2, 0, 0,
- 0, 9, 87, 72, 69, 69, 76, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,
-119,104,101,101,108, 95, 99, 98, 0, 2, 0, 0, 0, 10, 66, 85, 84, 84, 79, 78,
- 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95, 98,117,116,116,111,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 10,
- 82, 69, 83, 73, 90, 69, 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,114,
-101,115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,109,111,118,101, 0, 2,
- 0, 0, 0, 12,105,117,112, 95,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 7,109,111,116,105,111,110, 0, 2, 0, 0, 0, 10, 77, 79, 84, 73, 79, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,109,111,116,105,111,110, 95, 99,
- 98, 0, 2, 0, 0, 0, 12,101,110,116,101,114,119,105,110,100,111,119, 0, 2,
- 0, 0, 0, 15, 69, 78, 84, 69, 82, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, 2,
- 0, 0, 0, 19,105,117,112, 95,101,110,116,101,114,119,105,110,100,111,119, 95,
- 99, 98, 0, 2, 0, 0, 0, 12,108,101, 97,118,101,119,105,110,100,111,119, 0,
- 2, 0, 0, 0, 15, 76, 69, 65, 86, 69, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0,
- 2, 0, 0, 0, 19,105,117,112, 95,108,101, 97,118,101,119,105,110,100,111,119,
- 95, 99, 98, 0, 2, 0, 0, 0, 5,101,100,105,116, 0, 2, 0, 0, 0, 8, 69,
- 68, 73, 84, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,101,100,105,116,
- 95, 99, 98, 0, 2, 0, 0, 0, 12,109,117,108,116,105,115,101,108,101, 99,116,
- 0, 2, 0, 0, 0, 15, 77, 85, 76, 84, 73, 83, 69, 76, 69, 67, 84, 95, 67, 66,
- 0, 2, 0, 0, 0, 19,105,117,112, 95,109,117,108,116,105,115,101,108,101, 99,
-116, 95, 99, 98, 0, 2, 0, 0, 0, 7,102,105,108,101, 99, 98, 0, 2, 0, 0,
- 0, 8, 70, 73, 76, 69, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,102,
-105,108,101, 95, 99, 98, 0, 2, 0, 0, 0, 14,109,100,105, 97, 99,116,105,118,
- 97,116,101, 99, 98, 0, 2, 0, 0, 0, 15, 77, 68, 73, 65, 67, 84, 73, 86, 65,
- 84, 69, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109,100,105, 97, 99,
-116,105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 11,100,114,111,112,100,
-111,119,110, 99, 98, 0, 2, 0, 0, 0, 12, 68, 82, 79, 80, 68, 79, 87, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,100,114,111,112,100,111,119,110,
- 95, 99, 98, 0, 2, 0, 0, 0, 11,100, 98,108, 99,108,105, 99,107, 99, 98, 0,
- 2, 0, 0, 0, 12, 68, 66, 76, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0,
- 0, 16,105,117,112, 95,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0,
- 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95,116,111,103,103,108,101,
- 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110, 95,116,101,120,
-116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95, 98,117,
-116,116,111,110, 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110,
- 95,108,105,115,116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,
-110, 95, 99, 97,110,118, 97,115, 0, 2, 0, 0, 0, 17,105,117,112, 95, 97, 99,
-116,105,111,110, 95,116,105,109,101,114, 0, 2, 0, 0, 0, 10, 97, 99,116,105,
-111,110, 95, 99, 98, 0, 2, 0, 0, 0, 12,103,101,116,102,111, 99,117,115, 95,
- 99, 98, 0, 2, 0, 0, 0, 13,107,105,108,108,102,111, 99,117,115, 95, 99, 98,
- 0, 2, 0, 0, 0, 9,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 8,
-104,101,108,112, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99, 97,114,101,116, 95, 99,
- 98, 0, 2, 0, 0, 0, 12,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,115, 99,114,111,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 13,116,
-114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,111,
-115,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,111,112,101,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 8,115,104,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 7,109, 97,112,
- 95, 99, 98, 0, 2, 0, 0, 0, 9,117,110,109, 97,112, 95, 99, 98, 0, 2, 0,
- 0, 0, 13,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, 0, 0, 0,
- 13,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 13,104,
-105,103,104,108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 7,119,111,109,
- 95, 99, 98, 0, 2, 0, 0, 0, 9,119,104,101,101,108, 95, 99, 98, 0, 2, 0,
- 0, 0, 10, 98,117,116,116,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,
-115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,109,111,118,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 10,109,111,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0,
- 15,101,110,116,101,114,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0,
- 15,108,101, 97,118,101,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0,
- 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,108,116,105,115,
-101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,100,105, 97, 99,116,
-105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,102,105,108,101, 95, 99,
- 98, 0, 2, 0, 0, 0, 12,100,114,111,112,100,111,119,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 12,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0,
- 16,118, 97,108,117,101, 99,104, 97,110,103,101,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 15,118, 97,108,117,101, 99,104, 97,110,103,101,100, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_widgets_be64.lo");
-}
diff --git a/iup/srclua3/loh/iuplua_widgets_le64.loh b/iup/srclua3/loh/iuplua_widgets_le64.loh
deleted file mode 100755
index dd42bf4..0000000
--- a/iup/srclua3/loh/iuplua_widgets_le64.loh
+++ /dev/null
@@ -1,939 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/iuplua_widgets_le64.lo");
-*/
-/* ../obj/iuplua3/iuplua_widgets_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 20, 64,105,117,112,108,117,
- 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 7,202, 67, 0,
- 22, 1, 11, 1, 22, 0, 30, 0, 25, 0, 15, 0, 11, 2, 11, 3, 26, 15, 0, 11,
- 4, 11, 5, 26, 15, 0, 11, 6, 11, 7, 26, 15, 0, 11, 8, 11, 9, 26, 15, 0,
- 11, 10, 11, 11, 26, 15, 0, 11, 12, 11, 13, 26, 15, 0, 11, 14, 11, 15, 26, 15,
- 0, 11, 16, 11, 17, 26, 15, 0, 11, 18, 11, 19, 26, 15, 0, 11, 20, 11, 21, 26,
- 15, 0, 11, 22, 11, 23, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 24, 15, 24, 11,
- 26, 11, 27, 26, 11, 29, 25, 28, 15, 30, 11, 31, 15, 28, 26, 22, 1, 11, 25, 15,
- 0, 30, 0, 25, 32, 15, 32, 11, 26, 11, 33, 26, 11, 35, 25, 34, 15, 30, 11, 36,
- 15, 34, 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1,
- 25, 37, 15, 37, 11, 26, 11, 39, 26, 15, 37, 11, 40, 11, 41, 26, 15, 37, 11, 42,
- 11, 43, 26, 15, 37, 11, 44, 11, 45, 26, 11, 47, 25, 46, 15, 30, 11, 48, 15, 46,
- 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1, 25, 49,
- 15, 49, 11, 26, 11, 50, 26, 11, 52, 25, 51, 15, 30, 11, 53, 15, 51, 26, 11, 55,
- 25, 54, 11, 57, 25, 56, 11, 59, 25, 58, 22, 1, 11, 25, 15, 0, 30, 0, 25, 60,
- 15, 60, 11, 4, 11, 61, 26, 15, 60, 11, 26, 11, 62, 26, 11, 64, 25, 63, 15, 30,
- 11, 65, 15, 63, 26, 15, 66, 11, 44, 11, 67, 26, 22, 1, 11, 25, 15, 0, 30, 0,
- 25, 68, 15, 68, 11, 4, 11, 69, 26, 15, 68, 11, 26, 11, 70, 26, 22, 1, 11, 25,
- 15, 68, 30, 0, 25, 71, 15, 71, 11, 72, 11, 73, 26, 11, 75, 25, 74, 15, 30, 11,
- 76, 15, 74, 26, 11, 78, 25, 77, 11, 80, 25, 79, 22, 1, 11, 25, 15, 68, 30, 0,
- 25, 81, 15, 81, 11, 72, 11, 82, 26, 11, 84, 25, 83, 15, 30, 11, 85, 15, 83, 26,
- 11, 87, 25, 86, 22, 1, 11, 25, 15, 68, 30, 0, 25, 88, 15, 88, 11, 72, 11, 89,
- 26, 11, 91, 25, 90, 15, 30, 11, 92, 15, 90, 26, 22, 1, 11, 25, 15, 0, 30, 0,
- 25, 93, 15, 93, 11, 26, 11, 94, 26, 11, 96, 25, 95, 15, 30, 11, 97, 15, 95, 26,
- 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 11,100, 15,101, 30, 0, 30, 1, 25, 98,
- 15, 98, 11, 26, 11,102, 26, 11,104, 25,103, 15, 30, 11,105, 15,103, 26, 22, 1,
- 11, 25, 15, 0, 30, 0, 25,106, 15,106, 11, 26, 11,107, 26, 11,109, 25,108, 15,
- 30, 11,110, 15,108, 26, 22, 1, 11, 25, 15,112, 30, 0, 25,111, 15,111, 11, 26,
- 11,113, 26, 11,115, 25,114, 15, 30, 11,116, 15,114, 26, 22, 2, 11, 25, 15, 0,
- 11, 99, 22, 1, 11,118, 15,101, 30, 0, 30, 1, 25,117, 15,117, 11, 26, 11,119,
- 26, 11,121, 25,120, 15, 30, 11,122, 15,120, 26, 22, 1, 11, 25, 15,124, 30, 0,
- 25,123, 15,123, 11, 26, 11,125, 26, 11,127, 25,126, 15, 30, 11,128, 15,126, 26,
- 22, 1, 11, 25, 15,124, 30, 0, 25,129, 15,129, 11, 26, 11,130, 26, 11,132, 25,
-131, 15, 30, 11,133, 15,131, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 2, 15,135,
- 29, 0, 1, 11,136, 15,101, 30, 0, 30, 1, 25,134, 15,134, 11, 26, 11,137, 26,
- 11,139, 25,138, 15, 30, 11,140, 15,138, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,
-141, 15,141, 11, 26, 11,142, 26, 11,144, 25,143, 15, 30, 11,145, 15,143, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,146, 15,146, 11, 44, 11,147, 26, 15,146, 11, 26,
- 11,148, 26, 11,150, 25,149, 15, 30, 11,151, 15,149, 26, 22, 1, 11, 25, 15, 0,
- 30, 0, 25,152, 15,152, 11, 44, 11,153, 26, 15,152, 11, 26, 11,154, 26, 11,156,
- 25,155, 15, 30, 11,157, 15,155, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,158, 15,
-158, 11, 44, 11,159, 26, 15,158, 11, 26, 11,160, 26, 11,162, 25,161, 15, 30, 11,
-163, 15,161, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,164, 15,164, 11, 44, 11,165,
- 26, 15,164, 11, 26, 11,166, 26, 11,168, 25,167, 15, 30, 11,169, 15,167, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,170, 15,170, 11, 26, 11,171, 26, 11,173, 25,172,
- 15, 30, 11,174, 15,172, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,175, 15,175, 11,
- 4, 11,176, 26, 15,175, 11, 26, 11,177, 26, 11,179, 25,178, 15, 30, 11,180, 15,
-178, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 15,182, 29, 0, 1, 30, 1, 25,
-181, 15,181, 11, 26, 11,183, 26, 11,185, 25,184, 15, 30, 11,186, 15,184, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,187, 15,187, 11, 26, 11,188, 26, 11,190, 25,189,
- 15, 30, 11,191, 15,189, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,192, 15,192, 11,
- 26, 11,193, 26, 15,192, 11, 8, 11,194, 26, 15,192, 11, 10, 11,195, 26, 11,197,
- 25,196, 15, 30, 11,198, 15,196, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,199, 15,
-199, 11, 4, 11,201, 26, 15,199, 11, 26, 11,202, 26, 11,204, 25,203, 15, 30, 11,
-205, 15,203, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,206, 15,206, 11, 26, 11,207,
- 26, 11,209, 25,208, 15, 30, 11,210, 15,208, 26, 22, 1, 11, 25, 15,200, 30, 0,
- 25,211, 15,211, 11, 26, 11,212, 26, 11,214, 25,213, 15, 30, 11,215, 15,213, 26,
- 22, 1, 11, 25, 15,200, 30, 0, 25,216, 15,216, 11, 26, 11,217, 26, 11,219, 25,
-218, 15, 30, 11,220, 15,218, 26, 22, 33, 11,222, 22, 2, 11,223, 4, 0, 29, 0,
- 2, 11,224, 22, 2, 11,225, 4, 0, 29, 0, 2, 11,226, 22, 2, 11,227, 15,228,
- 29, 0, 2, 11,229, 22, 2, 11,230, 15,231, 29, 0, 2, 11,232, 22, 2, 11,233,
- 15,234, 29, 0, 2, 11,235, 22, 2, 11,236, 15,237, 29, 0, 2, 11,238, 22, 2,
- 11,239, 15,240, 29, 0, 2, 11,241, 22, 2, 11,242, 15,243, 29, 0, 2, 11,244,
- 22, 2, 11,245, 15,246, 29, 0, 2, 11,247, 22, 2, 11,248, 15,249, 29, 0, 2,
- 11,250, 22, 2, 11,251, 15,252, 29, 0, 2, 11,253, 22, 2, 11,254, 15,255, 29,
- 0, 2, 10, 1, 0, 22, 2, 10, 1, 1, 14, 1, 2, 29, 0, 2, 10, 1, 3, 22,
- 2, 10, 1, 4, 14, 1, 5, 29, 0, 2, 10, 1, 6, 22, 2, 10, 1, 7, 14, 1,
- 8, 29, 0, 2, 10, 1, 9, 22, 2, 10, 1, 10, 14, 1, 11, 29, 0, 2, 10, 1,
- 12, 22, 2, 10, 1, 13, 14, 1, 14, 29, 0, 2, 10, 1, 15, 22, 2, 10, 1, 16,
- 14, 1, 17, 29, 0, 2, 10, 1, 18, 22, 2, 10, 1, 19, 14, 1, 20, 29, 0, 2,
- 10, 1, 21, 22, 2, 10, 1, 22, 14, 1, 23, 29, 0, 2, 10, 1, 24, 22, 2, 10,
- 1, 25, 14, 1, 26, 29, 0, 2, 11,105, 22, 2, 10, 1, 27, 14, 1, 28, 29, 0,
- 2, 10, 1, 29, 22, 2, 10, 1, 30, 14, 1, 31, 29, 0, 2, 10, 1, 32, 22, 2,
- 10, 1, 30, 14, 1, 33, 29, 0, 2, 10, 1, 34, 22, 2, 10, 1, 35, 14, 1, 36,
- 29, 0, 2, 10, 1, 37, 22, 2, 10, 1, 38, 14, 1, 39, 29, 0, 2, 10, 1, 40,
- 22, 2, 10, 1, 41, 14, 1, 42, 29, 0, 2, 10, 1, 43, 22, 2, 10, 1, 44, 14,
- 1, 45, 29, 0, 2, 10, 1, 46, 22, 2, 10, 1, 47, 14, 1, 48, 29, 0, 2, 10,
- 1, 49, 22, 2, 10, 1, 50, 14, 1, 51, 29, 0, 2, 10, 1, 52, 22, 2, 10, 1,
- 53, 14, 1, 54, 29, 0, 2, 10, 1, 55, 22, 2, 10, 1, 56, 14, 1, 57, 29, 0,
- 2, 30, 31, 10, 1, 58, 22, 2, 10, 1, 59, 14, 1, 60, 29, 0, 2, 30, 0, 25,
-221, 15,221, 18,222, 11,128, 14, 1, 61, 26, 15,221, 18,222, 11,116, 14, 1, 62,
- 26, 15,221, 18,222, 11,110, 14, 1, 62, 26, 15,221, 18,222, 11,105, 14, 1, 63,
- 26, 15,221, 18,222, 11,198, 14, 1, 64, 26, 15,221, 18,222, 11,133, 14, 1, 63,
- 26, 15,221, 18,222, 11,191, 14, 1, 65, 26, 15,221, 18,224, 11, 31, 14, 1, 66,
- 26, 15,221, 10, 1, 67, 15,221, 18,224, 26, 15,221, 10, 1, 68, 15,221, 18,226,
- 26, 15,221, 10, 1, 69, 15,221, 18,229, 26, 15,221, 10, 1, 70, 15,221, 18,232,
- 26, 15,221, 11,235, 15,221, 18,235, 26, 15,221, 10, 1, 71, 15,221, 18,238, 26,
- 15,221, 10, 1, 72, 15,221, 18,241, 26, 15,221, 10, 1, 73, 15,221, 18,244, 26,
- 15,221, 10, 1, 74, 15,221, 18,247, 26, 15,221, 10, 1, 75, 15,221, 18,250, 26,
- 15,221, 10, 1, 76, 15,221, 18,253, 26, 15,221, 10, 1, 77, 15,221, 17, 1, 0,
- 26, 15,221, 10, 1, 78, 15,221, 17, 1, 3, 26, 15,221, 10, 1, 79, 15,221, 17,
- 1, 6, 26, 15,221, 10, 1, 80, 15,221, 17, 1, 9, 26, 15,221, 10, 1, 81, 15,
-221, 17, 1, 12, 26, 15,221, 10, 1, 82, 15,221, 17, 1, 15, 26, 15,221, 10, 1,
- 83, 15,221, 17, 1, 18, 26, 15,221, 10, 1, 84, 15,221, 17, 1, 21, 26, 15,221,
- 10, 1, 85, 15,221, 17, 1, 24, 26, 15,221, 10, 1, 86, 15,221, 18,105, 26, 15,
-221, 10, 1, 87, 15,221, 17, 1, 29, 26, 15,221, 10, 1, 88, 15,221, 17, 1, 32,
- 26, 15,221, 10, 1, 89, 15,221, 17, 1, 34, 26, 15,221, 10, 1, 90, 15,221, 17,
- 1, 37, 26, 15,221, 10, 1, 91, 15,221, 17, 1, 40, 26, 15,221, 10, 1, 92, 15,
-221, 17, 1, 43, 26, 15,221, 10, 1, 93, 15,221, 17, 1, 46, 26, 15,221, 10, 1,
- 94, 15,221, 17, 1, 52, 26, 15,221, 10, 1, 95, 15,221, 17, 1, 49, 26, 15,221,
- 10, 1, 96, 15,221, 17, 1, 55, 26, 15,221, 10, 1, 97, 15,221, 17, 1, 58, 26,
- 15,221, 10, 1, 98, 15,221, 17, 1, 99, 26, 0, 0, 0, 0, 0, 0, 0, 1,100,
- 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 5,116,121,112,
-101, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 4,
- 0, 0, 0, 12, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 57, 7, 2, 13, 1, 11, 1, 13, 0,
- 26, 13, 0, 20, 3, 13, 1, 2, 0, 2, 13, 1, 11, 4, 13, 0, 20, 5, 13, 1,
- 2, 1, 2, 26, 13, 0, 20, 6, 13, 1, 2, 0, 2, 15, 7, 13, 1, 18, 4, 13,
- 1, 26, 13, 1, 18, 4, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, 99,104,101, 99,107, 80, 97,
-114, 97,109,115, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0,
- 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 2,
- 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117,116,101,115, 0, 2, 0,
- 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 12,
- 99,104,101, 99,107, 80, 97,114, 97,109,115, 0, 4, 0, 0, 0, 32, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 61, 8, 2, 13, 0, 18, 1, 15, 5, 13, 2, 4, 0, 2, 2, 2,
- 50, 39, 13, 4, 13, 1, 13, 3, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13,
- 3, 42, 11, 8, 42, 2, 0, 1, 15, 5, 13, 2, 13, 3, 2, 2, 2, 23, 4, 23,
- 3, 13, 3, 54, 43, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 2, 0, 0, 0, 6,112, 97,114, 97,109, 0, 2, 0, 0, 0, 5,102,
-117,110, 99, 0, 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,101,
-114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32,
- 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,
-117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,
-105,122,101,100, 0, 2, 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117,
-116,101,115, 0, 4, 0, 0, 0, 43, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 80, 9, 2, 22,
- 0, 15, 3, 13, 1, 4, 0, 2, 1, 2, 50, 18, 13, 2, 13, 3, 7, 1, 26, 15,
- 3, 13, 1, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 22, 15, 3, 13, 2, 4, 0,
- 2, 1, 2, 23, 3, 50, 25, 13, 1, 20, 4, 13, 3, 13, 1, 13, 3, 16, 2, 0,
- 3, 15, 3, 13, 2, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 29, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 5,116,
-101,109,112, 0, 2, 0, 0, 0, 2,102, 0, 2, 0, 0, 0, 5,110,101,120,116,
- 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, 0, 0, 0, 4,103,101,116, 0, 4,
- 0, 0, 0, 57, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 82, 6, 2, 15, 1, 13, 1, 2, 1,
- 1, 52, 63, 15, 2, 13, 1, 16, 52, 9, 13, 0, 13, 1, 16, 1, 2, 50, 47, 15,
- 5, 13, 1, 2, 1, 1, 15, 7, 13, 0, 18, 8, 13, 2, 2, 1, 2, 13, 3, 52,
- 23, 15, 9, 13, 3, 2, 1, 1, 13, 4, 52, 6, 13, 4, 1, 5, 50, 4, 13, 3,
- 1, 5, 5, 1, 5, 2, 13, 0, 13, 1, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 10, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 12,116,121,
-112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99,
- 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2,
- 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115,116,114,117,112,
-112,101,114, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 16,
- 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0,
- 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,101,116, 72,
- 97,110,100,108,101, 0, 2, 0, 0, 0, 4,115,101,116, 0, 4, 0, 0, 0, 77,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0,228, 11, 3, 15, 2, 13, 1, 2, 1, 1, 52,209, 15,
- 4, 13, 1, 2, 1, 1, 15, 6, 13, 1, 16, 13, 1, 11, 7, 32, 48, 12, 15, 8,
- 13, 0, 18, 10, 2, 1, 1, 11, 11, 32, 52, 4, 4, 0, 23, 4, 13, 4, 52, 55,
- 13, 4, 7, 2, 16, 13, 5, 44, 52, 14, 13, 4, 15, 8, 13, 0, 18, 10, 2, 1,
- 1, 16, 23, 5, 15, 13, 13, 0, 18, 10, 13, 4, 7, 1, 16, 13, 5, 13, 2, 2,
- 0, 4, 13, 0, 13, 1, 13, 2, 26, 1, 6, 5, 1, 50,111, 15, 2, 13, 2, 2,
- 1, 1, 46, 7, 15, 14, 13, 2, 2, 1, 1, 52, 17, 15, 15, 13, 0, 18, 10, 13,
- 3, 13, 2, 2, 0, 3, 1, 5, 50, 76, 15, 16, 13, 2, 2, 1, 1, 52, 34, 15,
- 18, 13, 0, 18, 10, 13, 3, 2, 1, 2, 13, 5, 52, 15, 15, 15, 13, 0, 18, 10,
- 13, 3, 13, 2, 2, 0, 3, 1, 6, 5, 1, 50, 33, 15, 19, 13, 2, 2, 1, 1,
- 52, 24, 15, 20, 13, 2, 2, 0, 1, 15, 15, 13, 0, 18, 10, 13, 3, 13, 2, 18,
- 21, 2, 0, 3, 1, 5, 5, 2, 13, 0, 13, 1, 13, 2, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 22, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 6,
-118, 97,108,117,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,
-110,103, 0, 2, 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115,
-116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 3, 99, 98, 0, 2, 0, 0, 0,
- 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 7,
-114,101,115,105,122,101, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 67,108,
- 97,115,115, 78, 97,109,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0,
- 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,
-103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, 0, 15,105,117,112,
- 83,101,116, 67, 97,108,108, 98, 97, 99,107, 0, 2, 0, 0, 0, 12,116,121,112,
-101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116,
- 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,116,121,112,101, 95,
-110,105,108, 0, 2, 0, 0, 0, 10,111,108,100, 95,118, 97,108,117,101, 0, 2,
- 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0,
- 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0,
- 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 9, 73, 85,
- 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,
-121, 0, 4, 0, 0, 0,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 89, 6, 1, 7, 1, 13,
- 0, 13, 1, 16, 50, 66, 15, 3, 13, 2, 2, 1, 1, 48, 4, 13, 2, 18, 4, 52,
- 37, 13, 2, 18, 4, 13, 0, 32, 52, 16, 13, 2, 11, 4, 4, 0, 26, 13, 2, 20,
- 5, 2, 0, 1, 50, 12, 15, 6, 11, 7, 2, 0, 1, 15, 8, 2, 0, 0, 13, 1,
- 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 23, 2, 13, 2, 54, 70, 15, 9, 13, 0,
- 4, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 2,105, 0, 2,
- 0, 0, 0, 5,101,108,101,109, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2,
- 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0,
- 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 10,114, 95,100,
-101,115,116,114,111,121, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0,
- 0, 0, 29, 73,110,116,101,114,110, 97,108, 32,116, 97, 98,108,101, 32,105,110,
- 99,111,110,115,105,115,116,101,110, 99,121, 0, 2, 0, 0, 0, 5,101,120,105,
-116, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2,
- 0, 0, 0, 8,100,101,115,116,114,111,121, 0, 4, 0, 0, 0,133, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 17, 3, 1, 13, 0, 20, 1, 2, 0, 1, 15, 2, 13, 0, 2, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,121, 0, 2, 0, 0, 0, 11,
- 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 7,100,101,116, 97,
- 99,104, 0, 4, 0, 0, 0,138, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 96, 8, 1, 15, 0,
- 13, 0, 2, 0, 1, 13, 0, 18, 3, 13, 1, 52, 78, 13, 0, 11, 3, 4, 0, 26,
- 7, 1, 50, 58, 13, 1, 13, 2, 16, 13, 0, 32, 52, 41, 50, 20, 13, 1, 13, 2,
- 13, 1, 13, 2, 7, 1, 37, 16, 26, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2,
- 7, 1, 37, 16, 54, 30, 13, 1, 13, 2, 4, 0, 26, 1, 3, 13, 2, 7, 1, 37,
- 23, 2, 13, 1, 13, 2, 16, 54, 65, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5,
- 2, 0, 0, 0, 10, 73,117,112, 68,101,116, 97, 99,104, 0, 2, 0, 0, 0, 5,
-115,101,108,102, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0,
- 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 2,105, 0,
- 2, 0, 0, 0, 7, 97,112,112,101,110,100, 0, 4, 0, 0, 0,158, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 75, 6, 2, 15, 1, 13, 0, 13, 1, 2, 1, 2, 52, 57, 13, 1,
- 11, 3, 13, 0, 26, 7, 1, 50, 21, 13, 0, 13, 2, 16, 13, 1, 32, 52, 4, 13,
- 2, 1, 3, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 28, 15, 5, 13,
- 0, 16, 13, 2, 13, 1, 26, 13, 2, 1, 3, 5, 1, 50, 4, 4, 0, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10,
- 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 2,105, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0,
- 2, 0, 0, 0, 4,109, 97,112, 0, 4, 0, 0, 0,175, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2,
- 2, 0, 0, 0, 7, 73,117,112, 77, 97,112, 0, 2, 0, 0, 0, 5,115,101,108,
-102, 0, 2, 0, 0, 0, 5,104,105,100,101, 0, 4, 0, 0, 0,179, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 72,105,100,101, 0, 2, 0, 0, 0,
- 5,115,101,108,102, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 17, 67,114,101,
- 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0,187, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112,
- 67,114,101, 97,116,101, 84,105,109,101,114, 0, 2, 0, 0, 0, 9,105,117,112,
-116,105,109,101,114, 0, 4, 0, 0, 0,191, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,116,105,109,101,114, 0, 2, 0, 0,
- 0, 13, 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 4, 0, 0, 0,200,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,105,117,
-112, 67,114,101, 97,116,101, 67,108,105,112, 98,111, 97,114,100, 0, 2, 0, 0,
- 0, 13,105,117,112, 99,108,105,112, 98,111, 97,114,100, 0, 4, 0, 0, 0,204,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 13,
- 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10, 99,108,105,112, 98,
-111, 97,114,100, 0, 2, 0, 0, 0, 10, 73, 85, 80, 68, 73, 65, 76, 79, 71, 0,
- 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0,
- 0,213, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2,
- 1, 1, 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104,
- 97,110,100,108,101, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101,
- 68,105, 97,108,111,103, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 4, 0, 0, 0,219, 0, 0,
- 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117,
- 97, 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 83,104,111,119, 0, 2, 0, 0,
- 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,115,104,111,119,120,121, 0, 4,
- 0, 0, 0,223, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1,
- 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120,
- 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 10, 73,117,112, 83,104,111,119,
- 88, 89, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 6,112,111,
-112,117,112, 0, 4, 0, 0, 0,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15,
- 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,
- 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,
-112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0,
- 0, 10,105,117,112,100,105, 97,108,111,103, 0, 4, 0, 0, 0,231, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80,
- 68, 73, 65, 76, 79, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,
-116,111,114, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,103, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 82, 65, 68, 73, 79, 0, 4, 0, 0, 0,240, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, 13, 1, 7, 1, 16,
- 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0,
- 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2,
- 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 82, 97,100,105,111, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9,
-105,117,112,114, 97,100,105,111, 0, 4, 0, 0, 0,246, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 26, 5, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 15, 4, 13, 1, 7, 1, 16,
- 2, 0, 1, 13, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 9,
- 73, 85, 80, 82, 65, 68, 73, 79, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,
-117, 99,116,111,114, 0, 2, 0, 0, 0, 23,105,117,112, 67,114,101, 97,116,101,
- 67,104,105,108,100,114,101,110, 78, 97,109,101,115, 0, 2, 0, 0, 0, 6,114,
- 97,100,105,111, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115,
- 0, 4, 0, 0, 0,254, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,156, 11, 1, 22, 0, 7, 1,
- 50, 61, 15, 3, 13, 0, 13, 2, 16, 2, 1, 1, 52, 29, 13, 1, 13, 2, 15, 4,
- 22, 2, 11, 5, 13, 0, 13, 2, 16, 11, 6, 13, 0, 18, 6, 30, 1, 2, 1, 1,
- 26, 50, 13, 15, 7, 11, 8, 13, 2, 42, 11, 9, 42, 2, 0, 1, 13, 2, 7, 1,
- 37, 23, 2, 13, 0, 13, 2, 16, 54, 68, 13, 0, 18, 10, 52, 51, 7, 1, 50, 7,
- 13, 3, 7, 1, 37, 23, 3, 13, 0, 13, 3, 16, 48, 10, 13, 0, 13, 3, 16, 13,
- 0, 18, 10, 31, 54, 26, 13, 0, 13, 3, 16, 52, 10, 13, 1, 11, 10, 13, 1, 13,
- 3, 16, 26, 5, 1, 50, 18, 13, 0, 18, 12, 52, 12, 13, 1, 11, 10, 13, 1, 13,
- 0, 18, 12, 16, 26, 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0,
- 0, 0, 2,104, 0, 2, 0, 0, 0, 4,116,109,112, 0, 2, 0, 0, 0, 2,105,
- 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0,
- 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,
-116,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0,
- 6,101,114,114,111,114, 0, 2, 0, 0, 0, 8,111,112,116,105,111,110, 32, 0,
- 2, 0, 0, 0, 18, 32,109,117,115,116, 32, 98,101, 32, 97, 32,115,116,114,105,
-110,103, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 2,106,
- 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 9,101,100,
-104,114, 97,100,105,111, 0, 4, 0, 0, 1, 26, 0, 0, 0, 20, 64,105,117,112,
-108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 35,
- 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, 2, 1, 1,
- 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,103,103,108,
-101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, 0, 2,
- 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, 7,101,100,
-104, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0,
- 9,101,100,118,114, 97,100,105,111, 0, 4, 0, 0, 1, 32, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 35, 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1,
- 2, 1, 1, 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,
-103,103,108,101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,
-115, 0, 2, 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0,
- 7,101,100,118, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, 85, 0, 4, 0, 0, 1, 41, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0,159, 7, 2, 7, 1, 50,145, 13, 1, 13, 2, 16, 15, 3, 13, 3,
- 2, 1, 1, 44, 52,121, 15, 4, 13, 3, 2, 1, 1, 11, 5, 31, 52, 15, 15, 6,
- 11, 7, 13, 2, 42, 11, 8, 42, 2, 0, 1, 50, 94, 13, 3, 7, 1, 16, 48, 11,
- 15, 9, 13, 3, 7, 1, 16, 2, 1, 1, 44, 52, 15, 15, 6, 11, 7, 13, 2, 42,
- 11, 10, 42, 2, 0, 1, 50, 59, 13, 3, 7, 2, 16, 48, 11, 15, 9, 13, 3, 7,
- 2, 16, 2, 1, 1, 44, 48, 11, 15, 11, 13, 3, 7, 2, 16, 2, 1, 1, 44, 48,
- 11, 15, 12, 13, 3, 7, 2, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, 2,
- 42, 11, 13, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2,
- 16, 54,152, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10,
-116,121,112,101, 95,105,116,101,109, 0, 2, 0, 0, 0, 5,116,121,112,101, 0,
- 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,
-114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, 2, 0,
- 0, 0, 32, 32,105,115, 32,110,111,116, 32, 97, 32,116, 97, 98,108,101, 32,110,
-111,114, 32, 97, 32,109,101,110,117, 32,105,116,101,109, 0, 2, 0, 0, 0, 12,
-116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 30, 32,100,111,
-101,115, 32,110,111,116, 32,104, 97,118,101, 32, 97, 32,115,116,114,105,110,103,
- 32,116,105,116,108,101, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110,
- 99,116,105,111,110, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,
-101,116, 0, 2, 0, 0, 0, 36, 32,100,111,101,115, 32,110,111,116, 32,104, 97,
-118,101, 32, 97,110, 32, 97, 99,116,105,111,110, 32,110,111,114, 32, 97, 32,109,
-101,110,117, 0, 4, 0, 0, 1, 59, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,189, 10, 2, 15,
- 2, 2, 1, 0, 7, 1, 50,166, 13, 1, 13, 3, 16, 4, 0, 15, 6, 13, 4, 2,
- 1, 1, 52, 6, 13, 4, 23, 5, 50,112, 13, 4, 7, 1, 16, 44, 52, 11, 15, 7,
- 22, 0, 2, 1, 1, 23, 5, 50, 93, 15, 6, 13, 4, 7, 2, 16, 2, 1, 1, 52,
- 38, 13, 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 7, 1, 13, 4, 7, 2, 16,
- 26, 13, 4, 7, 2, 4, 0, 26, 15, 9, 13, 4, 2, 1, 1, 23, 5, 50, 43, 13,
- 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 11, 10, 13, 4, 7, 2, 16, 26, 13,
- 4, 7, 1, 4, 0, 26, 13, 4, 7, 2, 4, 0, 26, 15, 11, 13, 4, 2, 1, 1,
- 23, 5, 15, 12, 13, 2, 13, 5, 2, 0, 2, 13, 5, 11, 13, 13, 2, 26, 13, 1,
- 13, 3, 13, 5, 26, 13, 3, 7, 1, 37, 23, 3, 5, 2, 13, 1, 13, 3, 16, 54,
-173, 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 14,
-105,117,112, 67,114,101, 97,116,101, 77,101,110,117, 0, 2, 0, 0, 0, 2,105,
- 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,101,108,101,109, 0, 2, 0,
- 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 13,
-105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 6,116,105,
-116,108,101, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0,
- 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,105,117,112,
-105,116,101,109, 0, 2, 0, 0, 0, 10, 73,117,112, 65,112,112,101,110,100, 0,
- 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0,
- 8,105,117,112,109,101,110,117, 0, 4, 0, 0, 1, 89, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78,
- 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2,
- 0, 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78,
- 85, 0, 4, 0, 0, 1, 94, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13,
- 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0,
- 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, 80,
-111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12,
- 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 4, 0, 0, 1,102, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, 2, 13, 1, 13, 2, 16, 2, 1,
- 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, 5, 42, 2, 0, 1, 13, 2, 7,
- 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, 0, 0, 0, 0, 0, 0, 0, 6,
- 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0,
- 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 6,101,114,
-114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0,
- 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,
-101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,
-122,101,100, 0, 4, 0, 0, 1,112, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,187, 11, 2, 13,
- 0, 20, 3, 2, 1, 1, 13, 1, 18, 4, 7, 1, 7, 0, 50, 14, 13, 5, 7, 1,
- 37, 23, 5, 13, 4, 7, 1, 37, 23, 4, 13, 1, 13, 4, 16, 54, 21, 7, 1, 23,
- 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, 2,
- 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, 1,
- 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 50, 79, 15, 9, 13, 2, 13, 1, 13,
- 4, 16, 2, 0, 2, 13, 1, 13, 4, 16, 11, 10, 13, 2, 26, 13, 4, 7, 1, 37,
- 23, 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0,
- 2, 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13,
- 1, 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 13, 4, 13, 5, 34, 54, 86, 13,
- 2, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,
-109,101,110,116, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0,
- 0, 2,105, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95,
- 89, 69, 83, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0,
- 0, 10, 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 11, 73, 85, 80,
- 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88,
- 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,109,101,
-110,116, 0, 4, 0, 0, 1,146, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0,
- 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112,
- 67,114,101, 97,116,101, 72, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,104,
- 98,111,120, 0, 4, 0, 0, 1,150, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15,
- 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0, 2, 0, 0,
- 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,104,
- 98,111,120, 0, 2, 0, 0, 0, 7,101,100,104, 98,111,120, 0, 4, 0, 0, 1,
-156, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3,
- 20, 4, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8,
- 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88,
- 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0,
- 0, 0, 8,101,100,102,105,101,108,100, 0, 4, 0, 0, 1,162, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0,123, 7, 1, 4, 1, 15, 3, 13, 0, 18, 4, 2, 1, 1, 46, 9, 15,
- 5, 13, 0, 18, 4, 2, 1, 1, 52, 19, 15, 6, 22, 1, 11, 7, 13, 0, 18, 4,
- 30, 0, 2, 1, 1, 23, 1, 50, 7, 15, 8, 11, 9, 2, 0, 1, 13, 0, 18, 10,
- 52, 19, 15, 11, 22, 1, 11, 10, 13, 0, 18, 10, 30, 0, 2, 1, 1, 23, 2, 50,
- 17, 15, 11, 22, 1, 11, 10, 13, 0, 18, 12, 30, 0, 2, 1, 1, 23, 2, 13, 2,
- 48, 2, 13, 1, 52, 16, 15, 13, 22, 2, 13, 1, 13, 2, 29, 0, 2, 3, 3, 1,
- 50, 4, 4, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 2,
-102, 0, 2, 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0,
- 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 7,112,114,
-111,109,112,116, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,110,117,109, 98,101,
-114, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0,
- 6,116,105,116,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0,
- 0, 0, 55,112, 97,114, 97,109,101,116,101,114, 32,112,114,111,109,112,116, 32,
-104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,
-115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,122,101,100, 0, 2, 0,
- 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8,105,117,112,116,101,120,
-116, 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 7,101,
-100,104, 98,111,120, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 4,
- 0, 0, 1,185, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,
-116,101, 86, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0,
- 4, 0, 0, 1,189, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,118, 98,111,120, 0,
- 2, 0, 0, 0, 7,101,100,118, 98,111,120, 0, 4, 0, 0, 1,195, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, 20, 4, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95,
- 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0,
- 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8, 73,
- 85, 80, 90, 66, 79, 88, 0, 4, 0, 0, 1,204, 0, 0, 0, 20, 64,105,117,112,
-108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8,
- 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0,
- 14,105,117,112, 67,114,101, 97,116,101, 90, 98,111,120, 0, 2, 0, 0, 0, 8,
-105,117,112,122, 98,111,120, 0, 4, 0, 0, 1,208, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 44, 6, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 7, 1, 50, 17, 15, 5, 13, 1,
- 13, 2, 16, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 24,
- 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 8, 73,
- 85, 80, 90, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,
-116,111,114, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11,105,117,112, 83,
-101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 5,122, 98,111,120, 0, 2, 0, 0,
- 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 4, 0, 0, 1,223, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
- 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,
-116,101, 70,105,108,108, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0,
- 4, 0, 0, 1,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,102,105,108,108, 0,
- 2, 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 5,
-116,121,112,101, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0,
- 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 4, 0, 0, 1,236, 0, 0,
- 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117,
- 97, 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52,
- 7, 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,
-116,105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0,
- 0, 1, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 66,117,116,
-116,111,110, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 4,
- 0, 0, 1,243, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 98,117,116,116,
-111,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, 1,
-252, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,
-117,112, 67,114,101, 97,116,101, 84,101,120,116, 0, 2, 0, 0, 0, 8,105,117,
-112,116,101,120,116, 0, 4, 0, 0, 2, 0, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 2,
- 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0,
- 5,116,101,120,116, 0, 2, 0, 0, 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76,
- 73, 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0,
- 2, 9, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,
-105,117,112, 67,114,101, 97,116,101, 77,117,108,116,105, 76,105,110,101, 0, 2,
- 0, 0, 0, 13,105,117,112,109,117,108,116,105,108,105,110,101, 0, 4, 0, 0,
- 2, 13, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0,
- 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, 73, 78, 69, 0, 2, 0, 0, 0, 12,
- 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,109,117,108,
-116,105,108,105,110,101, 0, 2, 0, 0, 0, 9, 73, 85, 80, 76, 65, 66, 69, 76,
- 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 2, 22, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, 7,
- 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,116,
-105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, 0,
- 1, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 76, 97, 98,101,
-108, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 4, 0, 0, 2,
- 29, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0,
- 9, 73, 85, 80, 76, 65, 66, 69, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,
-114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,108, 97, 98,101,108, 0, 2, 0,
- 0, 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 10, 73, 85,
- 80, 66, 85, 84, 84, 79, 78, 0, 4, 0, 0, 2, 38, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,
-101, 97,116,101, 84,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,116,108,
-101, 0, 2, 0, 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 4, 0, 0,
- 2, 42, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0,
- 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7,116,111,103,103,108,101,
- 0, 2, 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 4, 0, 0, 2, 51, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 14,105,117,112, 67,114,101, 97,116,101, 73,116,101,109, 0, 2, 0, 0, 0, 6,
-116,105,116,108,101, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 4,
- 0, 0, 2, 55, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,
-116,121,112,101, 95,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,101,
- 0, 4, 0, 0, 2, 64, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 31, 6, 2, 15, 2, 13, 1,
- 18, 3, 13, 1, 7, 1, 16, 2, 1, 2, 13, 1, 7, 1, 16, 11, 4, 13, 2, 26,
- 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 2,104, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101,
- 97,116,101, 83,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,
-101, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, 4, 0, 0, 2, 70, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,
-114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,117, 98,109,101,110,117, 0,
- 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 4, 0,
- 0, 2, 79, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 19,105,117,112, 67,114,101, 97,116,101, 83,101,112, 97,114, 97,116,111,114, 0,
- 2, 0, 0, 0, 13,105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 4, 0,
- 0, 2, 83, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, 0, 0, 0,
- 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,115,101,
-112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69,
- 68, 76, 71, 0, 4, 0, 0, 2, 92, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15,
- 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,
- 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,
-112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0,
- 2, 96, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101,
- 70,105,108,101, 68,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101,
-100,108,103, 0, 4, 0, 0, 2,100, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15,
- 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, 68, 76, 71, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 14, 73, 85, 80, 77, 69,
- 83, 83, 65, 71, 69, 68, 76, 71, 0, 4, 0, 0, 2,109, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0,
- 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,
-102, 0, 4, 0, 0, 2,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 20,105,117,112, 67,
-114,101, 97,116,101, 77,101,115,115, 97,103,101, 68,108,103, 0, 2, 0, 0, 0,
- 14,105,117,112,109,101,115,115, 97,103,101,100,108,103, 0, 4, 0, 0, 2,117,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 14,
- 73, 85, 80, 77, 69, 83, 83, 65, 71, 69, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,109,101,115,115,
- 97,103,101,100,108,103, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82,
- 68, 76, 71, 0, 4, 0, 0, 2,126, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15,
- 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2,
- 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,
-112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0,
- 2,130, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101,
- 67,111,108,111,114, 68,108,103, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108,
-111,114,100,108,103, 0, 4, 0, 0, 2,134, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 68,
- 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 9, 99,111,108,111,114,100,108,103, 0, 2, 0, 0, 0, 11, 73,
- 85, 80, 70, 79, 78, 84, 68, 76, 71, 0, 4, 0, 0, 2,143, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2,
- 0, 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 4, 0, 0, 2,147, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0,
- 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112,
- 67,114,101, 97,116,101, 70,111,110,116, 68,108,103, 0, 2, 0, 0, 0, 11,105,
-117,112,102,111,110,116,100,108,103, 0, 4, 0, 0, 2,151, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 79,
- 78, 84, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,
-111,114, 0, 2, 0, 0, 0, 8,102,111,110,116,100,108,103, 0, 2, 0, 0, 0,
- 8, 73, 85, 80, 85, 83, 69, 82, 0, 4, 0, 0, 2,160, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0,
- 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 85,115,101,114, 0, 2, 0, 0,
- 0, 8,105,117,112,117,115,101,114, 0, 4, 0, 0, 2,164, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 10, 2, 0, 15, 0, 20, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 0, 0, 0, 8, 73, 85, 80, 85, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,117,115,101,114,
- 0, 2, 0, 0, 0, 14, 73, 85, 80, 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0,
- 4, 0, 0, 2,173, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15,
- 2, 13, 1, 13, 2, 16, 2, 1, 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11,
- 5, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0,
- 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0,
- 0, 2,105, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116,
- 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114,
- 97,109,101,116,101,114, 32, 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,
-111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,
-105,110,105,116,105, 97,108,105,122,101,100, 0, 4, 0, 0, 2,183, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 40, 8, 2, 15, 2, 2, 1, 0, 7, 1, 50, 17, 13, 2, 11, 4,
- 13, 1, 13, 3, 16, 26, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 3, 16, 54, 24,
- 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 20,105,
-117,112, 67,114,101, 97,116,101, 78,111,114,109, 97,108,105,122,101,114, 0, 2,
- 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11, 97,100,100, 99,111,110,116,114,111,
-108, 0, 2, 0, 0, 0, 14,105,117,112,110,111,114,109, 97,108,105,122,101,114,
- 0, 4, 0, 0, 2,193, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 10, 2, 0, 15, 0, 20, 1,
- 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 14, 73, 85, 80,
- 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,
-116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,110,111,114,109, 97,108,105,
-122,101,114, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, 2, 0,
- 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 2,202,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1,
- 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,104, 0, 2,
- 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 70,114, 97,109,101, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9,
-105,117,112,102,114, 97,109,101, 0, 4, 0, 0, 2,208, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65,
- 77, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 6,102,114, 97,109,101, 0, 2, 0, 0, 0, 10, 73, 85, 80, 67,
- 65, 78, 86, 65, 83, 0, 4, 0, 0, 2,217, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3,
- 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 67, 97,
-110,118, 97,115, 0, 2, 0, 0, 0, 10,105,117,112, 99, 97,110,118, 97,115, 0,
- 4, 0, 0, 2,221, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 10, 73, 85, 80, 67, 65, 78, 86, 65, 83, 0, 2, 0, 0, 0, 12,
- 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 99, 97,110,
-118, 97,115, 0, 2, 0, 0, 0, 8, 73, 85, 80, 76, 73, 83, 84, 0, 4, 0, 0,
- 2,230, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,
-105,117,112, 67,114,101, 97,116,101, 76,105,115,116, 0, 4, 0, 0, 2,234, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 42, 6, 2, 15, 1, 13, 1, 2, 1, 1, 11, 2, 32, 52,
- 16, 15, 3, 13, 0, 18, 5, 11, 6, 13, 1, 42, 3, 2, 2, 50, 11, 15, 7, 18,
- 8, 13, 0, 13, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0,
- 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0,
- 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,
-116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102,
- 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2,
- 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,103,101,116, 0,
- 4, 0, 0, 2,242, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 90, 8, 3, 15, 2, 13, 1, 2,
- 1, 1, 11, 3, 32, 52, 62, 15, 4, 13, 2, 2, 1, 1, 46, 7, 15, 5, 13, 2,
- 2, 1, 1, 52, 21, 15, 6, 13, 0, 18, 8, 11, 9, 13, 1, 42, 11, 9, 13, 2,
- 42, 3, 3, 3, 50, 23, 13, 2, 4, 0, 32, 52, 16, 15, 6, 13, 0, 18, 8, 11,
- 9, 13, 1, 42, 13, 2, 3, 3, 3, 15, 10, 18, 11, 13, 0, 13, 1, 13, 2, 3,
- 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 6,105,110,100,101,
-120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 5,116,121,
-112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 12,
-116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 12,116,121,112,
-101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116,
- 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, 0,
- 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,115,101,116, 0, 2,
- 0, 0, 0, 8,105,117,112,108,105,115,116, 0, 4, 0, 0, 2,253, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 76, 73, 83, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 5,108,105,115,116, 0, 2, 0, 0, 0, 9, 73, 85, 80,
- 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 4, 0,
- 0, 3, 6, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0,116, 8, 2, 7, 1, 50, 92, 7, 1, 50,
- 32, 15, 3, 13, 1, 13, 2, 16, 13, 3, 16, 2, 1, 1, 11, 4, 31, 52, 7, 15,
- 5, 11, 6, 2, 0, 1, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 2, 16, 13, 3,
- 16, 54, 42, 13, 1, 18, 7, 48, 10, 13, 3, 7, 1, 38, 13, 1, 18, 7, 31, 52,
- 9, 15, 5, 11, 8, 2, 0, 1, 50, 10, 13, 1, 11, 7, 13, 3, 7, 1, 38, 26,
- 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, 16, 54, 99, 13, 1, 11, 9,
- 13, 2, 7, 1, 38, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 4,
-111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,106, 0, 2, 0,
- 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0,
- 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 38,110,111,110, 45,
-110,117,109,101,114,105, 99, 32,118, 97,108,117,101, 32,105,110, 32,105,109, 97,
-103,101, 32,100,101,102,105,110,105,116,105,111,110, 0, 2, 0, 0, 0, 6,119,
-105,100,116,104, 0, 2, 0, 0, 0, 26,105,110, 99,111,110,115,105,115,116,101,
-110,116, 32,105,109, 97,103,101, 32,108,101,110,103,104,116, 0, 2, 0, 0, 0,
- 7,104,101,105,103,104,116, 0, 4, 0, 0, 3, 29, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 74, 9, 2, 15, 2, 13, 1, 18, 3, 13, 1, 18, 4, 13, 1, 2, 1, 3, 15, 5,
- 13, 1, 18, 6, 2, 1, 1, 11, 7, 32, 52, 38, 7, 1, 50, 23, 15, 9, 13, 2,
- 13, 3, 13, 1, 18, 6, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 37, 23, 3, 13,
- 1, 18, 6, 13, 3, 16, 54, 32, 5, 1, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 10, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,
-100,108,101, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 73,109,
- 97,103,101, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 7,
-104,101,105,103,104,116, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0,
- 0, 7, 99,111,108,111,114,115, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0,
- 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,
-116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,105,117,112,105,109, 97,103,
-101, 0, 4, 0, 0, 3, 41, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20,
- 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,
-111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 73, 77, 65, 71, 69, 0, 2, 0, 0, 0,
- 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,105,109,
- 97,103,101, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66,
- 0, 4, 0, 0, 3, 49, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1,
- 18, 2, 13, 1, 18, 3, 13, 1, 18, 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,
-114,101, 97,116,101, 73,109, 97,103,101, 82, 71, 66, 0, 2, 0, 0, 0, 6,119,
-105,100,116,104, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, 0, 2, 0, 0,
- 0, 7,112,105,120,101,108,115, 0, 2, 0, 0, 0, 12,105,117,112,105,109, 97,
-103,101,114,103, 98, 0, 4, 0, 0, 3, 53, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4,
- 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
- 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82,
- 71, 66, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 9,105,109, 97,103,101,114,103, 98, 0, 2, 0, 0, 0, 13, 73,
- 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 4, 0, 0, 3, 61, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, 18, 2, 13, 1, 18, 3, 13, 1, 18,
- 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 19,105,117,112, 67,114,101, 97,116,101, 73,109, 97,103,
-101, 82, 71, 66, 65, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0,
- 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, 7,112,105,120,101,108,115,
- 0, 2, 0, 0, 0, 13,105,117,112,105,109, 97,103,101,114,103, 98, 97, 0, 4,
- 0, 0, 3, 65, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 13, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 2, 0, 0,
- 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,105,
-109, 97,103,101,114,103, 98, 97, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79,
- 71, 82, 69, 83, 83, 66, 65, 82, 0, 4, 0, 0, 3, 74, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0,
- 0, 0, 21,105,117,112, 67,114,101, 97,116,101, 80,114,111,103,114,101,115,115,
- 66, 97,114, 0, 2, 0, 0, 0, 15,105,117,112,112,114,111,103,114,101,115,115,
- 98, 97,114, 0, 4, 0, 0, 3, 78, 0, 0, 0, 20, 64,105,117,112,108,117, 97,
- 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15,
- 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 2,111, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, 71, 82, 69, 83, 83,
- 66, 65, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114,
- 0, 2, 0, 0, 0, 12,112,114,111,103,114,101,115,115, 98, 97,114, 0, 2, 0,
- 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0,
- 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 7, 65, 67, 84, 73, 79, 78,
- 0, 2, 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 10,
- 65, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 9,103,101,116,102,111,
- 99,117,115, 0, 2, 0, 0, 0, 12, 71, 69, 84, 70, 79, 67, 85, 83, 95, 67, 66,
- 0, 2, 0, 0, 0, 16,105,117,112, 95,103,101,116,102,111, 99,117,115, 95, 99,
- 98, 0, 2, 0, 0, 0, 10,107,105,108,108,102,111, 99,117,115, 0, 2, 0, 0,
- 0, 13, 75, 73, 76, 76, 70, 79, 67, 85, 83, 95, 67, 66, 0, 2, 0, 0, 0, 17,
-105,117,112, 95,107,105,108,108,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0,
- 0, 6,102,111, 99,117,115, 0, 2, 0, 0, 0, 9, 70, 79, 67, 85, 83, 95, 67,
- 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,102,111, 99,117,115, 95, 99, 98, 0,
- 2, 0, 0, 0, 6,107, 95, 97,110,121, 0, 2, 0, 0, 0, 6, 75, 95, 65, 78,
- 89, 0, 2, 0, 0, 0, 10,105,117,112, 95,107, 95, 97,110,121, 0, 2, 0, 0,
- 0, 5,104,101,108,112, 0, 2, 0, 0, 0, 8, 72, 69, 76, 80, 95, 67, 66, 0,
- 2, 0, 0, 0, 12,105,117,112, 95,104,101,108,112, 95, 99, 98, 0, 2, 0, 0,
- 0, 8, 99, 97,114,101,116, 99, 98, 0, 2, 0, 0, 0, 9, 67, 65, 82, 69, 84,
- 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, 99, 97,114,101,116, 95, 99,
- 98, 0, 2, 0, 0, 0, 9,107,101,121,112,114,101,115,115, 0, 2, 0, 0, 0,
- 12, 75, 69, 89, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,
-112, 95,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 7,115,
- 99,114,111,108,108, 0, 2, 0, 0, 0, 10, 83, 67, 82, 79, 76, 76, 95, 67, 66,
- 0, 2, 0, 0, 0, 14,105,117,112, 95,115, 99,114,111,108,108, 95, 99, 98, 0,
- 2, 0, 0, 0, 10,116,114, 97,121, 99,108,105, 99,107, 0, 2, 0, 0, 0, 13,
- 84, 82, 65, 89, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,
-112, 95,116,114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 6,
- 99,108,111,115,101, 0, 2, 0, 0, 0, 9, 67, 76, 79, 83, 69, 95, 67, 66, 0,
- 2, 0, 0, 0, 13,105,117,112, 95, 99,108,111,115,101, 95, 99, 98, 0, 2, 0,
- 0, 0, 5,111,112,101,110, 0, 2, 0, 0, 0, 8, 79, 80, 69, 78, 95, 67, 66,
- 0, 2, 0, 0, 0, 12,105,117,112, 95,111,112,101,110, 95, 99, 98, 0, 2, 0,
- 0, 0, 7,115,104,111,119, 99, 98, 0, 2, 0, 0, 0, 8, 83, 72, 79, 87, 95,
- 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,104,111,119, 95, 99, 98, 0,
- 2, 0, 0, 0, 6,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 7, 77, 65, 80, 95,
- 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,109, 97,112, 95, 99, 98, 0, 2,
- 0, 0, 0, 8,117,110,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 9, 85, 78, 77,
- 65, 80, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,117,110,109, 97,112,
- 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114,111,112,102,105,108,101,115, 0, 2,
- 0, 0, 0, 13, 68, 82, 79, 80, 70, 73, 76, 69, 83, 95, 67, 66, 0, 2, 0, 0,
- 0, 17,105,117,112, 95,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,109,101,110,117, 99,108,111,115,101, 0, 2, 0, 0, 0, 13, 77,
- 69, 78, 85, 67, 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112,
- 95,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,
-105,103,104,108,105,103,104,116, 0, 2, 0, 0, 0, 13, 72, 73, 71, 72, 76, 73,
- 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,104,105,103,104,
-108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 4,119,111,109, 0, 2, 0,
- 0, 0, 7, 87, 79, 77, 95, 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,119,
-111,109, 95, 99, 98, 0, 2, 0, 0, 0, 6,119,104,101,101,108, 0, 2, 0, 0,
- 0, 9, 87, 72, 69, 69, 76, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,
-119,104,101,101,108, 95, 99, 98, 0, 2, 0, 0, 0, 10, 66, 85, 84, 84, 79, 78,
- 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95, 98,117,116,116,111,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 10,
- 82, 69, 83, 73, 90, 69, 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,114,
-101,115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,109,111,118,101, 0, 2,
- 0, 0, 0, 12,105,117,112, 95,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 7,109,111,116,105,111,110, 0, 2, 0, 0, 0, 10, 77, 79, 84, 73, 79, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,109,111,116,105,111,110, 95, 99,
- 98, 0, 2, 0, 0, 0, 12,101,110,116,101,114,119,105,110,100,111,119, 0, 2,
- 0, 0, 0, 15, 69, 78, 84, 69, 82, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, 2,
- 0, 0, 0, 19,105,117,112, 95,101,110,116,101,114,119,105,110,100,111,119, 95,
- 99, 98, 0, 2, 0, 0, 0, 12,108,101, 97,118,101,119,105,110,100,111,119, 0,
- 2, 0, 0, 0, 15, 76, 69, 65, 86, 69, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0,
- 2, 0, 0, 0, 19,105,117,112, 95,108,101, 97,118,101,119,105,110,100,111,119,
- 95, 99, 98, 0, 2, 0, 0, 0, 5,101,100,105,116, 0, 2, 0, 0, 0, 8, 69,
- 68, 73, 84, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,101,100,105,116,
- 95, 99, 98, 0, 2, 0, 0, 0, 12,109,117,108,116,105,115,101,108,101, 99,116,
- 0, 2, 0, 0, 0, 15, 77, 85, 76, 84, 73, 83, 69, 76, 69, 67, 84, 95, 67, 66,
- 0, 2, 0, 0, 0, 19,105,117,112, 95,109,117,108,116,105,115,101,108,101, 99,
-116, 95, 99, 98, 0, 2, 0, 0, 0, 7,102,105,108,101, 99, 98, 0, 2, 0, 0,
- 0, 8, 70, 73, 76, 69, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,102,
-105,108,101, 95, 99, 98, 0, 2, 0, 0, 0, 14,109,100,105, 97, 99,116,105,118,
- 97,116,101, 99, 98, 0, 2, 0, 0, 0, 15, 77, 68, 73, 65, 67, 84, 73, 86, 65,
- 84, 69, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109,100,105, 97, 99,
-116,105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 11,100,114,111,112,100,
-111,119,110, 99, 98, 0, 2, 0, 0, 0, 12, 68, 82, 79, 80, 68, 79, 87, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,100,114,111,112,100,111,119,110,
- 95, 99, 98, 0, 2, 0, 0, 0, 11,100, 98,108, 99,108,105, 99,107, 99, 98, 0,
- 2, 0, 0, 0, 12, 68, 66, 76, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0,
- 0, 16,105,117,112, 95,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0,
- 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95,116,111,103,103,108,101,
- 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110, 95,116,101,120,
-116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95, 98,117,
-116,116,111,110, 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110,
- 95,108,105,115,116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,
-110, 95, 99, 97,110,118, 97,115, 0, 2, 0, 0, 0, 17,105,117,112, 95, 97, 99,
-116,105,111,110, 95,116,105,109,101,114, 0, 2, 0, 0, 0, 10, 97, 99,116,105,
-111,110, 95, 99, 98, 0, 2, 0, 0, 0, 12,103,101,116,102,111, 99,117,115, 95,
- 99, 98, 0, 2, 0, 0, 0, 13,107,105,108,108,102,111, 99,117,115, 95, 99, 98,
- 0, 2, 0, 0, 0, 9,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 8,
-104,101,108,112, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99, 97,114,101,116, 95, 99,
- 98, 0, 2, 0, 0, 0, 12,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,115, 99,114,111,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 13,116,
-114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,111,
-115,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,111,112,101,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 8,115,104,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 7,109, 97,112,
- 95, 99, 98, 0, 2, 0, 0, 0, 9,117,110,109, 97,112, 95, 99, 98, 0, 2, 0,
- 0, 0, 13,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, 0, 0, 0,
- 13,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 13,104,
-105,103,104,108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 7,119,111,109,
- 95, 99, 98, 0, 2, 0, 0, 0, 9,119,104,101,101,108, 95, 99, 98, 0, 2, 0,
- 0, 0, 10, 98,117,116,116,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,
-115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,109,111,118,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 10,109,111,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0,
- 15,101,110,116,101,114,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0,
- 15,108,101, 97,118,101,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0,
- 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,108,116,105,115,
-101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,100,105, 97, 99,116,
-105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,102,105,108,101, 95, 99,
- 98, 0, 2, 0, 0, 0, 12,100,114,111,112,100,111,119,110, 95, 99, 98, 0, 2,
- 0, 0, 0, 12,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0,
- 16,118, 97,108,117,101, 99,104, 97,110,103,101,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 15,118, 97,108,117,101, 99,104, 97,110,103,101,100, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_widgets_le64.lo");
-}
diff --git a/iup/srclua3/loh/iuplua_widgets_le64w.loh b/iup/srclua3/loh/iuplua_widgets_le64w.loh
deleted file mode 100755
index cce26b4..0000000
--- a/iup/srclua3/loh/iuplua_widgets_le64w.loh
+++ /dev/null
@@ -1,920 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/iuplua_widgets_le64w.lo");
-*/
-/* ../obj/iuplua3/iuplua_widgets_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 20, 64,105,117,112,108,117,
- 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 7,129, 67, 0,
- 22, 1, 11, 1, 22, 0, 30, 0, 25, 0, 15, 0, 11, 2, 11, 3, 26, 15, 0, 11,
- 4, 11, 5, 26, 15, 0, 11, 6, 11, 7, 26, 15, 0, 11, 8, 11, 9, 26, 15, 0,
- 11, 10, 11, 11, 26, 15, 0, 11, 12, 11, 13, 26, 15, 0, 11, 14, 11, 15, 26, 15,
- 0, 11, 16, 11, 17, 26, 15, 0, 11, 18, 11, 19, 26, 15, 0, 11, 20, 11, 21, 26,
- 15, 0, 11, 22, 11, 23, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 24, 15, 24, 11,
- 26, 11, 27, 26, 11, 29, 25, 28, 15, 30, 11, 31, 15, 28, 26, 22, 2, 11, 25, 15,
- 0, 11, 1, 22, 1, 15, 33, 29, 0, 1, 30, 1, 25, 32, 15, 32, 11, 26, 11, 34,
- 26, 15, 32, 11, 35, 11, 36, 26, 15, 32, 11, 37, 11, 38, 26, 15, 32, 11, 39, 11,
- 40, 26, 11, 42, 25, 41, 15, 30, 11, 43, 15, 41, 26, 22, 2, 11, 25, 15, 0, 11,
- 1, 22, 1, 15, 33, 29, 0, 1, 30, 1, 25, 44, 15, 44, 11, 26, 11, 45, 26, 11,
- 47, 25, 46, 15, 30, 11, 48, 15, 46, 26, 11, 50, 25, 49, 11, 52, 25, 51, 11, 54,
- 25, 53, 22, 1, 11, 25, 15, 0, 30, 0, 25, 55, 15, 55, 11, 4, 11, 56, 26, 15,
- 55, 11, 26, 11, 57, 26, 11, 59, 25, 58, 15, 30, 11, 60, 15, 58, 26, 15, 61, 11,
- 39, 11, 62, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 63, 15, 63, 11, 4, 11, 64,
- 26, 15, 63, 11, 26, 11, 65, 26, 22, 1, 11, 25, 15, 63, 30, 0, 25, 66, 15, 66,
- 11, 67, 11, 68, 26, 11, 70, 25, 69, 15, 30, 11, 71, 15, 69, 26, 11, 73, 25, 72,
- 11, 75, 25, 74, 22, 1, 11, 25, 15, 63, 30, 0, 25, 76, 15, 76, 11, 67, 11, 77,
- 26, 11, 79, 25, 78, 15, 30, 11, 80, 15, 78, 26, 11, 82, 25, 81, 22, 1, 11, 25,
- 15, 63, 30, 0, 25, 83, 15, 83, 11, 67, 11, 84, 26, 11, 86, 25, 85, 15, 30, 11,
- 87, 15, 85, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 88, 15, 88, 11, 26, 11, 89,
- 26, 11, 91, 25, 90, 15, 30, 11, 92, 15, 90, 26, 22, 2, 11, 25, 15, 0, 11, 94,
- 22, 1, 11, 95, 15, 96, 30, 0, 30, 1, 25, 93, 15, 93, 11, 26, 11, 97, 26, 11,
- 99, 25, 98, 15, 30, 11,100, 15, 98, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,101,
- 15,101, 11, 26, 11,102, 26, 11,104, 25,103, 15, 30, 11,105, 15,103, 26, 22, 1,
- 11, 25, 15,107, 30, 0, 25,106, 15,106, 11, 26, 11,108, 26, 11,110, 25,109, 15,
- 30, 11,111, 15,109, 26, 22, 2, 11, 25, 15, 0, 11, 94, 22, 1, 11,113, 15, 96,
- 30, 0, 30, 1, 25,112, 15,112, 11, 26, 11,114, 26, 11,116, 25,115, 15, 30, 11,
-117, 15,115, 26, 22, 1, 11, 25, 15,119, 30, 0, 25,118, 15,118, 11, 26, 11,120,
- 26, 11,122, 25,121, 15, 30, 11,123, 15,121, 26, 22, 1, 11, 25, 15,119, 30, 0,
- 25,124, 15,124, 11, 26, 11,125, 26, 11,127, 25,126, 15, 30, 11,128, 15,126, 26,
- 22, 2, 11, 25, 15, 0, 11, 94, 22, 2, 15,130, 29, 0, 1, 11,131, 15, 96, 30,
- 0, 30, 1, 25,129, 15,129, 11, 26, 11,132, 26, 11,134, 25,133, 15, 30, 11,135,
- 15,133, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,136, 15,136, 11, 26, 11,137, 26,
- 11,139, 25,138, 15, 30, 11,140, 15,138, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,
-141, 15,141, 11, 39, 11,142, 26, 15,141, 11, 26, 11,143, 26, 11,145, 25,144, 15,
- 30, 11,146, 15,144, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,147, 15,147, 11, 39,
- 11,148, 26, 15,147, 11, 26, 11,149, 26, 11,151, 25,150, 15, 30, 11,152, 15,150,
- 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,153, 15,153, 11, 39, 11,154, 26, 15,153,
- 11, 26, 11,155, 26, 11,157, 25,156, 15, 30, 11,158, 15,156, 26, 22, 1, 11, 25,
- 15, 0, 30, 0, 25,159, 15,159, 11, 39, 11,160, 26, 15,159, 11, 26, 11,161, 26,
- 11,163, 25,162, 15, 30, 11,164, 15,162, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,
-165, 15,165, 11, 26, 11,166, 26, 11,168, 25,167, 15, 30, 11,169, 15,167, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,170, 15,170, 11, 4, 11,171, 26, 15,170, 11, 26,
- 11,172, 26, 11,174, 25,173, 15, 30, 11,175, 15,173, 26, 22, 2, 11, 25, 15, 0,
- 11, 94, 22, 1, 15,177, 29, 0, 1, 30, 1, 25,176, 15,176, 11, 26, 11,178, 26,
- 11,180, 25,179, 15, 30, 11,181, 15,179, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,
-182, 15,182, 11, 26, 11,183, 26, 11,185, 25,184, 15, 30, 11,186, 15,184, 26, 22,
- 1, 11, 25, 15, 0, 30, 0, 25,187, 15,187, 11, 26, 11,188, 26, 15,187, 11, 8,
- 11,189, 26, 15,187, 11, 10, 11,190, 26, 11,192, 25,191, 15, 30, 11,193, 15,191,
- 26, 22, 1, 11, 25, 15,195, 30, 0, 25,194, 15,194, 11, 4, 11,196, 26, 15,194,
- 11, 26, 11,197, 26, 11,199, 25,198, 15, 30, 11,200, 15,198, 26, 22, 1, 11, 25,
- 15,195, 30, 0, 25,201, 15,201, 11, 26, 11,202, 26, 11,204, 25,203, 15, 30, 11,
-205, 15,203, 26, 22, 1, 11, 25, 15,195, 30, 0, 25,206, 15,206, 11, 26, 11,207,
- 26, 11,209, 25,208, 15, 30, 11,210, 15,208, 26, 22, 1, 11, 25, 15,195, 30, 0,
- 25,211, 15,211, 11, 26, 11,212, 26, 11,214, 25,213, 15, 30, 11,215, 15,213, 26,
- 22, 32, 11,217, 22, 2, 11,218, 4, 0, 29, 0, 2, 11,219, 22, 2, 11,220, 4,
- 0, 29, 0, 2, 11,221, 22, 2, 11,222, 15,223, 29, 0, 2, 11,224, 22, 2, 11,
-225, 15,226, 29, 0, 2, 11,227, 22, 2, 11,228, 15,229, 29, 0, 2, 11,230, 22,
- 2, 11,231, 15,232, 29, 0, 2, 11,233, 22, 2, 11,234, 15,235, 29, 0, 2, 11,
-236, 22, 2, 11,237, 15,238, 29, 0, 2, 11,239, 22, 2, 11,240, 15,241, 29, 0,
- 2, 11,242, 22, 2, 11,243, 15,244, 29, 0, 2, 11,245, 22, 2, 11,246, 15,247,
- 29, 0, 2, 11,248, 22, 2, 11,249, 15,250, 29, 0, 2, 11,251, 22, 2, 11,252,
- 15,253, 29, 0, 2, 11,254, 22, 2, 11,255, 14, 1, 0, 29, 0, 2, 10, 1, 1,
- 22, 2, 10, 1, 2, 14, 1, 3, 29, 0, 2, 10, 1, 4, 22, 2, 10, 1, 5, 14,
- 1, 6, 29, 0, 2, 10, 1, 7, 22, 2, 10, 1, 8, 14, 1, 9, 29, 0, 2, 10,
- 1, 10, 22, 2, 10, 1, 11, 14, 1, 12, 29, 0, 2, 10, 1, 13, 22, 2, 10, 1,
- 14, 14, 1, 15, 29, 0, 2, 10, 1, 16, 22, 2, 10, 1, 17, 14, 1, 18, 29, 0,
- 2, 10, 1, 19, 22, 2, 10, 1, 20, 14, 1, 21, 29, 0, 2, 11,100, 22, 2, 10,
- 1, 22, 14, 1, 23, 29, 0, 2, 10, 1, 24, 22, 2, 10, 1, 25, 14, 1, 26, 29,
- 0, 2, 10, 1, 27, 22, 2, 10, 1, 28, 14, 1, 29, 29, 0, 2, 10, 1, 30, 22,
- 2, 10, 1, 31, 14, 1, 32, 29, 0, 2, 10, 1, 33, 22, 2, 10, 1, 34, 14, 1,
- 35, 29, 0, 2, 10, 1, 36, 22, 2, 10, 1, 37, 14, 1, 38, 29, 0, 2, 10, 1,
- 39, 22, 2, 10, 1, 40, 14, 1, 41, 29, 0, 2, 10, 1, 42, 22, 2, 10, 1, 43,
- 14, 1, 44, 29, 0, 2, 10, 1, 45, 22, 2, 10, 1, 46, 14, 1, 47, 29, 0, 2,
- 10, 1, 48, 22, 2, 10, 1, 49, 14, 1, 50, 29, 0, 2, 10, 1, 51, 22, 2, 10,
- 1, 52, 14, 1, 53, 29, 0, 2, 30, 31, 25,216, 15,216, 18,217, 11,123, 14, 1,
- 54, 26, 15,216, 18,217, 11,111, 14, 1, 55, 26, 15,216, 18,217, 11,105, 14, 1,
- 55, 26, 15,216, 18,217, 11,100, 14, 1, 56, 26, 15,216, 18,217, 11,193, 14, 1,
- 57, 26, 15,216, 18,217, 11,128, 14, 1, 56, 26, 15,216, 18,217, 11,186, 14, 1,
- 58, 26, 15,216, 18,219, 11, 31, 14, 1, 59, 26, 15,216, 10, 1, 60, 15,216, 18,
-219, 26, 15,216, 10, 1, 61, 15,216, 18,221, 26, 15,216, 10, 1, 62, 15,216, 18,
-224, 26, 15,216, 10, 1, 63, 15,216, 18,227, 26, 15,216, 11,230, 15,216, 18,230,
- 26, 15,216, 10, 1, 64, 15,216, 18,233, 26, 15,216, 10, 1, 65, 15,216, 18,236,
- 26, 15,216, 10, 1, 66, 15,216, 18,239, 26, 15,216, 10, 1, 67, 15,216, 18,242,
- 26, 15,216, 10, 1, 68, 15,216, 18,245, 26, 15,216, 10, 1, 69, 15,216, 18,248,
- 26, 15,216, 10, 1, 70, 15,216, 18,251, 26, 15,216, 10, 1, 71, 15,216, 18,254,
- 26, 15,216, 10, 1, 72, 15,216, 17, 1, 1, 26, 15,216, 10, 1, 73, 15,216, 17,
- 1, 4, 26, 15,216, 10, 1, 74, 15,216, 17, 1, 7, 26, 15,216, 10, 1, 75, 15,
-216, 17, 1, 10, 26, 15,216, 10, 1, 76, 15,216, 17, 1, 13, 26, 15,216, 10, 1,
- 77, 15,216, 17, 1, 16, 26, 15,216, 10, 1, 78, 15,216, 17, 1, 19, 26, 15,216,
- 10, 1, 79, 15,216, 18,100, 26, 15,216, 10, 1, 80, 15,216, 17, 1, 24, 26, 15,
-216, 10, 1, 81, 15,216, 17, 1, 27, 26, 15,216, 10, 1, 82, 15,216, 17, 1, 30,
- 26, 15,216, 10, 1, 83, 15,216, 17, 1, 33, 26, 15,216, 10, 1, 84, 15,216, 17,
- 1, 36, 26, 15,216, 10, 1, 85, 15,216, 17, 1, 39, 26, 15,216, 10, 1, 86, 15,
-216, 17, 1, 45, 26, 15,216, 10, 1, 87, 15,216, 17, 1, 42, 26, 15,216, 10, 1,
- 88, 15,216, 17, 1, 48, 26, 15,216, 10, 1, 89, 15,216, 17, 1, 51, 26, 0, 0,
- 0, 0, 0, 0, 0, 1, 90, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2,
- 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,
-117, 99,116,111,114, 0, 4, 0, 0, 0, 12, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 57, 7,
- 2, 13, 1, 11, 1, 13, 0, 26, 13, 0, 20, 3, 13, 1, 2, 0, 2, 13, 1, 11,
- 4, 13, 0, 20, 5, 13, 1, 2, 1, 2, 26, 13, 0, 20, 6, 13, 1, 2, 0, 2,
- 15, 7, 13, 1, 18, 4, 13, 1, 26, 13, 1, 18, 4, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 8, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,112, 97,
-114,101,110,116, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12,
- 99,104,101, 99,107, 80, 97,114, 97,109,115, 0, 2, 0, 0, 0, 7,104, 97,110,
-100,108,101, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,
-101,109,101,110,116, 0, 2, 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,
-117,116,101,115, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,
-115, 0, 2, 0, 0, 0, 12, 99,104,101, 99,107, 80, 97,114, 97,109,115, 0, 4,
- 0, 0, 0, 32, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 61, 8, 2, 13, 0, 18, 1, 15, 5,
- 13, 2, 4, 0, 2, 2, 2, 50, 39, 13, 4, 13, 1, 13, 3, 16, 2, 1, 1, 44,
- 52, 13, 15, 6, 11, 7, 13, 3, 42, 11, 8, 42, 2, 0, 1, 15, 5, 13, 2, 13,
- 3, 2, 2, 2, 23, 4, 23, 3, 13, 3, 54, 43, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 5,116,121,112,101, 0,
- 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 6,112, 97,114, 97,109,
- 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, 0, 5,110,101,120,116,
- 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114,
- 97,109,101,116,101,114, 32, 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,
-111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,
-105,110,105,116,105, 97,108,105,122,101,100, 0, 2, 0, 0, 0, 14,115,101,116,
- 65,116,116,114,105, 98,117,116,101,115, 0, 4, 0, 0, 0, 43, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0, 80, 9, 2, 22, 0, 15, 3, 13, 1, 4, 0, 2, 1, 2, 50, 18, 13,
- 2, 13, 3, 7, 1, 26, 15, 3, 13, 1, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54,
- 22, 15, 3, 13, 2, 4, 0, 2, 1, 2, 23, 3, 50, 25, 13, 1, 20, 4, 13, 3,
- 13, 1, 13, 3, 16, 2, 0, 3, 15, 3, 13, 2, 13, 3, 2, 1, 2, 23, 3, 13,
- 3, 54, 29, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 5,116,101,109,112, 0, 2, 0, 0, 0, 2,102, 0, 2, 0,
- 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, 0, 0,
- 0, 4,103,101,116, 0, 4, 0, 0, 0, 57, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 82, 6,
- 2, 15, 1, 13, 1, 2, 1, 1, 52, 63, 15, 2, 13, 1, 16, 52, 9, 13, 0, 13,
- 1, 16, 1, 2, 50, 47, 15, 5, 13, 1, 2, 1, 1, 15, 7, 13, 0, 18, 8, 13,
- 2, 2, 1, 2, 13, 3, 52, 23, 15, 9, 13, 3, 2, 1, 1, 13, 4, 52, 6, 13,
- 4, 1, 5, 50, 4, 13, 3, 1, 5, 5, 1, 5, 2, 13, 0, 13, 1, 16, 1, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 6,105,110,100,101,120, 0,
- 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0,
- 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0,
- 5,115,101,108,102, 0, 2, 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0,
- 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 6,118, 97,108,117,
-101, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,
-116,101, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13,
- 73,117,112, 71,101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 4,115,101,
-116, 0, 4, 0, 0, 0, 77, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,228, 11, 3, 15, 2, 13,
- 1, 2, 1, 1, 52,209, 15, 4, 13, 1, 2, 1, 1, 15, 6, 13, 1, 16, 13, 1,
- 11, 7, 32, 48, 12, 15, 8, 13, 0, 18, 10, 2, 1, 1, 11, 11, 32, 52, 4, 4,
- 0, 23, 4, 13, 4, 52, 55, 13, 4, 7, 2, 16, 13, 5, 44, 52, 14, 13, 4, 15,
- 8, 13, 0, 18, 10, 2, 1, 1, 16, 23, 5, 15, 13, 13, 0, 18, 10, 13, 4, 7,
- 1, 16, 13, 5, 13, 2, 2, 0, 4, 13, 0, 13, 1, 13, 2, 26, 1, 6, 5, 1,
- 50,111, 15, 2, 13, 2, 2, 1, 1, 46, 7, 15, 14, 13, 2, 2, 1, 1, 52, 17,
- 15, 15, 13, 0, 18, 10, 13, 3, 13, 2, 2, 0, 3, 1, 5, 50, 76, 15, 16, 13,
- 2, 2, 1, 1, 52, 34, 15, 18, 13, 0, 18, 10, 13, 3, 2, 1, 2, 13, 5, 52,
- 15, 15, 15, 13, 0, 18, 10, 13, 3, 13, 2, 2, 0, 3, 1, 6, 5, 1, 50, 33,
- 15, 19, 13, 2, 2, 1, 1, 52, 24, 15, 20, 13, 2, 2, 0, 1, 15, 15, 13, 0,
- 18, 10, 13, 3, 13, 2, 18, 21, 2, 0, 3, 1, 5, 5, 2, 13, 0, 13, 1, 13,
- 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 6,105,110,100,101,
-120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 12,116,121,
-112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 6, 73, 78, 68, 69, 88,
- 0, 2, 0, 0, 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 3,
- 99, 98, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,
-115, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 16, 73,
-117,112, 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, 2, 0, 0, 0, 5,
-115,101,108,102, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0,
- 0, 7,100,105, 97,108,111,103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2,
- 0, 0, 0, 15,105,117,112, 83,101,116, 67, 97,108,108, 98, 97, 99,107, 0, 2,
- 0, 0, 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0,
- 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0,
- 0, 9,116,121,112,101, 95,110,105,108, 0, 2, 0, 0, 0, 10,111,108,100, 95,
-118, 97,108,117,101, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,
-114,105, 98,117,116,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,
-103,101,116, 0, 2, 0, 0, 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0,
- 2, 0, 0, 0, 9, 73, 85, 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 10,114,
- 95,100,101,115,116,114,111,121, 0, 4, 0, 0, 0,113, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 89, 6, 1, 7, 1, 13, 0, 13, 1, 16, 50, 66, 15, 3, 13, 2, 2, 1, 1,
- 48, 4, 13, 2, 18, 4, 52, 37, 13, 2, 18, 4, 13, 0, 32, 52, 16, 13, 2, 11,
- 4, 4, 0, 26, 13, 2, 20, 5, 2, 0, 1, 50, 12, 15, 6, 11, 7, 2, 0, 1,
- 15, 8, 2, 0, 0, 13, 1, 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 23, 2, 13,
- 2, 54, 70, 15, 9, 13, 0, 4, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2,
- 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 5,101,108,101,109, 0, 2, 0, 0, 0,
- 5,115,101,108,102, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,
-101,116, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2,
- 0, 0, 0, 10,114, 95,100,101,115,116,114,111,121, 0, 2, 0, 0, 0, 6,101,
-114,114,111,114, 0, 2, 0, 0, 0, 29, 73,110,116,101,114,110, 97,108, 32,116,
- 97, 98,108,101, 32,105,110, 99,111,110,115,105,115,116,101,110, 99,121, 0, 2,
- 0, 0, 0, 5,101,120,105,116, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,
-110,100,108,101,115, 0, 2, 0, 0, 0, 8,100,101,115,116,114,111,121, 0, 4,
- 0, 0, 0,133, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 17, 3, 1, 13, 0, 20, 1, 2, 0,
- 1, 15, 2, 13, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,
-121, 0, 2, 0, 0, 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0,
- 0, 0, 7,100,101,116, 97, 99,104, 0, 4, 0, 0, 0,138, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0, 96, 8, 1, 15, 0, 13, 0, 2, 0, 1, 13, 0, 18, 3, 13, 1, 52, 78,
- 13, 0, 11, 3, 4, 0, 26, 7, 1, 50, 58, 13, 1, 13, 2, 16, 13, 0, 32, 52,
- 41, 50, 20, 13, 1, 13, 2, 13, 1, 13, 2, 7, 1, 37, 16, 26, 13, 2, 7, 1,
- 37, 23, 2, 13, 1, 13, 2, 7, 1, 37, 16, 54, 30, 13, 1, 13, 2, 4, 0, 26,
- 1, 3, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 65, 5, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 10, 73,117,112, 68,101,116, 97, 99,
-104, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,112, 97,114,
-101,110,116, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0,
- 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 7, 97,112,112,101,110,100, 0, 4,
- 0, 0, 0,158, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 75, 6, 2, 15, 1, 13, 0, 13, 1,
- 2, 1, 2, 52, 57, 13, 1, 11, 3, 13, 0, 26, 7, 1, 50, 21, 13, 0, 13, 2,
- 16, 13, 1, 32, 52, 4, 13, 2, 1, 3, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13,
- 2, 16, 54, 28, 15, 5, 13, 0, 16, 13, 2, 13, 1, 26, 13, 2, 1, 3, 5, 1,
- 50, 4, 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,
-111, 0, 2, 0, 0, 0, 10, 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0,
- 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 12,105,117,112, 95,104,
- 97,110,100,108,101,115, 0, 2, 0, 0, 0, 4,109, 97,112, 0, 4, 0, 0, 0,
-175, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 7, 73,117,112, 77, 97,112, 0, 2,
- 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 5,104,105,100,101, 0, 4,
- 0, 0, 0,179, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 72,105,
-100,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 9, 73, 85,
- 80, 84, 73, 77, 69, 82, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2,
- 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116,
- 0, 4, 0, 0, 0,187, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2,
- 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 84,105,109,101,114, 0, 2,
- 0, 0, 0, 9,105,117,112,116,105,109,101,114, 0, 4, 0, 0, 0,191, 0, 0,
- 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117,
- 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85,
- 80, 84, 73, 77, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,
-116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,116,105,
-109,101,114, 0, 2, 0, 0, 0, 10, 73, 85, 80, 68, 73, 65, 76, 79, 71, 0, 2,
- 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 0,
-200, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1,
- 1, 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,
-110,100,108,101, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 68,
-105, 97,108,111,103, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,
-116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 4, 0, 0, 0,206, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 83,104,111,119, 0, 2, 0, 0, 0,
- 5,115,101,108,102, 0, 2, 0, 0, 0, 7,115,104,111,119,120,121, 0, 4, 0,
- 0, 0,210, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13,
- 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0,
- 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 10, 73,117,112, 83,104,111,119, 88,
- 89, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 6,112,111,112,
-117,112, 0, 4, 0, 0, 0,214, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2,
- 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0,
- 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112,
- 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0,
- 10,105,117,112,100,105, 97,108,111,103, 0, 4, 0, 0, 0,218, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, 68,
- 73, 65, 76, 79, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,
-111,114, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,103, 0, 2, 0, 0, 0, 9,
- 73, 85, 80, 82, 65, 68, 73, 79, 0, 4, 0, 0, 0,227, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, 13, 1, 7, 1, 16, 11,
- 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0,
- 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 82, 97,100,105,111, 0, 2, 0,
- 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9,105,
-117,112,114, 97,100,105,111, 0, 4, 0, 0, 0,233, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 26, 5, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 15, 4, 13, 1, 7, 1, 16, 2,
- 0, 1, 13, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2,
-111, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 9, 73,
- 85, 80, 82, 65, 68, 73, 79, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117,
- 99,116,111,114, 0, 2, 0, 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,
-104,105,108,100,114,101,110, 78, 97,109,101,115, 0, 2, 0, 0, 0, 6,114, 97,
-100,105,111, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, 0,
- 4, 0, 0, 0,241, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,156, 11, 1, 22, 0, 7, 1, 50,
- 61, 15, 3, 13, 0, 13, 2, 16, 2, 1, 1, 52, 29, 13, 1, 13, 2, 15, 4, 22,
- 2, 11, 5, 13, 0, 13, 2, 16, 11, 6, 13, 0, 18, 6, 30, 1, 2, 1, 1, 26,
- 50, 13, 15, 7, 11, 8, 13, 2, 42, 11, 9, 42, 2, 0, 1, 13, 2, 7, 1, 37,
- 23, 2, 13, 0, 13, 2, 16, 54, 68, 13, 0, 18, 10, 52, 51, 7, 1, 50, 7, 13,
- 3, 7, 1, 37, 23, 3, 13, 0, 13, 3, 16, 48, 10, 13, 0, 13, 3, 16, 13, 0,
- 18, 10, 31, 54, 26, 13, 0, 13, 3, 16, 52, 10, 13, 1, 11, 10, 13, 1, 13, 3,
- 16, 26, 5, 1, 50, 18, 13, 0, 18, 12, 52, 12, 13, 1, 11, 10, 13, 1, 13, 0,
- 18, 12, 16, 26, 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0,
- 0, 2,104, 0, 2, 0, 0, 0, 4,116,109,112, 0, 2, 0, 0, 0, 2,105, 0,
- 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0,
- 0, 10,105,117,112,116,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,116,
-108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 6,
-101,114,114,111,114, 0, 2, 0, 0, 0, 8,111,112,116,105,111,110, 32, 0, 2,
- 0, 0, 0, 18, 32,109,117,115,116, 32, 98,101, 32, 97, 32,115,116,114,105,110,
-103, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 2,106, 0,
- 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 9,101,100,104,
-114, 97,100,105,111, 0, 4, 0, 0, 1, 13, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 35, 6,
- 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, 2, 1, 1, 29,
- 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,103,103,108,101,
-115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, 0, 2, 0,
- 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, 7,101,100,104,
- 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 9,
-101,100,118,114, 97,100,105,111, 0, 4, 0, 0, 1, 19, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 35, 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, 2,
- 1, 1, 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,103,
-103,108,101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115,
- 0, 2, 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, 7,
-101,100,118, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0,
- 0, 0, 8, 73, 85, 80, 77, 69, 78, 85, 0, 4, 0, 0, 1, 28, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0,159, 7, 2, 7, 1, 50,145, 13, 1, 13, 2, 16, 15, 3, 13, 3, 2,
- 1, 1, 44, 52,121, 15, 4, 13, 3, 2, 1, 1, 11, 5, 31, 52, 15, 15, 6, 11,
- 7, 13, 2, 42, 11, 8, 42, 2, 0, 1, 50, 94, 13, 3, 7, 1, 16, 48, 11, 15,
- 9, 13, 3, 7, 1, 16, 2, 1, 1, 44, 52, 15, 15, 6, 11, 7, 13, 2, 42, 11,
- 10, 42, 2, 0, 1, 50, 59, 13, 3, 7, 2, 16, 48, 11, 15, 9, 13, 3, 7, 2,
- 16, 2, 1, 1, 44, 48, 11, 15, 11, 13, 3, 7, 2, 16, 2, 1, 1, 44, 48, 11,
- 15, 12, 13, 3, 7, 2, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, 2, 42,
- 11, 13, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, 16,
- 54,152, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, 98,106, 0,
- 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10,116,
-121,112,101, 95,105,116,101,109, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2,
- 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114,
- 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, 2, 0, 0,
- 0, 32, 32,105,115, 32,110,111,116, 32, 97, 32,116, 97, 98,108,101, 32,110,111,
-114, 32, 97, 32,109,101,110,117, 32,105,116,101,109, 0, 2, 0, 0, 0, 12,116,
-121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 30, 32,100,111,101,
-115, 32,110,111,116, 32,104, 97,118,101, 32, 97, 32,115,116,114,105,110,103, 32,
-116,105,116,108,101, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,
-116,105,111,110, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,
-116, 0, 2, 0, 0, 0, 36, 32,100,111,101,115, 32,110,111,116, 32,104, 97,118,
-101, 32, 97,110, 32, 97, 99,116,105,111,110, 32,110,111,114, 32, 97, 32,109,101,
-110,117, 0, 4, 0, 0, 1, 46, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,189, 10, 2, 15, 2,
- 2, 1, 0, 7, 1, 50,166, 13, 1, 13, 3, 16, 4, 0, 15, 6, 13, 4, 2, 1,
- 1, 52, 6, 13, 4, 23, 5, 50,112, 13, 4, 7, 1, 16, 44, 52, 11, 15, 7, 22,
- 0, 2, 1, 1, 23, 5, 50, 93, 15, 6, 13, 4, 7, 2, 16, 2, 1, 1, 52, 38,
- 13, 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 7, 1, 13, 4, 7, 2, 16, 26,
- 13, 4, 7, 2, 4, 0, 26, 15, 9, 13, 4, 2, 1, 1, 23, 5, 50, 43, 13, 4,
- 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 11, 10, 13, 4, 7, 2, 16, 26, 13, 4,
- 7, 1, 4, 0, 26, 13, 4, 7, 2, 4, 0, 26, 15, 11, 13, 4, 2, 1, 1, 23,
- 5, 15, 12, 13, 2, 13, 5, 2, 0, 2, 13, 5, 11, 13, 13, 2, 26, 13, 1, 13,
- 3, 13, 5, 26, 13, 3, 7, 1, 37, 23, 3, 5, 2, 13, 1, 13, 3, 16, 54,173,
- 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, 98,
-106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 14,105,
-117,112, 67,114,101, 97,116,101, 77,101,110,117, 0, 2, 0, 0, 0, 2,105, 0,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,101,108,101,109, 0, 2, 0, 0,
- 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 13,105,
-117,112,115,101,112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 6,116,105,116,
-108,101, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, 2,
- 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,105,117,112,105,
-116,101,109, 0, 2, 0, 0, 0, 10, 73,117,112, 65,112,112,101,110,100, 0, 2,
- 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8,
-105,117,112,109,101,110,117, 0, 4, 0, 0, 1, 76, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, 85,
- 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0,
- 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, 85,
- 0, 4, 0, 0, 1, 81, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, 0,
- 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0,
- 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, 80,111,
-112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, 67,
- 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 4, 0, 0, 1, 89, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, 2, 13, 1, 13, 2, 16, 2, 1, 1,
- 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, 5, 42, 2, 0, 1, 13, 2, 7, 1,
- 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2,
- 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 12,
-116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 6,101,114,114,
-111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, 2,
- 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,101,
- 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,122,
-101,100, 0, 4, 0, 0, 1, 99, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,187, 11, 2, 13, 0,
- 20, 3, 2, 1, 1, 13, 1, 18, 4, 7, 1, 7, 0, 50, 14, 13, 5, 7, 1, 37,
- 23, 5, 13, 4, 7, 1, 37, 23, 4, 13, 1, 13, 4, 16, 54, 21, 7, 1, 23, 4,
- 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, 2, 1,
- 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, 1, 13,
- 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 50, 79, 15, 9, 13, 2, 13, 1, 13, 4,
- 16, 2, 0, 2, 13, 1, 13, 4, 16, 11, 10, 13, 2, 26, 13, 4, 7, 1, 37, 23,
- 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, 2,
- 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, 1,
- 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 13, 4, 13, 5, 34, 54, 86, 13, 2,
- 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0, 4,111, 98,106, 0,
- 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 5,115,101,108,
-102, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,109,
-101,110,116, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0,
- 2,105, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89,
- 69, 83, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0, 0,
- 10, 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,
-112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0,
- 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,109,101,110,
-116, 0, 4, 0, 0, 1,133, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, 67,
-114,101, 97,116,101, 72, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,104, 98,
-111,120, 0, 4, 0, 0, 1,137, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1,
- 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0, 2, 0, 0, 0,
- 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,104, 98,
-111,120, 0, 2, 0, 0, 0, 7,101,100,104, 98,111,120, 0, 4, 0, 0, 1,143,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, 20,
- 4, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2,
-111, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, 73,
- 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 8,101,100,102,105,101,108,100, 0, 4, 0, 0, 1,149, 0, 0, 0, 20, 64,
-105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0,
- 0, 0,123, 7, 1, 4, 1, 15, 3, 13, 0, 18, 4, 2, 1, 1, 46, 9, 15, 5,
- 13, 0, 18, 4, 2, 1, 1, 52, 19, 15, 6, 22, 1, 11, 7, 13, 0, 18, 4, 30,
- 0, 2, 1, 1, 23, 1, 50, 7, 15, 8, 11, 9, 2, 0, 1, 13, 0, 18, 10, 52,
- 19, 15, 11, 22, 1, 11, 10, 13, 0, 18, 10, 30, 0, 2, 1, 1, 23, 2, 50, 17,
- 15, 11, 22, 1, 11, 10, 13, 0, 18, 12, 30, 0, 2, 1, 1, 23, 2, 13, 2, 48,
- 2, 13, 1, 52, 16, 15, 13, 22, 2, 13, 1, 13, 2, 29, 0, 2, 3, 3, 1, 50,
- 4, 4, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 2,102,
- 0, 2, 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 12,
-116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 7,112,114,111,
-109,112,116, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,110,117,109, 98,101,114,
- 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,
-116,105,116,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0,
- 0, 55,112, 97,114, 97,109,101,116,101,114, 32,112,114,111,109,112,116, 32,104,
- 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115,
- 32,110,111,116, 32,105,110,105,116,105, 97,108,105,122,101,100, 0, 2, 0, 0,
- 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8,105,117,112,116,101,120,116,
- 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 7,101,100,
-104, 98,111,120, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 4, 0,
- 0, 1,172, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,
-101, 86, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0, 4,
- 0, 0, 1,176, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,118, 98,111,120, 0, 2,
- 0, 0, 0, 7,101,100,118, 98,111,120, 0, 4, 0, 0, 1,182, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, 20, 4, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89,
- 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, 0,
- 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8, 73, 85,
- 80, 90, 66, 79, 88, 0, 4, 0, 0, 1,191, 0, 0, 0, 20, 64,105,117,112,108,
-117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2,
- 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,
-105,117,112, 67,114,101, 97,116,101, 90, 98,111,120, 0, 2, 0, 0, 0, 8,105,
-117,112,122, 98,111,120, 0, 4, 0, 0, 1,195, 0, 0, 0, 20, 64,105,117,112,
-108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 44,
- 6, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 7, 1, 50, 17, 15, 5, 13, 1, 13,
- 2, 16, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 24, 13,
- 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 8, 73, 85,
- 80, 90, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,
-111,114, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11,105,117,112, 83,101,
-116, 78, 97,109,101, 0, 2, 0, 0, 0, 5,122, 98,111,120, 0, 2, 0, 0, 0,
- 8, 73, 85, 80, 70, 73, 76, 76, 0, 4, 0, 0, 1,210, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0,
- 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,
-101, 70,105,108,108, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, 4,
- 0, 0, 1,214, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 2, 0, 0, 0, 12, 67,111,110,
-115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,102,105,108,108, 0, 2,
- 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 5,116,
-121,112,101, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, 12,
-116,121,112,101, 95,115,116,114,105,110,103, 0, 4, 0, 0, 1,223, 0, 0, 0,
- 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97,
- 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, 7,
- 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,116,
-105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, 0,
- 1, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 66,117,116,116,
-111,110, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 4, 0,
- 0, 1,230, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 98,117,116,116,111,
-110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, 1,239,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,
-112, 67,114,101, 97,116,101, 84,101,120,116, 0, 2, 0, 0, 0, 8,105,117,112,
-116,101,120,116, 0, 4, 0, 0, 1,243, 0, 0, 0, 20, 64,105,117,112,108,117,
- 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1,
- 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0,
- 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 2, 0,
- 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,
-116,101,120,116, 0, 2, 0, 0, 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, 73,
- 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, 1,
-252, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,105,
-117,112, 67,114,101, 97,116,101, 77,117,108,116,105, 76,105,110,101, 0, 2, 0,
- 0, 0, 13,105,117,112,109,117,108,116,105,108,105,110,101, 0, 4, 0, 0, 2,
- 0, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0,
- 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, 73, 78, 69, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,109,117,108,116,
-105,108,105,110,101, 0, 2, 0, 0, 0, 9, 73, 85, 80, 76, 65, 66, 69, 76, 0,
- 2, 0, 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 2, 9, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, 7, 13,
- 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,116,105,
-116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, 0, 1,
- 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 76, 97, 98,101,108,
- 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 4, 0, 0, 2, 16,
- 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,
-108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9,
- 73, 85, 80, 76, 65, 66, 69, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,
-117, 99,116,111,114, 0, 2, 0, 0, 0, 6,108, 97, 98,101,108, 0, 2, 0, 0,
- 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 10, 73, 85, 80,
- 66, 85, 84, 84, 79, 78, 0, 4, 0, 0, 2, 25, 0, 0, 0, 20, 64,105,117,112,
-108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12,
- 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3,
- 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101,
- 97,116,101, 84,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,116,108,101,
- 0, 2, 0, 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 4, 0, 0, 2,
- 29, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0,
- 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,
-116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7,116,111,103,103,108,101, 0,
- 2, 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 4, 0, 0, 2, 38, 0, 0,
- 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117,
- 97, 0, 0, 0, 0, 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,
-105,117,112, 67,114,101, 97,116,101, 73,116,101,109, 0, 2, 0, 0, 0, 6,116,
-105,116,108,101, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 4, 0,
- 0, 2, 42, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 2, 0, 0, 0, 12, 67,111,110,115,
-116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2, 0,
- 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,116,
-121,112,101, 95,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0,
- 4, 0, 0, 2, 51, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 31, 6, 2, 15, 2, 13, 1, 18,
- 3, 13, 1, 7, 1, 16, 2, 1, 2, 13, 1, 7, 1, 16, 11, 4, 13, 2, 26, 13,
- 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 2,104, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,
-116,101, 83,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,101,
- 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0,
- 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, 4, 0, 0, 2, 57, 0, 0,
- 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117,
- 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,
-117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,117, 98,109,101,110,117, 0, 2,
- 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 4, 0, 0,
- 2, 66, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,
-105,117,112, 67,114,101, 97,116,101, 83,101,112, 97,114, 97,116,111,114, 0, 2,
- 0, 0, 0, 13,105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 4, 0, 0,
- 2, 70, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0,
- 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, 0, 0, 0, 12,
- 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,115,101,112,
- 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, 68,
- 76, 71, 0, 4, 0, 0, 2, 79, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2,
- 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0,
- 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112,
- 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0, 2,
- 83, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, 70,
-105,108,101, 68,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101,100,
-108,103, 0, 4, 0, 0, 2, 87, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1,
- 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, 68, 76, 71, 0, 2,
- 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0,
- 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 14, 73, 85, 80, 77, 69, 83,
- 83, 65, 71, 69, 68, 76, 71, 0, 4, 0, 0, 2, 96, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0,
- 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102,
- 0, 4, 0, 0, 2,100, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 20,105,117,112, 67,114,
-101, 97,116,101, 77,101,115,115, 97,103,101, 68,108,103, 0, 2, 0, 0, 0, 14,
-105,117,112,109,101,115,115, 97,103,101,100,108,103, 0, 4, 0, 0, 2,104, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 14, 73,
- 85, 80, 77, 69, 83, 83, 65, 71, 69, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,109,101,115,115, 97,
-103,101,100,108,103, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 68,
- 76, 71, 0, 4, 0, 0, 2,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2,
- 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0,
- 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112,
- 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0, 2,
-117, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101, 67,
-111,108,111,114, 68,108,103, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108,111,
-114,100,108,103, 0, 4, 0, 0, 2,121, 0, 0, 0, 20, 64,105,117,112,108,117,
- 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1,
- 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0,
- 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 68, 76,
- 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2,
- 0, 0, 0, 9, 99,111,108,111,114,100,108,103, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 70, 79, 78, 84, 68, 76, 71, 0, 4, 0, 0, 2,130, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0,
- 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,
-102, 0, 4, 0, 0, 2,134, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,
-105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, 67,
-114,101, 97,116,101, 70,111,110,116, 68,108,103, 0, 2, 0, 0, 0, 11,105,117,
-112,102,111,110,116,100,108,103, 0, 4, 0, 0, 2,138, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 79, 78,
- 84, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 8,102,111,110,116,100,108,103, 0, 2, 0, 0, 0, 8,
- 73, 85, 80, 85, 83, 69, 82, 0, 4, 0, 0, 2,147, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0,
- 0, 14,105,117,112, 67,114,101, 97,116,101, 85,115,101,114, 0, 2, 0, 0, 0,
- 8,105,117,112,117,115,101,114, 0, 4, 0, 0, 2,151, 0, 0, 0, 20, 64,105,
-117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0,
- 0, 10, 2, 0, 15, 0, 20, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2,
- 2, 0, 0, 0, 8, 73, 85, 80, 85, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,
-110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,117,115,101,114, 0,
- 2, 0, 0, 0, 14, 73, 85, 80, 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, 4,
- 0, 0, 2,160, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, 2,
- 13, 1, 13, 2, 16, 2, 1, 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, 5,
- 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, 0,
- 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 2,105, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0,
- 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,
-109,101,116,101,114, 32, 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,
-110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,
-110,105,116,105, 97,108,105,122,101,100, 0, 4, 0, 0, 2,170, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0, 40, 8, 2, 15, 2, 2, 1, 0, 7, 1, 50, 17, 13, 2, 11, 4, 13,
- 1, 13, 3, 16, 26, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 3, 16, 54, 24, 13,
- 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 20,105,117,
-112, 67,114,101, 97,116,101, 78,111,114,109, 97,108,105,122,101,114, 0, 2, 0,
- 0, 0, 2,105, 0, 2, 0, 0, 0, 11, 97,100,100, 99,111,110,116,114,111,108,
- 0, 2, 0, 0, 0, 14,105,117,112,110,111,114,109, 97,108,105,122,101,114, 0,
- 4, 0, 0, 2,180, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 10, 2, 0, 15, 0, 20, 1, 3,
- 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 14, 73, 85, 80, 78,
- 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,
-114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,110,111,114,109, 97,108,105,122,
-101,114, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, 2, 0, 0,
- 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 2,189, 0,
- 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,
-117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, 13,
- 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,104, 0, 2, 0,
- 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 70,114, 97,109,101, 0, 2, 0,
- 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9,105,
-117,112,102,114, 97,109,101, 0, 4, 0, 0, 2,195, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77,
- 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2,
- 0, 0, 0, 6,102,114, 97,109,101, 0, 2, 0, 0, 0, 10, 73, 85, 80, 67, 65,
- 78, 86, 65, 83, 0, 4, 0, 0, 2,204, 0, 0, 0, 20, 64,105,117,112,108,117,
- 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2,
- 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 67, 97,110,
-118, 97,115, 0, 2, 0, 0, 0, 10,105,117,112, 99, 97,110,118, 97,115, 0, 4,
- 0, 0, 2,208, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0,
- 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2,
- 0, 0, 0, 10, 73, 85, 80, 67, 65, 78, 86, 65, 83, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 99, 97,110,118,
- 97,115, 0, 2, 0, 0, 0, 8, 73, 85, 80, 76, 73, 83, 84, 0, 4, 0, 0, 2,
-217, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115,
- 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,
-117,112, 67,114,101, 97,116,101, 76,105,115,116, 0, 4, 0, 0, 2,221, 0, 0,
- 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117,
- 97, 0, 0, 0, 0, 42, 6, 2, 15, 1, 13, 1, 2, 1, 1, 11, 2, 32, 52, 16,
- 15, 3, 13, 0, 18, 5, 11, 6, 13, 1, 42, 3, 2, 2, 50, 11, 15, 7, 18, 8,
- 13, 0, 13, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0,
- 6,105,110,100,101,120, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0,
- 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116,
- 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0,
- 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, 0,
- 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,103,101,116, 0, 4,
- 0, 0, 2,229, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,
-101,116,115, 46,108,117, 97, 0, 0, 0, 0, 90, 8, 3, 15, 2, 13, 1, 2, 1,
- 1, 11, 3, 32, 52, 62, 15, 4, 13, 2, 2, 1, 1, 46, 7, 15, 5, 13, 2, 2,
- 1, 1, 52, 21, 15, 6, 13, 0, 18, 8, 11, 9, 13, 1, 42, 11, 9, 13, 2, 42,
- 3, 3, 3, 50, 23, 13, 2, 4, 0, 32, 52, 16, 15, 6, 13, 0, 18, 8, 11, 9,
- 13, 1, 42, 13, 2, 3, 3, 3, 15, 10, 18, 11, 13, 0, 13, 1, 13, 2, 3, 3,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 6,105,110,100,101,120,
- 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 5,116,121,112,
-101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 12,116,
-121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 12,116,121,112,101,
- 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,
-116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2,
- 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0,
- 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, 0,
- 0, 0, 8,105,117,112,108,105,115,116, 0, 4, 0, 0, 2,240, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 76,
- 73, 83, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114,
- 0, 2, 0, 0, 0, 5,108,105,115,116, 0, 2, 0, 0, 0, 9, 73, 85, 80, 73,
- 77, 65, 71, 69, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 4, 0, 0,
- 2,249, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,
-115, 46,108,117, 97, 0, 0, 0, 0,116, 8, 2, 7, 1, 50, 92, 7, 1, 50, 32,
- 15, 3, 13, 1, 13, 2, 16, 13, 3, 16, 2, 1, 1, 11, 4, 31, 52, 7, 15, 5,
- 11, 6, 2, 0, 1, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 2, 16, 13, 3, 16,
- 54, 42, 13, 1, 18, 7, 48, 10, 13, 3, 7, 1, 38, 13, 1, 18, 7, 31, 52, 9,
- 15, 5, 11, 8, 2, 0, 1, 50, 10, 13, 1, 11, 7, 13, 3, 7, 1, 38, 26, 13,
- 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, 16, 54, 99, 13, 1, 11, 9, 13,
- 2, 7, 1, 38, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 4,111,
- 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,106, 0, 2, 0, 0,
- 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2,
- 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 38,110,111,110, 45,110,
-117,109,101,114,105, 99, 32,118, 97,108,117,101, 32,105,110, 32,105,109, 97,103,
-101, 32,100,101,102,105,110,105,116,105,111,110, 0, 2, 0, 0, 0, 6,119,105,
-100,116,104, 0, 2, 0, 0, 0, 26,105,110, 99,111,110,115,105,115,116,101,110,
-116, 32,105,109, 97,103,101, 32,108,101,110,103,104,116, 0, 2, 0, 0, 0, 7,
-104,101,105,103,104,116, 0, 4, 0, 0, 3, 16, 0, 0, 0, 20, 64,105,117,112,
-108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 74,
- 9, 2, 15, 2, 13, 1, 18, 3, 13, 1, 18, 4, 13, 1, 2, 1, 3, 15, 5, 13,
- 1, 18, 6, 2, 1, 1, 11, 7, 32, 52, 38, 7, 1, 50, 23, 15, 9, 13, 2, 13,
- 3, 13, 1, 18, 6, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 37, 23, 3, 13, 1,
- 18, 6, 13, 3, 16, 54, 32, 5, 1, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 10, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,
-108,101, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 73,109, 97,
-103,101, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 7,104,
-101,105,103,104,116, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0,
- 7, 99,111,108,111,114,115, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2,
- 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,116,
-114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,105,117,112,105,109, 97,103,101,
- 0, 4, 0, 0, 3, 28, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,
-100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2,
- 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111,
- 0, 2, 0, 0, 0, 9, 73, 85, 80, 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, 12,
- 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,105,109, 97,
-103,101, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 0,
- 4, 0, 0, 3, 36, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,
-103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, 18,
- 2, 13, 1, 18, 3, 13, 1, 18, 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,114,
-101, 97,116,101, 73,109, 97,103,101, 82, 71, 66, 0, 2, 0, 0, 0, 6,119,105,
-100,116,104, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, 0,
- 7,112,105,120,101,108,115, 0, 2, 0, 0, 0, 12,105,117,112,105,109, 97,103,
-101,114,103, 98, 0, 4, 0, 0, 3, 40, 0, 0, 0, 20, 64,105,117,112,108,117,
- 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1,
- 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0,
- 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71,
- 66, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2,
- 0, 0, 0, 9,105,109, 97,103,101,114,103, 98, 0, 2, 0, 0, 0, 13, 73, 85,
- 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 4, 0, 0, 3, 48, 0, 0, 0, 20,
- 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0,
- 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, 18, 2, 13, 1, 18, 3, 13, 1, 18, 4,
- 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106,
- 0, 2, 0, 0, 0, 19,105,117,112, 67,114,101, 97,116,101, 73,109, 97,103,101,
- 82, 71, 66, 65, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0,
- 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, 7,112,105,120,101,108,115, 0,
- 2, 0, 0, 0, 13,105,117,112,105,109, 97,103,101,114,103, 98, 97, 0, 4, 0,
- 0, 3, 52, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,
-116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 13, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 2, 0, 0, 0,
- 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,105,109,
- 97,103,101,114,103, 98, 97, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, 71,
- 82, 69, 83, 83, 66, 65, 82, 0, 4, 0, 0, 3, 61, 0, 0, 0, 20, 64,105,117,
-112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,
- 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0,
- 0, 21,105,117,112, 67,114,101, 97,116,101, 80,114,111,103,114,101,115,115, 66,
- 97,114, 0, 2, 0, 0, 0, 15,105,117,112,112,114,111,103,114,101,115,115, 98,
- 97,114, 0, 4, 0, 0, 3, 65, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,
-119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1,
- 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0,
- 2,111, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, 71, 82, 69, 83, 83, 66,
- 65, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 12,112,114,111,103,114,101,115,115, 98, 97,114, 0, 2, 0, 0,
- 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0,
- 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 7, 65, 67, 84, 73, 79, 78, 0,
- 2, 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 10, 65,
- 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 9,103,101,116,102,111, 99,
-117,115, 0, 2, 0, 0, 0, 12, 71, 69, 84, 70, 79, 67, 85, 83, 95, 67, 66, 0,
- 2, 0, 0, 0, 16,105,117,112, 95,103,101,116,102,111, 99,117,115, 95, 99, 98,
- 0, 2, 0, 0, 0, 10,107,105,108,108,102,111, 99,117,115, 0, 2, 0, 0, 0,
- 13, 75, 73, 76, 76, 70, 79, 67, 85, 83, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,
-117,112, 95,107,105,108,108,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0,
- 6,102,111, 99,117,115, 0, 2, 0, 0, 0, 9, 70, 79, 67, 85, 83, 95, 67, 66,
- 0, 2, 0, 0, 0, 13,105,117,112, 95,102,111, 99,117,115, 95, 99, 98, 0, 2,
- 0, 0, 0, 6,107, 95, 97,110,121, 0, 2, 0, 0, 0, 6, 75, 95, 65, 78, 89,
- 0, 2, 0, 0, 0, 10,105,117,112, 95,107, 95, 97,110,121, 0, 2, 0, 0, 0,
- 5,104,101,108,112, 0, 2, 0, 0, 0, 8, 72, 69, 76, 80, 95, 67, 66, 0, 2,
- 0, 0, 0, 12,105,117,112, 95,104,101,108,112, 95, 99, 98, 0, 2, 0, 0, 0,
- 8, 99, 97,114,101,116, 99, 98, 0, 2, 0, 0, 0, 9, 67, 65, 82, 69, 84, 95,
- 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, 99, 97,114,101,116, 95, 99, 98,
- 0, 2, 0, 0, 0, 9,107,101,121,112,114,101,115,115, 0, 2, 0, 0, 0, 12,
- 75, 69, 89, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112,
- 95,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 7,115, 99,
-114,111,108,108, 0, 2, 0, 0, 0, 10, 83, 67, 82, 79, 76, 76, 95, 67, 66, 0,
- 2, 0, 0, 0, 14,105,117,112, 95,115, 99,114,111,108,108, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,116,114, 97,121, 99,108,105, 99,107, 0, 2, 0, 0, 0, 13, 84,
- 82, 65, 89, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112,
- 95,116,114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 6, 99,
-108,111,115,101, 0, 2, 0, 0, 0, 9, 67, 76, 79, 83, 69, 95, 67, 66, 0, 2,
- 0, 0, 0, 13,105,117,112, 95, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 5,111,112,101,110, 0, 2, 0, 0, 0, 8, 79, 80, 69, 78, 95, 67, 66, 0,
- 2, 0, 0, 0, 12,105,117,112, 95,111,112,101,110, 95, 99, 98, 0, 2, 0, 0,
- 0, 7,115,104,111,119, 99, 98, 0, 2, 0, 0, 0, 8, 83, 72, 79, 87, 95, 67,
- 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,104,111,119, 95, 99, 98, 0, 2,
- 0, 0, 0, 6,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 7, 77, 65, 80, 95, 67,
- 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,109, 97,112, 95, 99, 98, 0, 2, 0,
- 0, 0, 8,117,110,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 9, 85, 78, 77, 65,
- 80, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,117,110,109, 97,112, 95,
- 99, 98, 0, 2, 0, 0, 0, 10,100,114,111,112,102,105,108,101,115, 0, 2, 0,
- 0, 0, 13, 68, 82, 79, 80, 70, 73, 76, 69, 83, 95, 67, 66, 0, 2, 0, 0, 0,
- 17,105,117,112, 95,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, 0,
- 0, 0, 10,109,101,110,117, 99,108,111,115,101, 0, 2, 0, 0, 0, 13, 77, 69,
- 78, 85, 67, 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,
-109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,105,
-103,104,108,105,103,104,116, 0, 2, 0, 0, 0, 13, 72, 73, 71, 72, 76, 73, 71,
- 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,104,105,103,104,108,
-105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 4,119,111,109, 0, 2, 0, 0,
- 0, 7, 87, 79, 77, 95, 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,119,111,
-109, 95, 99, 98, 0, 2, 0, 0, 0, 6,119,104,101,101,108, 0, 2, 0, 0, 0,
- 9, 87, 72, 69, 69, 76, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,119,
-104,101,101,108, 95, 99, 98, 0, 2, 0, 0, 0, 10, 66, 85, 84, 84, 79, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95, 98,117,116,116,111,110, 95, 99,
- 98, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 10, 82,
- 69, 83, 73, 90, 69, 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,114,101,
-115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 7,109,111,116,105,111,110, 0,
- 2, 0, 0, 0, 10, 77, 79, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 14,
-105,117,112, 95,109,111,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 12,101,
-110,116,101,114,119,105,110,100,111,119, 0, 2, 0, 0, 0, 15, 69, 78, 84, 69,
- 82, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,
-101,110,116,101,114,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 12,
-108,101, 97,118,101,119,105,110,100,111,119, 0, 2, 0, 0, 0, 15, 76, 69, 65,
- 86, 69, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112,
- 95,108,101, 97,118,101,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0,
- 5,101,100,105,116, 0, 2, 0, 0, 0, 8, 69, 68, 73, 84, 95, 67, 66, 0, 2,
- 0, 0, 0, 12,105,117,112, 95,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0,
- 12,109,117,108,116,105,115,101,108,101, 99,116, 0, 2, 0, 0, 0, 15, 77, 85,
- 76, 84, 73, 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,
-112, 95,109,117,108,116,105,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0,
- 0, 7,102,105,108,101, 99, 98, 0, 2, 0, 0, 0, 8, 70, 73, 76, 69, 95, 67,
- 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,102,105,108,101, 95, 99, 98, 0, 2,
- 0, 0, 0, 14,109,100,105, 97, 99,116,105,118, 97,116,101, 99, 98, 0, 2, 0,
- 0, 0, 15, 77, 68, 73, 65, 67, 84, 73, 86, 65, 84, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 19,105,117,112, 95,109,100,105, 97, 99,116,105,118, 97,116,101, 95, 99,
- 98, 0, 2, 0, 0, 0, 11,100,114,111,112,100,111,119,110, 99, 98, 0, 2, 0,
- 0, 0, 12, 68, 82, 79, 80, 68, 79, 87, 78, 95, 67, 66, 0, 2, 0, 0, 0, 16,
-105,117,112, 95,100,114,111,112,100,111,119,110, 95, 99, 98, 0, 2, 0, 0, 0,
- 11,100, 98,108, 99,108,105, 99,107, 99, 98, 0, 2, 0, 0, 0, 12, 68, 66, 76,
- 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,100, 98,
-108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97,
- 99,116,105,111,110, 95,116,111,103,103,108,101, 0, 2, 0, 0, 0, 16,105,117,
-112, 95, 97, 99,116,105,111,110, 95,116,101,120,116, 0, 2, 0, 0, 0, 18,105,
-117,112, 95, 97, 99,116,105,111,110, 95, 98,117,116,116,111,110, 0, 2, 0, 0,
- 0, 16,105,117,112, 95, 97, 99,116,105,111,110, 95,108,105,115,116, 0, 2, 0,
- 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95, 99, 97,110,118, 97,115,
- 0, 2, 0, 0, 0, 17,105,117,112, 95, 97, 99,116,105,111,110, 95,116,105,109,
-101,114, 0, 2, 0, 0, 0, 10, 97, 99,116,105,111,110, 95, 99, 98, 0, 2, 0,
- 0, 0, 12,103,101,116,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 13,
-107,105,108,108,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 9,102,111,
- 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 8,104,101,108,112, 95, 99, 98, 0,
- 2, 0, 0, 0, 9, 99, 97,114,101,116, 95, 99, 98, 0, 2, 0, 0, 0, 12,107,
-101,121,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 10,115, 99,114,111,
-108,108, 95, 99, 98, 0, 2, 0, 0, 0, 13,116,114, 97,121, 99,108,105, 99,107,
- 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,111,115,101, 95, 99, 98, 0, 2, 0,
- 0, 0, 8,111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 8,115,104,111,119,
- 95, 99, 98, 0, 2, 0, 0, 0, 7,109, 97,112, 95, 99, 98, 0, 2, 0, 0, 0,
- 9,117,110,109, 97,112, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,114,111,112,102,
-105,108,101,115, 95, 99, 98, 0, 2, 0, 0, 0, 13,109,101,110,117, 99,108,111,
-115,101, 95, 99, 98, 0, 2, 0, 0, 0, 13,104,105,103,104,108,105,103,104,116,
- 95, 99, 98, 0, 2, 0, 0, 0, 7,119,111,109, 95, 99, 98, 0, 2, 0, 0, 0,
- 9,119,104,101,101,108, 95, 99, 98, 0, 2, 0, 0, 0, 10, 98,117,116,116,111,
-110, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,115,105,122,101, 95, 99, 98, 0,
- 2, 0, 0, 0, 10,109,111,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 15,
-101,110,116,101,114,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 15,
-108,101, 97,118,101,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 8,
-101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,108,116,105,115,101,
-108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,100,105, 97, 99,116,105,
-118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,102,105,108,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 12,100,114,111,112,100,111,119,110, 95, 99, 98, 0, 2, 0,
- 0, 0, 12,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_widgets_le64w.lo");
-}
diff --git a/iup/srclua3/loh/matrix.loh b/iup/srclua3/loh/matrix.loh
deleted file mode 100755
index 3f8ee52..0000000
--- a/iup/srclua3/loh/matrix.loh
+++ /dev/null
@@ -1,120 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/matrix.lo");
-*/
-/* ../obj/iupluacontrols3/matrix.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,109, 97,116,114,105,
-120, 46,108,117, 97, 0, 0, 0, 1,162, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0,
- 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 15, 0, 11, 7,
- 11, 8, 26, 11, 10, 25, 9, 15, 11, 11, 12, 15, 9, 26, 15, 13, 18, 14, 11, 12,
- 15, 15, 26, 15, 13, 18, 16, 11, 12, 15, 17, 26, 15, 13, 11, 18, 22, 2, 11, 19,
- 15, 20, 29, 0, 2, 26, 15, 13, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26,
- 15, 13, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 13, 11, 27, 22, 2,
- 11, 28, 15, 29, 29, 0, 2, 26, 15, 13, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0,
- 2, 26, 15, 13, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 13, 11, 36,
- 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 13, 11, 39, 22, 2, 11, 40, 15, 41,
- 29, 0, 2, 26, 15, 13, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 13,
- 11, 45, 22, 2, 11, 46, 15, 47, 29, 0, 2, 26, 15, 13, 11, 48, 22, 2, 11, 49,
- 15, 50, 29, 0, 2, 26, 15, 13, 11, 51, 22, 2, 11, 52, 15, 53, 29, 0, 2, 26,
- 15, 13, 11, 54, 22, 2, 11, 55, 15, 56, 29, 0, 2, 26, 15, 13, 11, 57, 22, 2,
- 11, 58, 15, 59, 29, 0, 2, 26, 15, 13, 11, 60, 22, 2, 11, 61, 15, 62, 29, 0,
- 2, 26, 15, 13, 11, 63, 22, 2, 11, 64, 15, 65, 29, 0, 2, 26, 15, 13, 11, 66,
- 22, 2, 11, 67, 15, 68, 29, 0, 2, 26, 15, 13, 11, 69, 15, 13, 18, 18, 26, 15,
- 13, 11, 70, 15, 13, 18, 21, 26, 15, 13, 11, 71, 15, 13, 18, 24, 26, 15, 13, 11,
- 72, 15, 13, 18, 27, 26, 15, 13, 11, 73, 15, 13, 18, 30, 26, 15, 13, 11, 74, 15,
- 13, 18, 33, 26, 15, 13, 11, 75, 15, 13, 18, 36, 26, 15, 13, 11, 76, 15, 13, 18,
- 39, 26, 15, 13, 11, 77, 15, 13, 18, 42, 26, 15, 13, 11, 78, 15, 13, 18, 45, 26,
- 15, 13, 11, 79, 15, 13, 18, 48, 26, 15, 13, 11, 80, 15, 13, 18, 51, 26, 15, 13,
- 11, 81, 15, 13, 18, 54, 26, 0, 0, 0, 0, 0, 0, 0, 0, 82, 2, 0, 0, 0,
- 10, 73, 85, 80, 77, 65, 84, 82, 73, 88, 0, 2, 0, 0, 0, 7,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17,
- 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0,
- 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0,
- 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,
-101, 77, 97,116,114,105,120, 0, 2, 0, 0, 0, 8,115,101,116, 99,101,108,108,
- 0, 4, 0, 0, 0, 7, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117,
- 97, 0, 0, 0, 0, 20, 8, 4, 15, 3, 13, 0, 13, 1, 11, 5, 42, 13, 2, 42,
- 13, 3, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,108,
- 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,108, 0, 2, 0, 0,
- 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0,
- 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 8,
-103,101,116, 99,101,108,108, 0, 4, 0, 0, 0, 11, 0, 0, 0, 12, 64,109, 97,
-116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 18, 8, 4, 15, 3, 13, 0, 13,
- 1, 11, 5, 42, 13, 2, 42, 3, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2,
- 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,
-108, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,
-116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0,
- 2, 0, 0, 0, 10,105,117,112,109, 97,116,114,105,120, 0, 4, 0, 0, 0, 15,
- 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 12,
- 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, 77, 65, 84, 82, 73,
- 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2,
- 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 7,109, 97,116,114,105,120, 0,
- 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2,
- 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 18,105,117,
-112, 95,109, 97,116, 95, 97, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0,
- 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 21,105,117,112, 95,
-109, 97,116, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 8,101,100,105,116,105,111,110, 0, 2, 0, 0, 0, 11, 69, 68, 73, 84, 73,
- 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,101,
-100,105,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114,111,112, 0,
- 2, 0, 0, 0, 8, 68, 82, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,
-112, 95,109, 97,116, 95,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 11,100,
-114,111,112,115,101,108,101, 99,116, 0, 2, 0, 0, 0, 14, 68, 82, 79, 80, 83,
- 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,109, 97,
-116, 95,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0,
- 10,101,110,116,101,114,105,116,101,109, 0, 2, 0, 0, 0, 13, 69, 78, 84, 69,
- 82, 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,
-116, 95,101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 10,
-108,101, 97,118,101,105,116,101,109, 0, 2, 0, 0, 0, 13, 76, 69, 65, 86, 69,
- 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116,
- 95,108,101, 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 6, 99,
-108,105, 99,107, 0, 2, 0, 0, 0, 9, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2,
- 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, 99,108,105, 99,107, 95, 99, 98,
- 0, 2, 0, 0, 0, 10,115, 99,114,111,108,108,116,111,112, 0, 2, 0, 0, 0,
- 13, 83, 67, 82, 79, 76, 76, 84, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,
-117,112, 95,109, 97,116, 95,115, 99,114,111,108,108,116,111,112, 95, 99, 98, 0,
- 2, 0, 0, 0, 8,118, 97,108,117,101, 99, 98, 0, 2, 0, 0, 0, 9, 86, 65,
- 76, 85, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95,
-118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114, 97,119, 0, 2,
- 0, 0, 0, 8, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112,
- 95,109, 97,116, 95,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114,
-111,112, 99,104,101, 99,107, 0, 2, 0, 0, 0, 13, 68, 82, 79, 80, 67, 72, 69,
- 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, 95,100,
-114,111,112, 99,104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 10,102,103, 99,
-111,108,111,114, 99, 98, 0, 2, 0, 0, 0, 11, 70, 71, 67, 79, 76, 79, 82, 95,
- 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,102,103, 99,111,
-108,111,114, 95, 99, 98, 0, 2, 0, 0, 0, 10, 98,103, 99,111,108,111,114, 99,
- 98, 0, 2, 0, 0, 0, 11, 66, 71, 67, 79, 76, 79, 82, 95, 67, 66, 0, 2, 0,
- 0, 0, 19,105,117,112, 95,109, 97,116, 95, 98,103, 99,111,108,111,114, 95, 99,
- 98, 0, 2, 0, 0, 0, 11,118, 97,108,117,101, 95,101,100,105,116, 0, 2, 0,
- 0, 0, 14, 86, 65, 76, 85, 69, 95, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, 0,
- 0, 22,105,117,112, 95,109, 97,116, 95,118, 97,108,117,101, 95,101,100,105,116,
- 95, 99, 98, 0, 2, 0, 0, 0, 12,109, 97,114,107,101,100,105,116, 95, 99, 98,
- 0, 2, 0, 0, 0, 12, 77, 65, 82, 75, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0,
- 0, 0, 20,105,117,112, 95,109, 97,116, 95,109, 97,114,107,101,100,105,116, 95,
- 99, 98, 0, 2, 0, 0, 0, 8,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0,
- 8, 77, 65, 82, 75, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97,
-116, 95,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,109,111,117,115,101,
- 95, 99, 98, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 17,105,117,112, 95,109, 97,116, 95,109,111,117,115,101, 95, 99, 98, 0,
- 2, 0, 0, 0, 8,102,111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 8, 70, 79,
- 78, 84, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97,116, 95,102,
-111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 11,101,100,105,116,105,111,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 8,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0,
- 14,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 13,
-101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 13,108,101,
- 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,105, 99,
-107, 95, 99, 98, 0, 2, 0, 0, 0, 13,115, 99,114,111,108,108,116,111,112, 95,
- 99, 98, 0, 2, 0, 0, 0, 9,118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 8,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,114,111,112, 99,
-104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 11,102,103, 99,111,108,111,114,
- 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,103, 99,111,108,111,114, 95, 99, 98, 0,
- 2, 0, 0, 0, 14,118, 97,108,117,101, 95,101,100,105,116, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/matrix.lo");
-}
diff --git a/iup/srclua3/loh/matrix_be32.loh b/iup/srclua3/loh/matrix_be32.loh
deleted file mode 100755
index 5f88a5b..0000000
--- a/iup/srclua3/loh/matrix_be32.loh
+++ /dev/null
@@ -1,120 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/matrix_be32.lo");
-*/
-/* ../obj/iupluacontrols3/matrix_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,109, 97,116,114,105,
-120, 46,108,117, 97, 0, 0, 0, 1,162, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0,
- 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 15, 0, 11, 7,
- 11, 8, 26, 11, 10, 25, 9, 15, 11, 11, 12, 15, 9, 26, 15, 13, 18, 14, 11, 12,
- 15, 15, 26, 15, 13, 18, 16, 11, 12, 15, 17, 26, 15, 13, 11, 18, 22, 2, 11, 19,
- 15, 20, 29, 0, 2, 26, 15, 13, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26,
- 15, 13, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 13, 11, 27, 22, 2,
- 11, 28, 15, 29, 29, 0, 2, 26, 15, 13, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0,
- 2, 26, 15, 13, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 13, 11, 36,
- 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 13, 11, 39, 22, 2, 11, 40, 15, 41,
- 29, 0, 2, 26, 15, 13, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 13,
- 11, 45, 22, 2, 11, 46, 15, 47, 29, 0, 2, 26, 15, 13, 11, 48, 22, 2, 11, 49,
- 15, 50, 29, 0, 2, 26, 15, 13, 11, 51, 22, 2, 11, 52, 15, 53, 29, 0, 2, 26,
- 15, 13, 11, 54, 22, 2, 11, 55, 15, 56, 29, 0, 2, 26, 15, 13, 11, 57, 22, 2,
- 11, 58, 15, 59, 29, 0, 2, 26, 15, 13, 11, 60, 22, 2, 11, 61, 15, 62, 29, 0,
- 2, 26, 15, 13, 11, 63, 22, 2, 11, 64, 15, 65, 29, 0, 2, 26, 15, 13, 11, 66,
- 22, 2, 11, 67, 15, 68, 29, 0, 2, 26, 15, 13, 11, 69, 15, 13, 18, 18, 26, 15,
- 13, 11, 70, 15, 13, 18, 21, 26, 15, 13, 11, 71, 15, 13, 18, 24, 26, 15, 13, 11,
- 72, 15, 13, 18, 27, 26, 15, 13, 11, 73, 15, 13, 18, 30, 26, 15, 13, 11, 74, 15,
- 13, 18, 33, 26, 15, 13, 11, 75, 15, 13, 18, 36, 26, 15, 13, 11, 76, 15, 13, 18,
- 39, 26, 15, 13, 11, 77, 15, 13, 18, 42, 26, 15, 13, 11, 78, 15, 13, 18, 45, 26,
- 15, 13, 11, 79, 15, 13, 18, 48, 26, 15, 13, 11, 80, 15, 13, 18, 51, 26, 15, 13,
- 11, 81, 15, 13, 18, 54, 26, 0, 0, 0, 0, 0, 0, 0, 0, 82, 2, 0, 0, 0,
- 10, 73, 85, 80, 77, 65, 84, 82, 73, 88, 0, 2, 0, 0, 0, 7,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17,
- 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0,
- 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0,
- 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,
-101, 77, 97,116,114,105,120, 0, 2, 0, 0, 0, 8,115,101,116, 99,101,108,108,
- 0, 4, 0, 0, 0, 7, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117,
- 97, 0, 0, 0, 0, 20, 8, 4, 15, 3, 13, 0, 13, 1, 11, 5, 42, 13, 2, 42,
- 13, 3, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,108,
- 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,108, 0, 2, 0, 0,
- 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0,
- 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 8,
-103,101,116, 99,101,108,108, 0, 4, 0, 0, 0, 11, 0, 0, 0, 12, 64,109, 97,
-116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 18, 8, 4, 15, 3, 13, 0, 13,
- 1, 11, 5, 42, 13, 2, 42, 3, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2,
- 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,
-108, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,
-116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0,
- 2, 0, 0, 0, 10,105,117,112,109, 97,116,114,105,120, 0, 4, 0, 0, 0, 15,
- 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 12,
- 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, 77, 65, 84, 82, 73,
- 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2,
- 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 7,109, 97,116,114,105,120, 0,
- 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2,
- 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 18,105,117,
-112, 95,109, 97,116, 95, 97, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0,
- 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 21,105,117,112, 95,
-109, 97,116, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 8,101,100,105,116,105,111,110, 0, 2, 0, 0, 0, 11, 69, 68, 73, 84, 73,
- 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,101,
-100,105,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114,111,112, 0,
- 2, 0, 0, 0, 8, 68, 82, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,
-112, 95,109, 97,116, 95,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 11,100,
-114,111,112,115,101,108,101, 99,116, 0, 2, 0, 0, 0, 14, 68, 82, 79, 80, 83,
- 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,109, 97,
-116, 95,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0,
- 10,101,110,116,101,114,105,116,101,109, 0, 2, 0, 0, 0, 13, 69, 78, 84, 69,
- 82, 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,
-116, 95,101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 10,
-108,101, 97,118,101,105,116,101,109, 0, 2, 0, 0, 0, 13, 76, 69, 65, 86, 69,
- 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116,
- 95,108,101, 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 6, 99,
-108,105, 99,107, 0, 2, 0, 0, 0, 9, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2,
- 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, 99,108,105, 99,107, 95, 99, 98,
- 0, 2, 0, 0, 0, 10,115, 99,114,111,108,108,116,111,112, 0, 2, 0, 0, 0,
- 13, 83, 67, 82, 79, 76, 76, 84, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,
-117,112, 95,109, 97,116, 95,115, 99,114,111,108,108,116,111,112, 95, 99, 98, 0,
- 2, 0, 0, 0, 8,118, 97,108,117,101, 99, 98, 0, 2, 0, 0, 0, 9, 86, 65,
- 76, 85, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95,
-118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114, 97,119, 0, 2,
- 0, 0, 0, 8, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112,
- 95,109, 97,116, 95,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114,
-111,112, 99,104,101, 99,107, 0, 2, 0, 0, 0, 13, 68, 82, 79, 80, 67, 72, 69,
- 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, 95,100,
-114,111,112, 99,104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 10,102,103, 99,
-111,108,111,114, 99, 98, 0, 2, 0, 0, 0, 11, 70, 71, 67, 79, 76, 79, 82, 95,
- 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,102,103, 99,111,
-108,111,114, 95, 99, 98, 0, 2, 0, 0, 0, 10, 98,103, 99,111,108,111,114, 99,
- 98, 0, 2, 0, 0, 0, 11, 66, 71, 67, 79, 76, 79, 82, 95, 67, 66, 0, 2, 0,
- 0, 0, 19,105,117,112, 95,109, 97,116, 95, 98,103, 99,111,108,111,114, 95, 99,
- 98, 0, 2, 0, 0, 0, 11,118, 97,108,117,101, 95,101,100,105,116, 0, 2, 0,
- 0, 0, 14, 86, 65, 76, 85, 69, 95, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, 0,
- 0, 22,105,117,112, 95,109, 97,116, 95,118, 97,108,117,101, 95,101,100,105,116,
- 95, 99, 98, 0, 2, 0, 0, 0, 12,109, 97,114,107,101,100,105,116, 95, 99, 98,
- 0, 2, 0, 0, 0, 12, 77, 65, 82, 75, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0,
- 0, 0, 20,105,117,112, 95,109, 97,116, 95,109, 97,114,107,101,100,105,116, 95,
- 99, 98, 0, 2, 0, 0, 0, 8,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0,
- 8, 77, 65, 82, 75, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97,
-116, 95,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,109,111,117,115,101,
- 95, 99, 98, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 17,105,117,112, 95,109, 97,116, 95,109,111,117,115,101, 95, 99, 98, 0,
- 2, 0, 0, 0, 8,102,111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 8, 70, 79,
- 78, 84, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97,116, 95,102,
-111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 11,101,100,105,116,105,111,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 8,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0,
- 14,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 13,
-101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 13,108,101,
- 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,105, 99,
-107, 95, 99, 98, 0, 2, 0, 0, 0, 13,115, 99,114,111,108,108,116,111,112, 95,
- 99, 98, 0, 2, 0, 0, 0, 9,118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 8,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,114,111,112, 99,
-104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 11,102,103, 99,111,108,111,114,
- 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,103, 99,111,108,111,114, 95, 99, 98, 0,
- 2, 0, 0, 0, 14,118, 97,108,117,101, 95,101,100,105,116, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/matrix_be32.lo");
-}
diff --git a/iup/srclua3/loh/matrix_be64.loh b/iup/srclua3/loh/matrix_be64.loh
deleted file mode 100755
index 87c64b7..0000000
--- a/iup/srclua3/loh/matrix_be64.loh
+++ /dev/null
@@ -1,120 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/matrix_be64.lo");
-*/
-/* ../obj/iupluacontrols3/matrix_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,109, 97,116,114,105,
-120, 46,108,117, 97, 0, 0, 0, 1,162, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0,
- 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 15, 0, 11, 7,
- 11, 8, 26, 11, 10, 25, 9, 15, 11, 11, 12, 15, 9, 26, 15, 13, 18, 14, 11, 12,
- 15, 15, 26, 15, 13, 18, 16, 11, 12, 15, 17, 26, 15, 13, 11, 18, 22, 2, 11, 19,
- 15, 20, 29, 0, 2, 26, 15, 13, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26,
- 15, 13, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 13, 11, 27, 22, 2,
- 11, 28, 15, 29, 29, 0, 2, 26, 15, 13, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0,
- 2, 26, 15, 13, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 13, 11, 36,
- 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 13, 11, 39, 22, 2, 11, 40, 15, 41,
- 29, 0, 2, 26, 15, 13, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 13,
- 11, 45, 22, 2, 11, 46, 15, 47, 29, 0, 2, 26, 15, 13, 11, 48, 22, 2, 11, 49,
- 15, 50, 29, 0, 2, 26, 15, 13, 11, 51, 22, 2, 11, 52, 15, 53, 29, 0, 2, 26,
- 15, 13, 11, 54, 22, 2, 11, 55, 15, 56, 29, 0, 2, 26, 15, 13, 11, 57, 22, 2,
- 11, 58, 15, 59, 29, 0, 2, 26, 15, 13, 11, 60, 22, 2, 11, 61, 15, 62, 29, 0,
- 2, 26, 15, 13, 11, 63, 22, 2, 11, 64, 15, 65, 29, 0, 2, 26, 15, 13, 11, 66,
- 22, 2, 11, 67, 15, 68, 29, 0, 2, 26, 15, 13, 11, 69, 15, 13, 18, 18, 26, 15,
- 13, 11, 70, 15, 13, 18, 21, 26, 15, 13, 11, 71, 15, 13, 18, 24, 26, 15, 13, 11,
- 72, 15, 13, 18, 27, 26, 15, 13, 11, 73, 15, 13, 18, 30, 26, 15, 13, 11, 74, 15,
- 13, 18, 33, 26, 15, 13, 11, 75, 15, 13, 18, 36, 26, 15, 13, 11, 76, 15, 13, 18,
- 39, 26, 15, 13, 11, 77, 15, 13, 18, 42, 26, 15, 13, 11, 78, 15, 13, 18, 45, 26,
- 15, 13, 11, 79, 15, 13, 18, 48, 26, 15, 13, 11, 80, 15, 13, 18, 51, 26, 15, 13,
- 11, 81, 15, 13, 18, 54, 26, 0, 0, 0, 0, 0, 0, 0, 0, 82, 2, 0, 0, 0,
- 10, 73, 85, 80, 77, 65, 84, 82, 73, 88, 0, 2, 0, 0, 0, 7,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17,
- 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0,
- 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0,
- 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,
-101, 77, 97,116,114,105,120, 0, 2, 0, 0, 0, 8,115,101,116, 99,101,108,108,
- 0, 4, 0, 0, 0, 7, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117,
- 97, 0, 0, 0, 0, 20, 8, 4, 15, 3, 13, 0, 13, 1, 11, 5, 42, 13, 2, 42,
- 13, 3, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,108,
- 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,108, 0, 2, 0, 0,
- 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0,
- 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 8,
-103,101,116, 99,101,108,108, 0, 4, 0, 0, 0, 11, 0, 0, 0, 12, 64,109, 97,
-116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 18, 8, 4, 15, 3, 13, 0, 13,
- 1, 11, 5, 42, 13, 2, 42, 3, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2,
- 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,
-108, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,
-116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0,
- 2, 0, 0, 0, 10,105,117,112,109, 97,116,114,105,120, 0, 4, 0, 0, 0, 15,
- 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 12,
- 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, 77, 65, 84, 82, 73,
- 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2,
- 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 7,109, 97,116,114,105,120, 0,
- 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2,
- 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 18,105,117,
-112, 95,109, 97,116, 95, 97, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0,
- 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 21,105,117,112, 95,
-109, 97,116, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 8,101,100,105,116,105,111,110, 0, 2, 0, 0, 0, 11, 69, 68, 73, 84, 73,
- 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,101,
-100,105,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114,111,112, 0,
- 2, 0, 0, 0, 8, 68, 82, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,
-112, 95,109, 97,116, 95,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 11,100,
-114,111,112,115,101,108,101, 99,116, 0, 2, 0, 0, 0, 14, 68, 82, 79, 80, 83,
- 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,109, 97,
-116, 95,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0,
- 10,101,110,116,101,114,105,116,101,109, 0, 2, 0, 0, 0, 13, 69, 78, 84, 69,
- 82, 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,
-116, 95,101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 10,
-108,101, 97,118,101,105,116,101,109, 0, 2, 0, 0, 0, 13, 76, 69, 65, 86, 69,
- 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116,
- 95,108,101, 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 6, 99,
-108,105, 99,107, 0, 2, 0, 0, 0, 9, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2,
- 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, 99,108,105, 99,107, 95, 99, 98,
- 0, 2, 0, 0, 0, 10,115, 99,114,111,108,108,116,111,112, 0, 2, 0, 0, 0,
- 13, 83, 67, 82, 79, 76, 76, 84, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,
-117,112, 95,109, 97,116, 95,115, 99,114,111,108,108,116,111,112, 95, 99, 98, 0,
- 2, 0, 0, 0, 8,118, 97,108,117,101, 99, 98, 0, 2, 0, 0, 0, 9, 86, 65,
- 76, 85, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95,
-118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114, 97,119, 0, 2,
- 0, 0, 0, 8, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112,
- 95,109, 97,116, 95,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114,
-111,112, 99,104,101, 99,107, 0, 2, 0, 0, 0, 13, 68, 82, 79, 80, 67, 72, 69,
- 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, 95,100,
-114,111,112, 99,104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 10,102,103, 99,
-111,108,111,114, 99, 98, 0, 2, 0, 0, 0, 11, 70, 71, 67, 79, 76, 79, 82, 95,
- 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,102,103, 99,111,
-108,111,114, 95, 99, 98, 0, 2, 0, 0, 0, 10, 98,103, 99,111,108,111,114, 99,
- 98, 0, 2, 0, 0, 0, 11, 66, 71, 67, 79, 76, 79, 82, 95, 67, 66, 0, 2, 0,
- 0, 0, 19,105,117,112, 95,109, 97,116, 95, 98,103, 99,111,108,111,114, 95, 99,
- 98, 0, 2, 0, 0, 0, 11,118, 97,108,117,101, 95,101,100,105,116, 0, 2, 0,
- 0, 0, 14, 86, 65, 76, 85, 69, 95, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, 0,
- 0, 22,105,117,112, 95,109, 97,116, 95,118, 97,108,117,101, 95,101,100,105,116,
- 95, 99, 98, 0, 2, 0, 0, 0, 12,109, 97,114,107,101,100,105,116, 95, 99, 98,
- 0, 2, 0, 0, 0, 12, 77, 65, 82, 75, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0,
- 0, 0, 20,105,117,112, 95,109, 97,116, 95,109, 97,114,107,101,100,105,116, 95,
- 99, 98, 0, 2, 0, 0, 0, 8,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0,
- 8, 77, 65, 82, 75, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97,
-116, 95,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,109,111,117,115,101,
- 95, 99, 98, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 17,105,117,112, 95,109, 97,116, 95,109,111,117,115,101, 95, 99, 98, 0,
- 2, 0, 0, 0, 8,102,111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 8, 70, 79,
- 78, 84, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97,116, 95,102,
-111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 11,101,100,105,116,105,111,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 8,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0,
- 14,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 13,
-101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 13,108,101,
- 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,105, 99,
-107, 95, 99, 98, 0, 2, 0, 0, 0, 13,115, 99,114,111,108,108,116,111,112, 95,
- 99, 98, 0, 2, 0, 0, 0, 9,118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 8,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,114,111,112, 99,
-104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 11,102,103, 99,111,108,111,114,
- 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,103, 99,111,108,111,114, 95, 99, 98, 0,
- 2, 0, 0, 0, 14,118, 97,108,117,101, 95,101,100,105,116, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/matrix_be64.lo");
-}
diff --git a/iup/srclua3/loh/matrix_le64.loh b/iup/srclua3/loh/matrix_le64.loh
deleted file mode 100755
index 208d715..0000000
--- a/iup/srclua3/loh/matrix_le64.loh
+++ /dev/null
@@ -1,120 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/matrix_le64.lo");
-*/
-/* ../obj/iupluacontrols3/matrix_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,109, 97,116,114,105,
-120, 46,108,117, 97, 0, 0, 0, 1,162, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0,
- 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 15, 0, 11, 7,
- 11, 8, 26, 11, 10, 25, 9, 15, 11, 11, 12, 15, 9, 26, 15, 13, 18, 14, 11, 12,
- 15, 15, 26, 15, 13, 18, 16, 11, 12, 15, 17, 26, 15, 13, 11, 18, 22, 2, 11, 19,
- 15, 20, 29, 0, 2, 26, 15, 13, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26,
- 15, 13, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 13, 11, 27, 22, 2,
- 11, 28, 15, 29, 29, 0, 2, 26, 15, 13, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0,
- 2, 26, 15, 13, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 13, 11, 36,
- 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 13, 11, 39, 22, 2, 11, 40, 15, 41,
- 29, 0, 2, 26, 15, 13, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 13,
- 11, 45, 22, 2, 11, 46, 15, 47, 29, 0, 2, 26, 15, 13, 11, 48, 22, 2, 11, 49,
- 15, 50, 29, 0, 2, 26, 15, 13, 11, 51, 22, 2, 11, 52, 15, 53, 29, 0, 2, 26,
- 15, 13, 11, 54, 22, 2, 11, 55, 15, 56, 29, 0, 2, 26, 15, 13, 11, 57, 22, 2,
- 11, 58, 15, 59, 29, 0, 2, 26, 15, 13, 11, 60, 22, 2, 11, 61, 15, 62, 29, 0,
- 2, 26, 15, 13, 11, 63, 22, 2, 11, 64, 15, 65, 29, 0, 2, 26, 15, 13, 11, 66,
- 22, 2, 11, 67, 15, 68, 29, 0, 2, 26, 15, 13, 11, 69, 15, 13, 18, 18, 26, 15,
- 13, 11, 70, 15, 13, 18, 21, 26, 15, 13, 11, 71, 15, 13, 18, 24, 26, 15, 13, 11,
- 72, 15, 13, 18, 27, 26, 15, 13, 11, 73, 15, 13, 18, 30, 26, 15, 13, 11, 74, 15,
- 13, 18, 33, 26, 15, 13, 11, 75, 15, 13, 18, 36, 26, 15, 13, 11, 76, 15, 13, 18,
- 39, 26, 15, 13, 11, 77, 15, 13, 18, 42, 26, 15, 13, 11, 78, 15, 13, 18, 45, 26,
- 15, 13, 11, 79, 15, 13, 18, 48, 26, 15, 13, 11, 80, 15, 13, 18, 51, 26, 15, 13,
- 11, 81, 15, 13, 18, 54, 26, 0, 0, 0, 0, 0, 0, 0, 0, 82, 2, 0, 0, 0,
- 10, 73, 85, 80, 77, 65, 84, 82, 73, 88, 0, 2, 0, 0, 0, 7,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17,
- 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0,
- 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0,
- 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,
-101, 77, 97,116,114,105,120, 0, 2, 0, 0, 0, 8,115,101,116, 99,101,108,108,
- 0, 4, 0, 0, 0, 7, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117,
- 97, 0, 0, 0, 0, 20, 8, 4, 15, 3, 13, 0, 13, 1, 11, 5, 42, 13, 2, 42,
- 13, 3, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,108,
- 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,108, 0, 2, 0, 0,
- 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0,
- 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 8,
-103,101,116, 99,101,108,108, 0, 4, 0, 0, 0, 11, 0, 0, 0, 12, 64,109, 97,
-116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 18, 8, 4, 15, 3, 13, 0, 13,
- 1, 11, 5, 42, 13, 2, 42, 3, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2,
- 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,
-108, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,
-116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0,
- 2, 0, 0, 0, 10,105,117,112,109, 97,116,114,105,120, 0, 4, 0, 0, 0, 15,
- 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 12,
- 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, 77, 65, 84, 82, 73,
- 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2,
- 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 7,109, 97,116,114,105,120, 0,
- 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2,
- 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 18,105,117,
-112, 95,109, 97,116, 95, 97, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0,
- 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 21,105,117,112, 95,
-109, 97,116, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 8,101,100,105,116,105,111,110, 0, 2, 0, 0, 0, 11, 69, 68, 73, 84, 73,
- 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,101,
-100,105,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114,111,112, 0,
- 2, 0, 0, 0, 8, 68, 82, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,
-112, 95,109, 97,116, 95,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 11,100,
-114,111,112,115,101,108,101, 99,116, 0, 2, 0, 0, 0, 14, 68, 82, 79, 80, 83,
- 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,109, 97,
-116, 95,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0,
- 10,101,110,116,101,114,105,116,101,109, 0, 2, 0, 0, 0, 13, 69, 78, 84, 69,
- 82, 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,
-116, 95,101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 10,
-108,101, 97,118,101,105,116,101,109, 0, 2, 0, 0, 0, 13, 76, 69, 65, 86, 69,
- 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116,
- 95,108,101, 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 6, 99,
-108,105, 99,107, 0, 2, 0, 0, 0, 9, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2,
- 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, 99,108,105, 99,107, 95, 99, 98,
- 0, 2, 0, 0, 0, 10,115, 99,114,111,108,108,116,111,112, 0, 2, 0, 0, 0,
- 13, 83, 67, 82, 79, 76, 76, 84, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,
-117,112, 95,109, 97,116, 95,115, 99,114,111,108,108,116,111,112, 95, 99, 98, 0,
- 2, 0, 0, 0, 8,118, 97,108,117,101, 99, 98, 0, 2, 0, 0, 0, 9, 86, 65,
- 76, 85, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95,
-118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114, 97,119, 0, 2,
- 0, 0, 0, 8, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112,
- 95,109, 97,116, 95,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114,
-111,112, 99,104,101, 99,107, 0, 2, 0, 0, 0, 13, 68, 82, 79, 80, 67, 72, 69,
- 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, 95,100,
-114,111,112, 99,104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 10,102,103, 99,
-111,108,111,114, 99, 98, 0, 2, 0, 0, 0, 11, 70, 71, 67, 79, 76, 79, 82, 95,
- 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,102,103, 99,111,
-108,111,114, 95, 99, 98, 0, 2, 0, 0, 0, 10, 98,103, 99,111,108,111,114, 99,
- 98, 0, 2, 0, 0, 0, 11, 66, 71, 67, 79, 76, 79, 82, 95, 67, 66, 0, 2, 0,
- 0, 0, 19,105,117,112, 95,109, 97,116, 95, 98,103, 99,111,108,111,114, 95, 99,
- 98, 0, 2, 0, 0, 0, 11,118, 97,108,117,101, 95,101,100,105,116, 0, 2, 0,
- 0, 0, 14, 86, 65, 76, 85, 69, 95, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, 0,
- 0, 22,105,117,112, 95,109, 97,116, 95,118, 97,108,117,101, 95,101,100,105,116,
- 95, 99, 98, 0, 2, 0, 0, 0, 12,109, 97,114,107,101,100,105,116, 95, 99, 98,
- 0, 2, 0, 0, 0, 12, 77, 65, 82, 75, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0,
- 0, 0, 20,105,117,112, 95,109, 97,116, 95,109, 97,114,107,101,100,105,116, 95,
- 99, 98, 0, 2, 0, 0, 0, 8,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0,
- 8, 77, 65, 82, 75, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97,
-116, 95,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,109,111,117,115,101,
- 95, 99, 98, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 17,105,117,112, 95,109, 97,116, 95,109,111,117,115,101, 95, 99, 98, 0,
- 2, 0, 0, 0, 8,102,111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 8, 70, 79,
- 78, 84, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97,116, 95,102,
-111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 11,101,100,105,116,105,111,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 8,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0,
- 14,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 13,
-101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 13,108,101,
- 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,105, 99,
-107, 95, 99, 98, 0, 2, 0, 0, 0, 13,115, 99,114,111,108,108,116,111,112, 95,
- 99, 98, 0, 2, 0, 0, 0, 9,118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 8,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,114,111,112, 99,
-104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 11,102,103, 99,111,108,111,114,
- 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,103, 99,111,108,111,114, 95, 99, 98, 0,
- 2, 0, 0, 0, 14,118, 97,108,117,101, 95,101,100,105,116, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/matrix_le64.lo");
-}
diff --git a/iup/srclua3/loh/matrix_le64w.loh b/iup/srclua3/loh/matrix_le64w.loh
deleted file mode 100755
index ed95bb7..0000000
--- a/iup/srclua3/loh/matrix_le64w.loh
+++ /dev/null
@@ -1,118 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luamatrix_le64w.lo");
-*/
-/* ../obj/iupluacontrols3/luamatrix_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 15, 64,108,117, 97,109, 97,
-116,114,105,120, 46,108,117, 97, 0, 0, 0, 1,148, 5, 0, 22, 1, 11, 1, 15,
- 2, 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 15,
- 0, 11, 7, 11, 8, 26, 11, 10, 25, 9, 15, 11, 11, 12, 15, 9, 26, 15, 13, 18,
- 14, 11, 12, 15, 15, 26, 15, 13, 18, 16, 11, 12, 15, 17, 26, 15, 13, 11, 18, 22,
- 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 13, 11, 21, 22, 2, 11, 22, 15, 23, 29,
- 0, 2, 26, 15, 13, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 13, 11,
- 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 13, 11, 30, 22, 2, 11, 31, 15,
- 32, 29, 0, 2, 26, 15, 13, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15,
- 13, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 13, 11, 39, 22, 2, 11,
- 40, 15, 41, 29, 0, 2, 26, 15, 13, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2,
- 26, 15, 13, 11, 45, 22, 2, 11, 46, 15, 47, 29, 0, 2, 26, 15, 13, 11, 48, 22,
- 2, 11, 49, 15, 50, 29, 0, 2, 26, 15, 13, 11, 51, 22, 2, 11, 52, 15, 53, 29,
- 0, 2, 26, 15, 13, 11, 54, 22, 2, 11, 55, 15, 56, 29, 0, 2, 26, 15, 13, 11,
- 57, 22, 2, 11, 58, 15, 59, 29, 0, 2, 26, 15, 13, 11, 60, 22, 2, 11, 61, 15,
- 62, 29, 0, 2, 26, 15, 13, 11, 63, 22, 2, 11, 64, 15, 65, 29, 0, 2, 26, 15,
- 13, 11, 66, 15, 13, 18, 18, 26, 15, 13, 11, 67, 15, 13, 18, 21, 26, 15, 13, 11,
- 68, 15, 13, 18, 24, 26, 15, 13, 11, 69, 15, 13, 18, 27, 26, 15, 13, 11, 70, 15,
- 13, 18, 30, 26, 15, 13, 11, 71, 15, 13, 18, 33, 26, 15, 13, 11, 72, 15, 13, 18,
- 36, 26, 15, 13, 11, 73, 15, 13, 18, 39, 26, 15, 13, 11, 74, 15, 13, 18, 42, 26,
- 15, 13, 11, 75, 15, 13, 18, 45, 26, 15, 13, 11, 76, 15, 13, 18, 48, 26, 15, 13,
- 11, 77, 15, 13, 18, 51, 26, 15, 13, 11, 78, 15, 13, 18, 54, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 79, 2, 0, 0, 0, 10, 73, 85, 80, 77, 65, 84, 82, 73, 88, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68,
- 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,
-101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 15, 64,108,117, 97,109,
- 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2,
- 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 77, 97,116,114,105,120, 0,
- 2, 0, 0, 0, 8,115,101,116, 99,101,108,108, 0, 4, 0, 0, 0, 7, 0, 0,
- 0, 15, 64,108,117, 97,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0,
- 20, 8, 4, 15, 3, 13, 0, 13, 1, 11, 5, 42, 13, 2, 42, 13, 3, 2, 0, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,108, 0, 2, 0, 0, 0,
- 2, 99, 0, 2, 0, 0, 0, 4,118, 97,108, 0, 2, 0, 0, 0, 16, 73,117,112,
- 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,
-108,102, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 8,103,101,116, 99,101,
-108,108, 0, 4, 0, 0, 0, 11, 0, 0, 0, 15, 64,108,117, 97,109, 97,116,114,
-105,120, 46,108,117, 97, 0, 0, 0, 0, 18, 8, 4, 15, 3, 13, 0, 13, 1, 11,
- 5, 42, 13, 2, 42, 3, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0,
- 0, 2,108, 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,108, 0,
- 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101,
- 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0,
- 0, 0, 10,105,117,112,109, 97,116,114,105,120, 0, 4, 0, 0, 0, 15, 0, 0,
- 0, 15, 64,108,117, 97,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0,
- 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, 77, 65, 84, 82,
- 73, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 7,109, 97,116,114,105,120,
- 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0,
- 2, 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 18,105,
-117,112, 95,109, 97,116, 95, 97, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0,
- 0, 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 21,105,117,112,
- 95,109, 97,116, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0,
- 0, 0, 8,101,100,105,116,105,111,110, 0, 2, 0, 0, 0, 11, 69, 68, 73, 84,
- 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,
-101,100,105,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114,111,112,
- 0, 2, 0, 0, 0, 8, 68, 82, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,
-117,112, 95,109, 97,116, 95,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 11,
-100,114,111,112,115,101,108,101, 99,116, 0, 2, 0, 0, 0, 14, 68, 82, 79, 80,
- 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,109,
- 97,116, 95,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0,
- 0, 10,101,110,116,101,114,105,116,101,109, 0, 2, 0, 0, 0, 13, 69, 78, 84,
- 69, 82, 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109,
- 97,116, 95,101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0,
- 10,108,101, 97,118,101,105,116,101,109, 0, 2, 0, 0, 0, 13, 76, 69, 65, 86,
- 69, 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,
-116, 95,108,101, 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 6,
- 99,108,105, 99,107, 0, 2, 0, 0, 0, 9, 67, 76, 73, 67, 75, 95, 67, 66, 0,
- 2, 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, 99,108,105, 99,107, 95, 99,
- 98, 0, 2, 0, 0, 0, 10,115, 99,114,111,108,108,116,111,112, 0, 2, 0, 0,
- 0, 13, 83, 67, 82, 79, 76, 76, 84, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 21,
-105,117,112, 95,109, 97,116, 95,115, 99,114,111,108,108,116,111,112, 95, 99, 98,
- 0, 2, 0, 0, 0, 8,118, 97,108,117,101, 99, 98, 0, 2, 0, 0, 0, 9, 86,
- 65, 76, 85, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,109, 97,116,
- 95,118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114, 97,119, 0,
- 2, 0, 0, 0, 8, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,
-112, 95,109, 97,116, 95,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,
-114,111,112, 99,104,101, 99,107, 0, 2, 0, 0, 0, 13, 68, 82, 79, 80, 67, 72,
- 69, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, 95,
-100,114,111,112, 99,104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 10,102,103,
- 99,111,108,111,114, 99, 98, 0, 2, 0, 0, 0, 11, 70, 71, 67, 79, 76, 79, 82,
- 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,102,103, 99,
-111,108,111,114, 95, 99, 98, 0, 2, 0, 0, 0, 10, 98,103, 99,111,108,111,114,
- 99, 98, 0, 2, 0, 0, 0, 11, 66, 71, 67, 79, 76, 79, 82, 95, 67, 66, 0, 2,
- 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95, 98,103, 99,111,108,111,114, 95,
- 99, 98, 0, 2, 0, 0, 0, 11,118, 97,108,117,101, 95,101,100,105,116, 0, 2,
- 0, 0, 0, 14, 86, 65, 76, 85, 69, 95, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0,
- 0, 0, 22,105,117,112, 95,109, 97,116, 95,118, 97,108,117,101, 95,101,100,105,
-116, 95, 99, 98, 0, 2, 0, 0, 0, 12,109, 97,114,107,101,100,105,116, 95, 99,
- 98, 0, 2, 0, 0, 0, 12, 77, 65, 82, 75, 69, 68, 73, 84, 95, 67, 66, 0, 2,
- 0, 0, 0, 20,105,117,112, 95,109, 97,116, 95,109, 97,114,107,101,100,105,116,
- 95, 99, 98, 0, 2, 0, 0, 0, 8,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0,
- 0, 8, 77, 65, 82, 75, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109,
- 97,116, 95,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,109,111,117,115,
-101, 95, 99, 98, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 95, 67, 66, 0, 2,
- 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95,109,111,117,115,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 11,101,100,105,116,105,111,110, 95, 99, 98, 0, 2, 0, 0,
- 0, 8,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 14,100,114,111,112,115,
-101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 13,101,110,116,101,114,105,
-116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 13,108,101, 97,118,101,105,116,101,
-109, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,105, 99,107, 95, 99, 98, 0, 2,
- 0, 0, 0, 13,115, 99,114,111,108,108,116,111,112, 95, 99, 98, 0, 2, 0, 0,
- 0, 9,118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,100,114, 97,119,
- 95, 99, 98, 0, 2, 0, 0, 0, 13,100,114,111,112, 99,104,101, 99,107, 95, 99,
- 98, 0, 2, 0, 0, 0, 11,102,103, 99,111,108,111,114, 95, 99, 98, 0, 2, 0,
- 0, 0, 11, 98,103, 99,111,108,111,114, 95, 99, 98, 0, 2, 0, 0, 0, 14,118,
- 97,108,117,101, 95,101,100,105,116, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luamatrix_le64w.lo");
-}
diff --git a/iup/srclua3/loh/pplot.loh b/iup/srclua3/loh/pplot.loh
deleted file mode 100755
index 1a7aff0..0000000
--- a/iup/srclua3/loh/pplot.loh
+++ /dev/null
@@ -1,68 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua_pplot3/pplot.lo");
-*/
-/* ../obj/iuplua_pplot3/pplot.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,112,112,108,111,116,
- 46,108,117, 97, 0, 0, 0, 0,180, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25,
- 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15,
- 9, 18, 10, 11, 8, 15, 11, 26, 15, 9, 11, 12, 22, 2, 11, 13, 15, 14, 29, 0,
- 2, 26, 15, 9, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 9, 11, 18,
- 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 9, 11, 21, 22, 2, 11, 22, 15, 23,
- 29, 0, 2, 26, 15, 9, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 9,
- 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 9, 11, 30, 22, 2, 11, 31,
- 15, 32, 29, 0, 2, 26, 15, 9, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26,
- 15, 9, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 9, 11, 39, 22, 2,
- 11, 40, 15, 41, 29, 0, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 42, 2, 0, 0,
- 0, 9, 73, 85, 80, 80, 80, 76, 79, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17,
- 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0, 0, 0, 0,
- 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101,
- 80, 80,108,111,116, 0, 2, 0, 0, 0, 9,105,117,112,112,112,108,111,116, 0,
- 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 80,
- 80, 76, 79, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,112,112,108,111,
-116, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115,
- 0, 2, 0, 0, 0, 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 18,105,
-117,112, 95,112,112,108,111,116, 95,101,100,105,116, 95, 99, 98, 0, 2, 0, 0,
- 0, 13,101,100,105,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,
- 69, 68, 73, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,
-112, 95,112,112,108,111,116, 95,101,100,105,116, 98,101,103,105,110, 95, 99, 98,
- 0, 2, 0, 0, 0, 11,101,100,105,116,101,110,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 11, 69, 68, 73, 84, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,
-112, 95,112,112,108,111,116, 95,101,100,105,116,101,110,100, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10, 83,
- 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95,112,112,
-108,111,116, 95,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,115,
-101,108,101, 99,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 83,
- 69, 76, 69, 67, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,
-117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,116, 98,101,103,105,110,
- 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,101,110,100, 95, 99,
- 98, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 69, 78, 68, 95, 67, 66, 0,
- 2, 0, 0, 0, 23,105,117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,
-116,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,101,108,101,116,101, 95,
- 99, 98, 0, 2, 0, 0, 0, 10, 68, 69, 76, 69, 84, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 20,105,117,112, 95,112,112,108,111,116, 95,100,101,108,101,116,101, 95,
- 99, 98, 0, 2, 0, 0, 0, 15,100,101,108,101,116,101, 98,101,103,105,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 15, 68, 69, 76, 69, 84, 69, 66, 69, 71, 73, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95,112,112,108,111,116, 95,100,101,
-108,101,116,101, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,101,
-108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 13, 68, 69, 76, 69,
- 84, 69, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,112,112,
-108,111,116, 95,100,101,108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 11,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 11, 80, 82,
- 69, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,112,112,
-108,111,116, 95,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12,
-112,111,115,116,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, 80, 79, 83,
- 84, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,112,112,
-108,111,116, 95,112,111,115,116,100,114, 97,119, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua_pplot3/pplot.lo");
-}
diff --git a/iup/srclua3/loh/pplot_be32.loh b/iup/srclua3/loh/pplot_be32.loh
deleted file mode 100755
index 37f3b47..0000000
--- a/iup/srclua3/loh/pplot_be32.loh
+++ /dev/null
@@ -1,68 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua_pplot3/pplot_be32.lo");
-*/
-/* ../obj/iuplua_pplot3/pplot_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,112,112,108,111,116,
- 46,108,117, 97, 0, 0, 0, 0,180, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25,
- 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15,
- 9, 18, 10, 11, 8, 15, 11, 26, 15, 9, 11, 12, 22, 2, 11, 13, 15, 14, 29, 0,
- 2, 26, 15, 9, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 9, 11, 18,
- 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 9, 11, 21, 22, 2, 11, 22, 15, 23,
- 29, 0, 2, 26, 15, 9, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 9,
- 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 9, 11, 30, 22, 2, 11, 31,
- 15, 32, 29, 0, 2, 26, 15, 9, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26,
- 15, 9, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 9, 11, 39, 22, 2,
- 11, 40, 15, 41, 29, 0, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 42, 2, 0, 0,
- 0, 9, 73, 85, 80, 80, 80, 76, 79, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17,
- 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0, 0, 0, 0,
- 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101,
- 80, 80,108,111,116, 0, 2, 0, 0, 0, 9,105,117,112,112,112,108,111,116, 0,
- 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 80,
- 80, 76, 79, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,112,112,108,111,
-116, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115,
- 0, 2, 0, 0, 0, 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 18,105,
-117,112, 95,112,112,108,111,116, 95,101,100,105,116, 95, 99, 98, 0, 2, 0, 0,
- 0, 13,101,100,105,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,
- 69, 68, 73, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,
-112, 95,112,112,108,111,116, 95,101,100,105,116, 98,101,103,105,110, 95, 99, 98,
- 0, 2, 0, 0, 0, 11,101,100,105,116,101,110,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 11, 69, 68, 73, 84, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,
-112, 95,112,112,108,111,116, 95,101,100,105,116,101,110,100, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10, 83,
- 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95,112,112,
-108,111,116, 95,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,115,
-101,108,101, 99,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 83,
- 69, 76, 69, 67, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,
-117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,116, 98,101,103,105,110,
- 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,101,110,100, 95, 99,
- 98, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 69, 78, 68, 95, 67, 66, 0,
- 2, 0, 0, 0, 23,105,117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,
-116,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,101,108,101,116,101, 95,
- 99, 98, 0, 2, 0, 0, 0, 10, 68, 69, 76, 69, 84, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 20,105,117,112, 95,112,112,108,111,116, 95,100,101,108,101,116,101, 95,
- 99, 98, 0, 2, 0, 0, 0, 15,100,101,108,101,116,101, 98,101,103,105,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 15, 68, 69, 76, 69, 84, 69, 66, 69, 71, 73, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95,112,112,108,111,116, 95,100,101,
-108,101,116,101, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,101,
-108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 13, 68, 69, 76, 69,
- 84, 69, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,112,112,
-108,111,116, 95,100,101,108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 11,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 11, 80, 82,
- 69, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,112,112,
-108,111,116, 95,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12,
-112,111,115,116,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, 80, 79, 83,
- 84, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,112,112,
-108,111,116, 95,112,111,115,116,100,114, 97,119, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua_pplot3/pplot_be32.lo");
-}
diff --git a/iup/srclua3/loh/pplot_be64.loh b/iup/srclua3/loh/pplot_be64.loh
deleted file mode 100755
index 893c368..0000000
--- a/iup/srclua3/loh/pplot_be64.loh
+++ /dev/null
@@ -1,68 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua_pplot3/pplot_be64.lo");
-*/
-/* ../obj/iuplua_pplot3/pplot_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,112,112,108,111,116,
- 46,108,117, 97, 0, 0, 0, 0,180, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25,
- 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15,
- 9, 18, 10, 11, 8, 15, 11, 26, 15, 9, 11, 12, 22, 2, 11, 13, 15, 14, 29, 0,
- 2, 26, 15, 9, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 9, 11, 18,
- 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 9, 11, 21, 22, 2, 11, 22, 15, 23,
- 29, 0, 2, 26, 15, 9, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 9,
- 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 9, 11, 30, 22, 2, 11, 31,
- 15, 32, 29, 0, 2, 26, 15, 9, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26,
- 15, 9, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 9, 11, 39, 22, 2,
- 11, 40, 15, 41, 29, 0, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 42, 2, 0, 0,
- 0, 9, 73, 85, 80, 80, 80, 76, 79, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17,
- 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0, 0, 0, 0,
- 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101,
- 80, 80,108,111,116, 0, 2, 0, 0, 0, 9,105,117,112,112,112,108,111,116, 0,
- 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 80,
- 80, 76, 79, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,112,112,108,111,
-116, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115,
- 0, 2, 0, 0, 0, 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 18,105,
-117,112, 95,112,112,108,111,116, 95,101,100,105,116, 95, 99, 98, 0, 2, 0, 0,
- 0, 13,101,100,105,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,
- 69, 68, 73, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,
-112, 95,112,112,108,111,116, 95,101,100,105,116, 98,101,103,105,110, 95, 99, 98,
- 0, 2, 0, 0, 0, 11,101,100,105,116,101,110,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 11, 69, 68, 73, 84, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,
-112, 95,112,112,108,111,116, 95,101,100,105,116,101,110,100, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10, 83,
- 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95,112,112,
-108,111,116, 95,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,115,
-101,108,101, 99,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 83,
- 69, 76, 69, 67, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,
-117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,116, 98,101,103,105,110,
- 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,101,110,100, 95, 99,
- 98, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 69, 78, 68, 95, 67, 66, 0,
- 2, 0, 0, 0, 23,105,117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,
-116,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,101,108,101,116,101, 95,
- 99, 98, 0, 2, 0, 0, 0, 10, 68, 69, 76, 69, 84, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 20,105,117,112, 95,112,112,108,111,116, 95,100,101,108,101,116,101, 95,
- 99, 98, 0, 2, 0, 0, 0, 15,100,101,108,101,116,101, 98,101,103,105,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 15, 68, 69, 76, 69, 84, 69, 66, 69, 71, 73, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95,112,112,108,111,116, 95,100,101,
-108,101,116,101, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,101,
-108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 13, 68, 69, 76, 69,
- 84, 69, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,112,112,
-108,111,116, 95,100,101,108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 11,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 11, 80, 82,
- 69, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,112,112,
-108,111,116, 95,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12,
-112,111,115,116,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, 80, 79, 83,
- 84, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,112,112,
-108,111,116, 95,112,111,115,116,100,114, 97,119, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua_pplot3/pplot_be64.lo");
-}
diff --git a/iup/srclua3/loh/pplot_le64.loh b/iup/srclua3/loh/pplot_le64.loh
deleted file mode 100755
index 05a718d..0000000
--- a/iup/srclua3/loh/pplot_le64.loh
+++ /dev/null
@@ -1,68 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua_pplot3/pplot_le64.lo");
-*/
-/* ../obj/iuplua_pplot3/pplot_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,112,112,108,111,116,
- 46,108,117, 97, 0, 0, 0, 0,180, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25,
- 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15,
- 9, 18, 10, 11, 8, 15, 11, 26, 15, 9, 11, 12, 22, 2, 11, 13, 15, 14, 29, 0,
- 2, 26, 15, 9, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 9, 11, 18,
- 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 9, 11, 21, 22, 2, 11, 22, 15, 23,
- 29, 0, 2, 26, 15, 9, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 9,
- 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 9, 11, 30, 22, 2, 11, 31,
- 15, 32, 29, 0, 2, 26, 15, 9, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26,
- 15, 9, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 9, 11, 39, 22, 2,
- 11, 40, 15, 41, 29, 0, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 42, 2, 0, 0,
- 0, 9, 73, 85, 80, 80, 80, 76, 79, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17,
- 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0, 0, 0, 0,
- 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101,
- 80, 80,108,111,116, 0, 2, 0, 0, 0, 9,105,117,112,112,112,108,111,116, 0,
- 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0,
- 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 80,
- 80, 76, 79, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,112,112,108,111,
-116, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115,
- 0, 2, 0, 0, 0, 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 18,105,
-117,112, 95,112,112,108,111,116, 95,101,100,105,116, 95, 99, 98, 0, 2, 0, 0,
- 0, 13,101,100,105,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,
- 69, 68, 73, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,
-112, 95,112,112,108,111,116, 95,101,100,105,116, 98,101,103,105,110, 95, 99, 98,
- 0, 2, 0, 0, 0, 11,101,100,105,116,101,110,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 11, 69, 68, 73, 84, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,
-112, 95,112,112,108,111,116, 95,101,100,105,116,101,110,100, 95, 99, 98, 0, 2,
- 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10, 83,
- 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95,112,112,
-108,111,116, 95,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,115,
-101,108,101, 99,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 83,
- 69, 76, 69, 67, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,
-117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,116, 98,101,103,105,110,
- 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,101,110,100, 95, 99,
- 98, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 69, 78, 68, 95, 67, 66, 0,
- 2, 0, 0, 0, 23,105,117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,
-116,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,101,108,101,116,101, 95,
- 99, 98, 0, 2, 0, 0, 0, 10, 68, 69, 76, 69, 84, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 20,105,117,112, 95,112,112,108,111,116, 95,100,101,108,101,116,101, 95,
- 99, 98, 0, 2, 0, 0, 0, 15,100,101,108,101,116,101, 98,101,103,105,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 15, 68, 69, 76, 69, 84, 69, 66, 69, 71, 73, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95,112,112,108,111,116, 95,100,101,
-108,101,116,101, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,101,
-108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 13, 68, 69, 76, 69,
- 84, 69, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,112,112,
-108,111,116, 95,100,101,108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 11,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 11, 80, 82,
- 69, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,112,112,
-108,111,116, 95,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12,
-112,111,115,116,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, 80, 79, 83,
- 84, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,112,112,
-108,111,116, 95,112,111,115,116,100,114, 97,119, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua_pplot3/pplot_le64.lo");
-}
diff --git a/iup/srclua3/loh/pplot_le64w.loh b/iup/srclua3/loh/pplot_le64w.loh
deleted file mode 100755
index fc37ccc..0000000
--- a/iup/srclua3/loh/pplot_le64w.loh
+++ /dev/null
@@ -1,69 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua_pplot3/luapplot_le64w.lo");
-*/
-/* ../obj/iuplua_pplot3/luapplot_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97,112,112,
-108,111,116, 46,108,117, 97, 0, 0, 0, 0,180, 5, 0, 22, 1, 11, 1, 15, 2,
- 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15,
- 5, 26, 15, 9, 18, 10, 11, 8, 15, 11, 26, 15, 9, 11, 12, 22, 2, 11, 13, 15,
- 14, 29, 0, 2, 26, 15, 9, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15,
- 9, 11, 18, 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 9, 11, 21, 22, 2, 11,
- 22, 15, 23, 29, 0, 2, 26, 15, 9, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2,
- 26, 15, 9, 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 9, 11, 30, 22,
- 2, 11, 31, 15, 32, 29, 0, 2, 26, 15, 9, 11, 33, 22, 2, 11, 34, 15, 35, 29,
- 0, 2, 26, 15, 9, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 9, 11,
- 39, 22, 2, 11, 40, 15, 41, 29, 0, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 42,
- 2, 0, 0, 0, 9, 73, 85, 80, 80, 80, 76, 79, 84, 0, 2, 0, 0, 0, 7,112,
- 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0,
- 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0,
- 4, 0, 0, 0, 3, 0, 0, 0, 14, 64,108,117, 97,112,112,108,111,116, 46,108,
-117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112,
- 67,114,101, 97,116,101, 80, 80,108,111,116, 0, 2, 0, 0, 0, 9,105,117,112,
-112,112,108,111,116, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64,108,117, 97,112,
-112,108,111,116, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13,
- 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0,
- 2, 0, 0, 0, 9, 73, 85, 80, 80, 80, 76, 79, 84, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0,
- 2, 0, 0, 0, 6,112,112,108,111,116, 0, 2, 0, 0, 0, 14,105,117,112, 95,
- 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 8,101,100,105,116, 95,
- 99, 98, 0, 2, 0, 0, 0, 18,105,117,112, 95,112,112,108,111,116, 95,101,100,
-105,116, 95, 99, 98, 0, 2, 0, 0, 0, 13,101,100,105,116, 98,101,103,105,110,
- 95, 99, 98, 0, 2, 0, 0, 0, 13, 69, 68, 73, 84, 66, 69, 71, 73, 78, 95, 67,
- 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,112,112,108,111,116, 95,101,100,105,
-116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 11,101,100,105,116,101,
-110,100, 95, 99, 98, 0, 2, 0, 0, 0, 11, 69, 68, 73, 84, 69, 78, 68, 95, 67,
- 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,112,112,108,111,116, 95,101,100,105,
-116,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 10,115,101,108,101, 99,116, 95,
- 99, 98, 0, 2, 0, 0, 0, 10, 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0,
- 0, 0, 20,105,117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,116, 95,
- 99, 98, 0, 2, 0, 0, 0, 15,115,101,108,101, 99,116, 98,101,103,105,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 15, 83, 69, 76, 69, 67, 84, 66, 69, 71, 73, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95,112,112,108,111,116, 95,115,101,
-108,101, 99,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,
-108,101, 99,116,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69,
- 67, 84, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,112,112,
-108,111,116, 95,115,101,108,101, 99,116,101,110,100, 95, 99, 98, 0, 2, 0, 0,
- 0, 10,100,101,108,101,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 10, 68, 69, 76,
- 69, 84, 69, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95,112,112,108,111,
-116, 95,100,101,108,101,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 15,100,101,108,
-101,116,101, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 68, 69, 76,
- 69, 84, 69, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,112,
- 95,112,112,108,111,116, 95,100,101,108,101,116,101, 98,101,103,105,110, 95, 99,
- 98, 0, 2, 0, 0, 0, 13,100,101,108,101,116,101,101,110,100, 95, 99, 98, 0,
- 2, 0, 0, 0, 13, 68, 69, 76, 69, 84, 69, 69, 78, 68, 95, 67, 66, 0, 2, 0,
- 0, 0, 23,105,117,112, 95,112,112,108,111,116, 95,100,101,108,101,116,101,101,
-110,100, 95, 99, 98, 0, 2, 0, 0, 0, 11,112,114,101,100,114, 97,119, 95, 99,
- 98, 0, 2, 0, 0, 0, 11, 80, 82, 69, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0,
- 0, 0, 21,105,117,112, 95,112,112,108,111,116, 95,112,114,101,100,114, 97,119,
- 95, 99, 98, 0, 2, 0, 0, 0, 12,112,111,115,116,100,114, 97,119, 95, 99, 98,
- 0, 2, 0, 0, 0, 12, 80, 79, 83, 84, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0,
- 0, 0, 22,105,117,112, 95,112,112,108,111,116, 95,112,111,115,116,100,114, 97,
-119, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua_pplot3/luapplot_le64w.lo");
-}
diff --git a/iup/srclua3/loh/sbox.loh b/iup/srclua3/loh/sbox.loh
deleted file mode 100755
index 4a5af85..0000000
--- a/iup/srclua3/loh/sbox.loh
+++ /dev/null
@@ -1,27 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/sbox.lo");
-*/
-/* ../obj/iuplua3/sbox.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115, 98,111,120, 46,
-108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68,
- 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,
-101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,115, 98,111,120,
- 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2,
- 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, 98,111,120, 0, 2, 0,
- 0, 0, 8,105,117,112,115, 98,111,120, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10,
- 64,115, 98,111,120, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2,
- 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111,
- 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0,
- 2, 0, 0, 0, 5,115, 98,111,120, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/sbox.lo");
-}
diff --git a/iup/srclua3/loh/sbox_be32.loh b/iup/srclua3/loh/sbox_be32.loh
deleted file mode 100755
index 5b50619..0000000
--- a/iup/srclua3/loh/sbox_be32.loh
+++ /dev/null
@@ -1,27 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/sbox_be32.lo");
-*/
-/* ../obj/iuplua3/sbox_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115, 98,111,120, 46,
-108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68,
- 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,
-101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,115, 98,111,120,
- 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2,
- 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, 98,111,120, 0, 2, 0,
- 0, 0, 8,105,117,112,115, 98,111,120, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10,
- 64,115, 98,111,120, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2,
- 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111,
- 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0,
- 2, 0, 0, 0, 5,115, 98,111,120, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/sbox_be32.lo");
-}
diff --git a/iup/srclua3/loh/sbox_be64.loh b/iup/srclua3/loh/sbox_be64.loh
deleted file mode 100755
index eddb0ff..0000000
--- a/iup/srclua3/loh/sbox_be64.loh
+++ /dev/null
@@ -1,27 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/sbox_be64.lo");
-*/
-/* ../obj/iuplua3/sbox_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115, 98,111,120, 46,
-108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68,
- 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,
-101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,115, 98,111,120,
- 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2,
- 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, 98,111,120, 0, 2, 0,
- 0, 0, 8,105,117,112,115, 98,111,120, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10,
- 64,115, 98,111,120, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2,
- 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111,
- 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0,
- 2, 0, 0, 0, 5,115, 98,111,120, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/sbox_be64.lo");
-}
diff --git a/iup/srclua3/loh/sbox_le64.loh b/iup/srclua3/loh/sbox_le64.loh
deleted file mode 100755
index 089ccc2..0000000
--- a/iup/srclua3/loh/sbox_le64.loh
+++ /dev/null
@@ -1,27 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/sbox_le64.lo");
-*/
-/* ../obj/iuplua3/sbox_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115, 98,111,120, 46,
-108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0,
- 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68,
- 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,
-101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,115, 98,111,120,
- 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2,
- 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, 98,111,120, 0, 2, 0,
- 0, 0, 8,105,117,112,115, 98,111,120, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10,
- 64,115, 98,111,120, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2,
- 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111,
- 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0,
- 2, 0, 0, 0, 5,115, 98,111,120, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/sbox_le64.lo");
-}
diff --git a/iup/srclua3/loh/sbox_le64w.loh b/iup/srclua3/loh/sbox_le64w.loh
deleted file mode 100755
index cc44ebb..0000000
--- a/iup/srclua3/loh/sbox_le64w.loh
+++ /dev/null
@@ -1,27 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luasbox_le64w.lo");
-*/
-/* ../obj/iupluacontrols3/luasbox_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,115, 98,
-111,120, 46,108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, 30,
- 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66,
- 79, 88, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7,
- 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85,
- 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 13, 64,108,
-117, 97,115, 98,111,120, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13,
- 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0,
- 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83,
- 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,115, 98,111,120, 0, 4, 0, 0,
- 0, 7, 0, 0, 0, 13, 64,108,117, 97,115, 98,111,120, 46,108,117, 97, 0, 0,
- 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66,
- 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0,
- 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,115, 98,111,120, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luasbox_le64w.lo");
-}
diff --git a/iup/srclua3/loh/spin.loh b/iup/srclua3/loh/spin.loh
deleted file mode 100755
index cd4cc02..0000000
--- a/iup/srclua3/loh/spin.loh
+++ /dev/null
@@ -1,43 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/spin.lo");
-*/
-/* ../obj/iuplua3/spin.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115,112,105,110, 46,
-108,117, 97, 0, 0, 0, 0, 82, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 22, 1,
- 11, 1, 15, 2, 30, 0, 25, 9, 15, 9, 11, 3, 11, 10, 26, 11, 12, 25, 11, 15,
- 7, 11, 13, 15, 11, 26, 15, 14, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26,
- 15, 14, 11, 18, 15, 14, 18, 15, 26, 0, 0, 0, 0, 0, 0, 0, 0, 19, 2, 0,
- 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, 2, 0, 0, 0, 7,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17,
- 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 8,
- 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0,
- 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83,
-112,105,110, 0, 2, 0, 0, 0, 8,105,117,112,115,112,105,110, 0, 4, 0, 0,
- 0, 7, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 12,
- 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,115,112,105,110, 0, 2, 0, 0, 0,
- 11, 73, 85, 80, 83, 80, 73, 78, 66, 79, 88, 0, 4, 0, 0, 0, 14, 0, 0, 0,
- 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13,
- 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0,
- 4,111, 98,106, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, 83,
-112,105,110, 98,111,120, 0, 2, 0, 0, 0, 11,105,117,112,115,112,105,110, 98,
-111,120, 0, 4, 0, 0, 0, 18, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117,
- 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 83, 80, 73, 78, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,
-117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,112,105,110, 98,111,120, 0, 2,
- 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0,
- 0, 0, 7,115,112,105,110, 99, 98, 0, 2, 0, 0, 0, 8, 83, 80, 73, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,112,105,110, 95, 99, 98, 0,
- 2, 0, 0, 0, 8,115,112,105,110, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/spin.lo");
-}
diff --git a/iup/srclua3/loh/spin_be32.loh b/iup/srclua3/loh/spin_be32.loh
deleted file mode 100755
index 9e1f9e4..0000000
--- a/iup/srclua3/loh/spin_be32.loh
+++ /dev/null
@@ -1,43 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/spin_be32.lo");
-*/
-/* ../obj/iuplua3/spin_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115,112,105,110, 46,
-108,117, 97, 0, 0, 0, 0, 82, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 22, 1,
- 11, 1, 15, 2, 30, 0, 25, 9, 15, 9, 11, 3, 11, 10, 26, 11, 12, 25, 11, 15,
- 7, 11, 13, 15, 11, 26, 15, 14, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26,
- 15, 14, 11, 18, 15, 14, 18, 15, 26, 0, 0, 0, 0, 0, 0, 0, 0, 19, 2, 0,
- 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, 2, 0, 0, 0, 7,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17,
- 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 8,
- 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0,
- 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83,
-112,105,110, 0, 2, 0, 0, 0, 8,105,117,112,115,112,105,110, 0, 4, 0, 0,
- 0, 7, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 12,
- 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,115,112,105,110, 0, 2, 0, 0, 0,
- 11, 73, 85, 80, 83, 80, 73, 78, 66, 79, 88, 0, 4, 0, 0, 0, 14, 0, 0, 0,
- 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13,
- 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0,
- 4,111, 98,106, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, 83,
-112,105,110, 98,111,120, 0, 2, 0, 0, 0, 11,105,117,112,115,112,105,110, 98,
-111,120, 0, 4, 0, 0, 0, 18, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117,
- 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 83, 80, 73, 78, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,
-117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,112,105,110, 98,111,120, 0, 2,
- 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0,
- 0, 0, 7,115,112,105,110, 99, 98, 0, 2, 0, 0, 0, 8, 83, 80, 73, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,112,105,110, 95, 99, 98, 0,
- 2, 0, 0, 0, 8,115,112,105,110, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/spin_be32.lo");
-}
diff --git a/iup/srclua3/loh/spin_be64.loh b/iup/srclua3/loh/spin_be64.loh
deleted file mode 100755
index 12af7ac..0000000
--- a/iup/srclua3/loh/spin_be64.loh
+++ /dev/null
@@ -1,43 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/spin_be64.lo");
-*/
-/* ../obj/iuplua3/spin_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115,112,105,110, 46,
-108,117, 97, 0, 0, 0, 0, 82, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 22, 1,
- 11, 1, 15, 2, 30, 0, 25, 9, 15, 9, 11, 3, 11, 10, 26, 11, 12, 25, 11, 15,
- 7, 11, 13, 15, 11, 26, 15, 14, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26,
- 15, 14, 11, 18, 15, 14, 18, 15, 26, 0, 0, 0, 0, 0, 0, 0, 0, 19, 2, 0,
- 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, 2, 0, 0, 0, 7,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17,
- 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 8,
- 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0,
- 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83,
-112,105,110, 0, 2, 0, 0, 0, 8,105,117,112,115,112,105,110, 0, 4, 0, 0,
- 0, 7, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 12,
- 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,115,112,105,110, 0, 2, 0, 0, 0,
- 11, 73, 85, 80, 83, 80, 73, 78, 66, 79, 88, 0, 4, 0, 0, 0, 14, 0, 0, 0,
- 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13,
- 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0,
- 4,111, 98,106, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, 83,
-112,105,110, 98,111,120, 0, 2, 0, 0, 0, 11,105,117,112,115,112,105,110, 98,
-111,120, 0, 4, 0, 0, 0, 18, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117,
- 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 83, 80, 73, 78, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,
-117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,112,105,110, 98,111,120, 0, 2,
- 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0,
- 0, 0, 7,115,112,105,110, 99, 98, 0, 2, 0, 0, 0, 8, 83, 80, 73, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,112,105,110, 95, 99, 98, 0,
- 2, 0, 0, 0, 8,115,112,105,110, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/spin_be64.lo");
-}
diff --git a/iup/srclua3/loh/spin_le64.loh b/iup/srclua3/loh/spin_le64.loh
deleted file mode 100755
index 1e7aea7..0000000
--- a/iup/srclua3/loh/spin_le64.loh
+++ /dev/null
@@ -1,43 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/spin_le64.lo");
-*/
-/* ../obj/iuplua3/spin_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115,112,105,110, 46,
-108,117, 97, 0, 0, 0, 0, 82, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 22, 1,
- 11, 1, 15, 2, 30, 0, 25, 9, 15, 9, 11, 3, 11, 10, 26, 11, 12, 25, 11, 15,
- 7, 11, 13, 15, 11, 26, 15, 14, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26,
- 15, 14, 11, 18, 15, 14, 18, 15, 26, 0, 0, 0, 0, 0, 0, 0, 0, 19, 2, 0,
- 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, 2, 0, 0, 0, 7,112, 97,114,101,
-110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17,
- 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 8,
- 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0,
- 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83,
-112,105,110, 0, 2, 0, 0, 0, 8,105,117,112,115,112,105,110, 0, 4, 0, 0,
- 0, 7, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 12,
- 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,115,112,105,110, 0, 2, 0, 0, 0,
- 11, 73, 85, 80, 83, 80, 73, 78, 66, 79, 88, 0, 4, 0, 0, 0, 14, 0, 0, 0,
- 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13,
- 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0,
- 4,111, 98,106, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, 83,
-112,105,110, 98,111,120, 0, 2, 0, 0, 0, 11,105,117,112,115,112,105,110, 98,
-111,120, 0, 4, 0, 0, 0, 18, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117,
- 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85,
- 80, 83, 80, 73, 78, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,
-117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,112,105,110, 98,111,120, 0, 2,
- 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0,
- 0, 0, 7,115,112,105,110, 99, 98, 0, 2, 0, 0, 0, 8, 83, 80, 73, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,112,105,110, 95, 99, 98, 0,
- 2, 0, 0, 0, 8,115,112,105,110, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/spin_le64.lo");
-}
diff --git a/iup/srclua3/loh/spin_le64w.loh b/iup/srclua3/loh/spin_le64w.loh
deleted file mode 100755
index de49021..0000000
--- a/iup/srclua3/loh/spin_le64w.loh
+++ /dev/null
@@ -1,44 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luaspin_le64w.lo");
-*/
-/* ../obj/iupluacontrols3/luaspin_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,115,112,
-105,110, 46,108,117, 97, 0, 0, 0, 0, 82, 5, 0, 22, 1, 11, 1, 15, 2, 30,
- 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5,
- 26, 22, 1, 11, 1, 15, 2, 30, 0, 25, 9, 15, 9, 11, 3, 11, 10, 26, 11, 12,
- 25, 11, 15, 7, 11, 13, 15, 11, 26, 15, 14, 11, 15, 22, 2, 11, 16, 15, 17, 29,
- 0, 2, 26, 15, 14, 11, 18, 15, 14, 18, 15, 26, 0, 0, 0, 0, 0, 0, 0, 0,
- 19, 2, 0, 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, 2, 0, 0, 0, 7,112,
- 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0,
- 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0,
- 4, 0, 0, 0, 3, 0, 0, 0, 13, 64,108,117, 97,115,112,105,110, 46,108,117,
- 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,
-114,101, 97,116,101, 83,112,105,110, 0, 2, 0, 0, 0, 8,105,117,112,115,112,
-105,110, 0, 4, 0, 0, 0, 7, 0, 0, 0, 13, 64,108,117, 97,115,112,105,110,
- 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0,
- 8, 73, 85, 80, 83, 80, 73, 78, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,
-117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,
-115,112,105,110, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 80, 73, 78, 66, 79, 88,
- 0, 4, 0, 0, 0, 14, 0, 0, 0, 13, 64,108,117, 97,115,112,105,110, 46,108,
-117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0,
- 0, 17,105,117,112, 67,114,101, 97,116,101, 83,112,105,110, 98,111,120, 0, 2,
- 0, 0, 0, 11,105,117,112,115,112,105,110, 98,111,120, 0, 4, 0, 0, 0, 18,
- 0, 0, 0, 13, 64,108,117, 97,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0,
- 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 80, 73, 78,
- 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114,
- 0, 2, 0, 0, 0, 8,115,112,105,110, 98,111,120, 0, 2, 0, 0, 0, 14,105,
-117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 7,115,112,
-105,110, 99, 98, 0, 2, 0, 0, 0, 8, 83, 80, 73, 78, 95, 67, 66, 0, 2, 0,
- 0, 0, 12,105,117,112, 95,115,112,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 8,
-115,112,105,110, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luaspin_le64w.lo");
-}
diff --git a/iup/srclua3/loh/tabs.loh b/iup/srclua3/loh/tabs.loh
deleted file mode 100755
index 86c4ab0..0000000
--- a/iup/srclua3/loh/tabs.loh
+++ /dev/null
@@ -1,33 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/tabs.lo");
-*/
-/* ../obj/iuplua3/tabs.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116, 97, 98,115, 46,
-108,117, 97, 0, 0, 0, 0, 54, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9,
- 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 15, 9, 18, 10,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 8, 73, 85, 80, 84, 65,
- 66, 83, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7,
- 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85,
- 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,116,
- 97, 98,115, 46,108,117, 97, 0, 0, 0, 0, 17, 6, 2, 15, 1, 13, 1, 15, 2,
- 13, 1, 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101,
- 84, 97, 98,115, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, 2, 0, 0, 0, 8,
-105,117,112,116, 97, 98,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10, 64,116, 97,
- 98,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 8, 73, 85, 80, 84, 65, 66, 83, 0, 2, 0, 0, 0, 12, 67,111,110,115,
-116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0,
- 0, 5,116, 97, 98,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108,
- 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,116, 97, 98, 99,104, 97,110,103,101,
- 0, 2, 0, 0, 0, 13, 84, 65, 66, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2,
- 0, 0, 0, 17,105,117,112, 95,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 13,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/tabs.lo");
-}
diff --git a/iup/srclua3/loh/tabs_be32.loh b/iup/srclua3/loh/tabs_be32.loh
deleted file mode 100755
index 4eb4b83..0000000
--- a/iup/srclua3/loh/tabs_be32.loh
+++ /dev/null
@@ -1,33 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/tabs_be32.lo");
-*/
-/* ../obj/iuplua3/tabs_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116, 97, 98,115, 46,
-108,117, 97, 0, 0, 0, 0, 54, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9,
- 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 15, 9, 18, 10,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 8, 73, 85, 80, 84, 65,
- 66, 83, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7,
- 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85,
- 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,116,
- 97, 98,115, 46,108,117, 97, 0, 0, 0, 0, 17, 6, 2, 15, 1, 13, 1, 15, 2,
- 13, 1, 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101,
- 84, 97, 98,115, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, 2, 0, 0, 0, 8,
-105,117,112,116, 97, 98,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10, 64,116, 97,
- 98,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 8, 73, 85, 80, 84, 65, 66, 83, 0, 2, 0, 0, 0, 12, 67,111,110,115,
-116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0,
- 0, 5,116, 97, 98,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108,
- 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,116, 97, 98, 99,104, 97,110,103,101,
- 0, 2, 0, 0, 0, 13, 84, 65, 66, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2,
- 0, 0, 0, 17,105,117,112, 95,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 13,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/tabs_be32.lo");
-}
diff --git a/iup/srclua3/loh/tabs_be64.loh b/iup/srclua3/loh/tabs_be64.loh
deleted file mode 100755
index c4ada05..0000000
--- a/iup/srclua3/loh/tabs_be64.loh
+++ /dev/null
@@ -1,33 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/tabs_be64.lo");
-*/
-/* ../obj/iuplua3/tabs_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116, 97, 98,115, 46,
-108,117, 97, 0, 0, 0, 0, 54, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9,
- 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 15, 9, 18, 10,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 8, 73, 85, 80, 84, 65,
- 66, 83, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7,
- 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85,
- 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,116,
- 97, 98,115, 46,108,117, 97, 0, 0, 0, 0, 17, 6, 2, 15, 1, 13, 1, 15, 2,
- 13, 1, 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101,
- 84, 97, 98,115, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, 2, 0, 0, 0, 8,
-105,117,112,116, 97, 98,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10, 64,116, 97,
- 98,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 8, 73, 85, 80, 84, 65, 66, 83, 0, 2, 0, 0, 0, 12, 67,111,110,115,
-116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0,
- 0, 5,116, 97, 98,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108,
- 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,116, 97, 98, 99,104, 97,110,103,101,
- 0, 2, 0, 0, 0, 13, 84, 65, 66, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2,
- 0, 0, 0, 17,105,117,112, 95,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 13,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/tabs_be64.lo");
-}
diff --git a/iup/srclua3/loh/tabs_le64.loh b/iup/srclua3/loh/tabs_le64.loh
deleted file mode 100755
index 7a4c6b1..0000000
--- a/iup/srclua3/loh/tabs_le64.loh
+++ /dev/null
@@ -1,33 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/tabs_le64.lo");
-*/
-/* ../obj/iuplua3/tabs_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116, 97, 98,115, 46,
-108,117, 97, 0, 0, 0, 0, 54, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9,
- 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 15, 9, 18, 10,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 8, 73, 85, 80, 84, 65,
- 66, 83, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7,
- 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85,
- 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,116,
- 97, 98,115, 46,108,117, 97, 0, 0, 0, 0, 17, 6, 2, 15, 1, 13, 1, 15, 2,
- 13, 1, 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0,
- 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101,
- 84, 97, 98,115, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, 2, 0, 0, 0, 8,
-105,117,112,116, 97, 98,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10, 64,116, 97,
- 98,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3,
- 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0,
- 0, 0, 8, 73, 85, 80, 84, 65, 66, 83, 0, 2, 0, 0, 0, 12, 67,111,110,115,
-116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0,
- 0, 5,116, 97, 98,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108,
- 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,116, 97, 98, 99,104, 97,110,103,101,
- 0, 2, 0, 0, 0, 13, 84, 65, 66, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2,
- 0, 0, 0, 17,105,117,112, 95,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 13,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/tabs_le64.lo");
-}
diff --git a/iup/srclua3/loh/tabs_le64w.loh b/iup/srclua3/loh/tabs_le64w.loh
deleted file mode 100755
index 24a87dc..0000000
--- a/iup/srclua3/loh/tabs_le64w.loh
+++ /dev/null
@@ -1,34 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luatabs_le64w.lo");
-*/
-/* ../obj/iupluacontrols3/luatabs_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,116, 97,
- 98,115, 46,108,117, 97, 0, 0, 0, 0, 54, 5, 0, 22, 1, 11, 1, 15, 2, 30,
- 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5,
- 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 15,
- 9, 18, 10, 26, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 8, 73, 85,
- 80, 84, 65, 66, 83, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0,
- 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,
-101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0,
- 13, 64,108,117, 97,116, 97, 98,115, 46,108,117, 97, 0, 0, 0, 0, 17, 6, 2,
- 15, 1, 13, 1, 15, 2, 13, 1, 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112,
- 67,114,101, 97,116,101, 84, 97, 98,115, 0, 2, 0, 0, 0, 5,103,101,116,110,
- 0, 2, 0, 0, 0, 8,105,117,112,116, 97, 98,115, 0, 4, 0, 0, 0, 7, 0,
- 0, 0, 13, 64,108,117, 97,116, 97, 98,115, 46,108,117, 97, 0, 0, 0, 0, 12,
- 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3,
- 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 65, 66, 83, 0,
- 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0,
- 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,116, 97, 98,115, 0, 2, 0, 0, 0,
- 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,
-116, 97, 98, 99,104, 97,110,103,101, 0, 2, 0, 0, 0, 13, 84, 65, 66, 67, 72,
- 65, 78, 71, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,116, 97, 98,
- 99,104, 97,110,103,101, 95, 99, 98, 0, 2, 0, 0, 0, 13,116, 97, 98, 99,104,
- 97,110,103,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luatabs_le64w.lo");
-}
diff --git a/iup/srclua3/loh/tree.loh b/iup/srclua3/loh/tree.loh
deleted file mode 100755
index f3af92c..0000000
--- a/iup/srclua3/loh/tree.loh
+++ /dev/null
@@ -1,115 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/tree.lo");
-*/
-/* ../obj/iupluacontrols3/tree.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116,114,101,101, 46,
-108,117, 97, 0, 0, 0, 1, 24, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 22, 0, 25, 3, 15, 0, 11, 4, 11, 5, 26, 11, 7, 25, 6, 15, 8, 11, 9, 15,
- 6, 26, 11, 11, 25, 10, 11, 13, 25, 12, 15, 8, 11, 12, 15, 12, 26, 15, 14, 11,
- 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 14, 11, 18, 22, 2, 11, 19, 15,
- 20, 29, 0, 2, 26, 15, 14, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26, 15,
- 14, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 14, 11, 27, 22, 2, 11,
- 28, 15, 29, 29, 0, 2, 26, 15, 14, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0, 2,
- 26, 15, 14, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 14, 11, 36, 22,
- 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 14, 11, 39, 22, 2, 11, 40, 15, 41, 29,
- 0, 2, 26, 15, 14, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 14, 11,
- 45, 15, 14, 18, 15, 26, 15, 14, 11, 46, 15, 14, 18, 18, 26, 15, 14, 11, 47, 15,
- 14, 18, 21, 26, 15, 14, 11, 48, 15, 14, 18, 24, 26, 15, 14, 11, 49, 15, 14, 18,
- 27, 26, 15, 14, 11, 50, 15, 14, 18, 30, 26, 15, 14, 11, 51, 15, 14, 18, 33, 26,
- 15, 14, 11, 52, 15, 14, 18, 36, 26, 15, 14, 11, 53, 15, 14, 18, 39, 26, 15, 14,
- 11, 54, 15, 14, 18, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 55, 2, 0, 0, 0,
- 8, 73, 85, 80, 84, 82, 69, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116,
- 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 22, 73, 85,
- 80, 84, 82, 69, 69, 82, 69, 70, 69, 82, 69, 78, 67, 69, 84, 65, 66, 76, 69, 0,
- 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,
-116, 0, 4, 0, 0, 0, 4, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97,
- 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,
-101, 97,116,101, 84,114,101,101, 0, 2, 0, 0, 0, 8,105,117,112,116,114,101,
-101, 0, 4, 0, 0, 0, 8, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 84, 82, 69, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,116,114,101,101,
- 0, 2, 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101,
- 99, 0, 4, 0, 0, 0, 13, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97,
- 0, 0, 0, 0,140, 9, 3, 13, 1, 4, 0, 32, 52, 2, 1, 3, 15, 4, 13, 1,
- 2, 1, 1, 50,112, 15, 5, 13, 1, 13, 3, 16, 2, 1, 1, 11, 6, 32, 52, 66,
- 13, 1, 13, 3, 16, 18, 7, 4, 0, 31, 52, 21, 15, 8, 13, 0, 11, 9, 13, 2,
- 42, 13, 1, 13, 3, 16, 18, 7, 2, 0, 3, 50, 14, 15, 8, 13, 0, 11, 9, 13,
- 2, 42, 11, 10, 2, 0, 3, 15, 11, 13, 0, 13, 1, 13, 3, 16, 13, 2, 7, 1,
- 37, 2, 0, 3, 50, 24, 13, 1, 13, 3, 16, 52, 17, 15, 8, 13, 0, 11, 12, 13,
- 2, 42, 13, 1, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 38, 23, 3, 13, 3, 7,
- 0, 36, 54,119, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 7,104, 97,
-110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 3,105,100, 0,
- 2, 0, 0, 0, 5, 99,111,110,116, 0, 2, 0, 0, 0, 5,103,101,116,110, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101,
- 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,101, 0, 2, 0, 0,
- 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0,
- 0, 0, 10, 65, 68, 68, 66, 82, 65, 78, 67, 72, 0, 2, 0, 0, 0, 1, 0, 2,
- 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0,
- 2, 0, 0, 0, 8, 65, 68, 68, 76, 69, 65, 70, 0, 2, 0, 0, 0, 13, 84,114,
-101,101, 83,101,116, 86, 97,108,117,101, 0, 4, 0, 0, 0, 36, 0, 0, 0, 10,
- 64,116,114,101,101, 46,108,117, 97, 0, 0, 0, 0, 59, 6, 2, 15, 2, 13, 1,
- 2, 1, 1, 11, 3, 31, 52, 11, 15, 4, 11, 5, 11, 6, 2, 0, 2, 1, 2, 13,
- 1, 18, 7, 4, 0, 31, 52, 13, 15, 8, 13, 0, 11, 9, 13, 1, 18, 7, 2, 0,
- 3, 15, 10, 13, 0, 13, 1, 7, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 11, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101,
- 0, 2, 0, 0, 0, 11, 73,117,112, 77,101,115,115, 97,103,101, 0, 2, 0, 0,
- 0, 14, 84,114,101,101, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0,
- 45, 73,110, 99,111,114,114,101, 99,116, 32, 97,114,103,117,109,101,110,116,115,
- 32,116,111, 32,102,117,110, 99,116,105,111,110, 32, 84,114,101,101, 83,101,116,
- 86, 97,108,117,101, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,
-101, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,
-116,101, 0, 2, 0, 0, 0, 5, 78, 65, 77, 69, 0, 2, 0, 0, 0, 16, 84,114,
-101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, 2, 0, 0, 0, 14,105,
-117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,115,101,
-108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 73,
- 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,116,114,101,101, 95,
-115,101,108,101, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,
-108,116,105,115,101,108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 18, 77, 85,
- 76, 84, 73, 83, 69, 76, 69, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0,
- 27,105,117,112, 95,116,114,101,101, 95,109,117,108,116,105,115,101,108,101, 99,
-116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,111,
-112,101,110, 0, 2, 0, 0, 0, 14, 66, 82, 65, 78, 67, 72, 79, 80, 69, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95, 98,114, 97,
-110, 99,104,111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 12, 98,114, 97,110,
- 99,104, 99,108,111,115,101, 0, 2, 0, 0, 0, 15, 66, 82, 65, 78, 67, 72, 67,
- 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,116,114,101,
-101, 95, 98,114, 97,110, 99,104, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 12,101,120,101, 99,117,116,101,108,101, 97,102, 0, 2, 0, 0, 0, 15, 69,
- 88, 69, 67, 85, 84, 69, 76, 69, 65, 70, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,
-117,112, 95,116,114,101,101, 95,101,120,101, 99,117,116,101,108,101, 97,102, 95,
- 99, 98, 0, 2, 0, 0, 0, 11,114,101,110, 97,109,101,110,111,100,101, 0, 2,
- 0, 0, 0, 14, 82, 69, 78, 65, 77, 69, 78, 79, 68, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101,110,111,
-100,101, 95, 99, 98, 0, 2, 0, 0, 0, 9,114,101,110, 97,109,101, 99, 98, 0,
- 2, 0, 0, 0, 10, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, 0, 0, 21,
-105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101, 99, 98, 95, 99, 98,
- 0, 2, 0, 0, 0, 13,115,104,111,119,114,101,110, 97,109,101, 99, 98, 0, 2,
- 0, 0, 0, 14, 83, 72, 79, 87, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 25,105,117,112, 95,116,114,101,101, 95,115,104,111,119,114,101,110, 97,
-109,101, 99, 98, 95, 99, 98, 0, 2, 0, 0, 0, 11,114,105,103,104,116, 99,108,
-105, 99,107, 0, 2, 0, 0, 0, 14, 82, 73, 71, 72, 84, 67, 76, 73, 67, 75, 95,
- 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,105,103,
-104,116, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,100,114, 97,103,
-100,114,111,112, 0, 2, 0, 0, 0, 12, 68, 82, 65, 71, 68, 82, 79, 80, 95, 67,
- 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,116,114,101,101, 95,100,114, 97,103,
-100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,105,
-111,110, 95, 99, 98, 0, 2, 0, 0, 0, 18,109,117,108,116,105,115,101,108,101,
- 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 14, 98,114, 97,110, 99,104,
-111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 98,114, 97,110, 99,104, 99,
-108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 15,101,120,101, 99,117,116,101,
-108,101, 97,102, 95, 99, 98, 0, 2, 0, 0, 0, 14,114,101,110, 97,109,101,110,
-111,100,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,110, 97,109,101, 95, 99,
- 98, 0, 2, 0, 0, 0, 14,115,104,111,119,114,101,110, 97,109,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 14,114,105,103,104,116, 99,108,105, 99,107, 95, 99, 98, 0,
- 2, 0, 0, 0, 12,100,114, 97,103,100,114,111,112, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/tree.lo");
-}
diff --git a/iup/srclua3/loh/tree_be32.loh b/iup/srclua3/loh/tree_be32.loh
deleted file mode 100755
index c7a5992..0000000
--- a/iup/srclua3/loh/tree_be32.loh
+++ /dev/null
@@ -1,115 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/tree_be32.lo");
-*/
-/* ../obj/iupluacontrols3/tree_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116,114,101,101, 46,
-108,117, 97, 0, 0, 0, 1, 24, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 22, 0, 25, 3, 15, 0, 11, 4, 11, 5, 26, 11, 7, 25, 6, 15, 8, 11, 9, 15,
- 6, 26, 11, 11, 25, 10, 11, 13, 25, 12, 15, 8, 11, 12, 15, 12, 26, 15, 14, 11,
- 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 14, 11, 18, 22, 2, 11, 19, 15,
- 20, 29, 0, 2, 26, 15, 14, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26, 15,
- 14, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 14, 11, 27, 22, 2, 11,
- 28, 15, 29, 29, 0, 2, 26, 15, 14, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0, 2,
- 26, 15, 14, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 14, 11, 36, 22,
- 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 14, 11, 39, 22, 2, 11, 40, 15, 41, 29,
- 0, 2, 26, 15, 14, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 14, 11,
- 45, 15, 14, 18, 15, 26, 15, 14, 11, 46, 15, 14, 18, 18, 26, 15, 14, 11, 47, 15,
- 14, 18, 21, 26, 15, 14, 11, 48, 15, 14, 18, 24, 26, 15, 14, 11, 49, 15, 14, 18,
- 27, 26, 15, 14, 11, 50, 15, 14, 18, 30, 26, 15, 14, 11, 51, 15, 14, 18, 33, 26,
- 15, 14, 11, 52, 15, 14, 18, 36, 26, 15, 14, 11, 53, 15, 14, 18, 39, 26, 15, 14,
- 11, 54, 15, 14, 18, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 55, 2, 0, 0, 0,
- 8, 73, 85, 80, 84, 82, 69, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116,
- 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 22, 73, 85,
- 80, 84, 82, 69, 69, 82, 69, 70, 69, 82, 69, 78, 67, 69, 84, 65, 66, 76, 69, 0,
- 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,
-116, 0, 4, 0, 0, 0, 4, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97,
- 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,
-101, 97,116,101, 84,114,101,101, 0, 2, 0, 0, 0, 8,105,117,112,116,114,101,
-101, 0, 4, 0, 0, 0, 8, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 84, 82, 69, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,116,114,101,101,
- 0, 2, 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101,
- 99, 0, 4, 0, 0, 0, 13, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97,
- 0, 0, 0, 0,140, 9, 3, 13, 1, 4, 0, 32, 52, 2, 1, 3, 15, 4, 13, 1,
- 2, 1, 1, 50,112, 15, 5, 13, 1, 13, 3, 16, 2, 1, 1, 11, 6, 32, 52, 66,
- 13, 1, 13, 3, 16, 18, 7, 4, 0, 31, 52, 21, 15, 8, 13, 0, 11, 9, 13, 2,
- 42, 13, 1, 13, 3, 16, 18, 7, 2, 0, 3, 50, 14, 15, 8, 13, 0, 11, 9, 13,
- 2, 42, 11, 10, 2, 0, 3, 15, 11, 13, 0, 13, 1, 13, 3, 16, 13, 2, 7, 1,
- 37, 2, 0, 3, 50, 24, 13, 1, 13, 3, 16, 52, 17, 15, 8, 13, 0, 11, 12, 13,
- 2, 42, 13, 1, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 38, 23, 3, 13, 3, 7,
- 0, 36, 54,119, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 7,104, 97,
-110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 3,105,100, 0,
- 2, 0, 0, 0, 5, 99,111,110,116, 0, 2, 0, 0, 0, 5,103,101,116,110, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101,
- 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,101, 0, 2, 0, 0,
- 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0,
- 0, 0, 10, 65, 68, 68, 66, 82, 65, 78, 67, 72, 0, 2, 0, 0, 0, 1, 0, 2,
- 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0,
- 2, 0, 0, 0, 8, 65, 68, 68, 76, 69, 65, 70, 0, 2, 0, 0, 0, 13, 84,114,
-101,101, 83,101,116, 86, 97,108,117,101, 0, 4, 0, 0, 0, 36, 0, 0, 0, 10,
- 64,116,114,101,101, 46,108,117, 97, 0, 0, 0, 0, 59, 6, 2, 15, 2, 13, 1,
- 2, 1, 1, 11, 3, 31, 52, 11, 15, 4, 11, 5, 11, 6, 2, 0, 2, 1, 2, 13,
- 1, 18, 7, 4, 0, 31, 52, 13, 15, 8, 13, 0, 11, 9, 13, 1, 18, 7, 2, 0,
- 3, 15, 10, 13, 0, 13, 1, 7, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 11, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101,
- 0, 2, 0, 0, 0, 11, 73,117,112, 77,101,115,115, 97,103,101, 0, 2, 0, 0,
- 0, 14, 84,114,101,101, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0,
- 45, 73,110, 99,111,114,114,101, 99,116, 32, 97,114,103,117,109,101,110,116,115,
- 32,116,111, 32,102,117,110, 99,116,105,111,110, 32, 84,114,101,101, 83,101,116,
- 86, 97,108,117,101, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,
-101, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,
-116,101, 0, 2, 0, 0, 0, 5, 78, 65, 77, 69, 0, 2, 0, 0, 0, 16, 84,114,
-101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, 2, 0, 0, 0, 14,105,
-117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,115,101,
-108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 73,
- 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,116,114,101,101, 95,
-115,101,108,101, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,
-108,116,105,115,101,108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 18, 77, 85,
- 76, 84, 73, 83, 69, 76, 69, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0,
- 27,105,117,112, 95,116,114,101,101, 95,109,117,108,116,105,115,101,108,101, 99,
-116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,111,
-112,101,110, 0, 2, 0, 0, 0, 14, 66, 82, 65, 78, 67, 72, 79, 80, 69, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95, 98,114, 97,
-110, 99,104,111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 12, 98,114, 97,110,
- 99,104, 99,108,111,115,101, 0, 2, 0, 0, 0, 15, 66, 82, 65, 78, 67, 72, 67,
- 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,116,114,101,
-101, 95, 98,114, 97,110, 99,104, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 12,101,120,101, 99,117,116,101,108,101, 97,102, 0, 2, 0, 0, 0, 15, 69,
- 88, 69, 67, 85, 84, 69, 76, 69, 65, 70, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,
-117,112, 95,116,114,101,101, 95,101,120,101, 99,117,116,101,108,101, 97,102, 95,
- 99, 98, 0, 2, 0, 0, 0, 11,114,101,110, 97,109,101,110,111,100,101, 0, 2,
- 0, 0, 0, 14, 82, 69, 78, 65, 77, 69, 78, 79, 68, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101,110,111,
-100,101, 95, 99, 98, 0, 2, 0, 0, 0, 9,114,101,110, 97,109,101, 99, 98, 0,
- 2, 0, 0, 0, 10, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, 0, 0, 21,
-105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101, 99, 98, 95, 99, 98,
- 0, 2, 0, 0, 0, 13,115,104,111,119,114,101,110, 97,109,101, 99, 98, 0, 2,
- 0, 0, 0, 14, 83, 72, 79, 87, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 25,105,117,112, 95,116,114,101,101, 95,115,104,111,119,114,101,110, 97,
-109,101, 99, 98, 95, 99, 98, 0, 2, 0, 0, 0, 11,114,105,103,104,116, 99,108,
-105, 99,107, 0, 2, 0, 0, 0, 14, 82, 73, 71, 72, 84, 67, 76, 73, 67, 75, 95,
- 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,105,103,
-104,116, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,100,114, 97,103,
-100,114,111,112, 0, 2, 0, 0, 0, 12, 68, 82, 65, 71, 68, 82, 79, 80, 95, 67,
- 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,116,114,101,101, 95,100,114, 97,103,
-100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,105,
-111,110, 95, 99, 98, 0, 2, 0, 0, 0, 18,109,117,108,116,105,115,101,108,101,
- 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 14, 98,114, 97,110, 99,104,
-111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 98,114, 97,110, 99,104, 99,
-108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 15,101,120,101, 99,117,116,101,
-108,101, 97,102, 95, 99, 98, 0, 2, 0, 0, 0, 14,114,101,110, 97,109,101,110,
-111,100,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,110, 97,109,101, 95, 99,
- 98, 0, 2, 0, 0, 0, 14,115,104,111,119,114,101,110, 97,109,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 14,114,105,103,104,116, 99,108,105, 99,107, 95, 99, 98, 0,
- 2, 0, 0, 0, 12,100,114, 97,103,100,114,111,112, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/tree_be32.lo");
-}
diff --git a/iup/srclua3/loh/tree_be64.loh b/iup/srclua3/loh/tree_be64.loh
deleted file mode 100755
index d46105b..0000000
--- a/iup/srclua3/loh/tree_be64.loh
+++ /dev/null
@@ -1,115 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/tree_be64.lo");
-*/
-/* ../obj/iupluacontrols3/tree_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116,114,101,101, 46,
-108,117, 97, 0, 0, 0, 1, 24, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 22, 0, 25, 3, 15, 0, 11, 4, 11, 5, 26, 11, 7, 25, 6, 15, 8, 11, 9, 15,
- 6, 26, 11, 11, 25, 10, 11, 13, 25, 12, 15, 8, 11, 12, 15, 12, 26, 15, 14, 11,
- 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 14, 11, 18, 22, 2, 11, 19, 15,
- 20, 29, 0, 2, 26, 15, 14, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26, 15,
- 14, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 14, 11, 27, 22, 2, 11,
- 28, 15, 29, 29, 0, 2, 26, 15, 14, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0, 2,
- 26, 15, 14, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 14, 11, 36, 22,
- 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 14, 11, 39, 22, 2, 11, 40, 15, 41, 29,
- 0, 2, 26, 15, 14, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 14, 11,
- 45, 15, 14, 18, 15, 26, 15, 14, 11, 46, 15, 14, 18, 18, 26, 15, 14, 11, 47, 15,
- 14, 18, 21, 26, 15, 14, 11, 48, 15, 14, 18, 24, 26, 15, 14, 11, 49, 15, 14, 18,
- 27, 26, 15, 14, 11, 50, 15, 14, 18, 30, 26, 15, 14, 11, 51, 15, 14, 18, 33, 26,
- 15, 14, 11, 52, 15, 14, 18, 36, 26, 15, 14, 11, 53, 15, 14, 18, 39, 26, 15, 14,
- 11, 54, 15, 14, 18, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 55, 2, 0, 0, 0,
- 8, 73, 85, 80, 84, 82, 69, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116,
- 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 22, 73, 85,
- 80, 84, 82, 69, 69, 82, 69, 70, 69, 82, 69, 78, 67, 69, 84, 65, 66, 76, 69, 0,
- 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,
-116, 0, 4, 0, 0, 0, 4, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97,
- 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,
-101, 97,116,101, 84,114,101,101, 0, 2, 0, 0, 0, 8,105,117,112,116,114,101,
-101, 0, 4, 0, 0, 0, 8, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 84, 82, 69, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,116,114,101,101,
- 0, 2, 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101,
- 99, 0, 4, 0, 0, 0, 13, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97,
- 0, 0, 0, 0,140, 9, 3, 13, 1, 4, 0, 32, 52, 2, 1, 3, 15, 4, 13, 1,
- 2, 1, 1, 50,112, 15, 5, 13, 1, 13, 3, 16, 2, 1, 1, 11, 6, 32, 52, 66,
- 13, 1, 13, 3, 16, 18, 7, 4, 0, 31, 52, 21, 15, 8, 13, 0, 11, 9, 13, 2,
- 42, 13, 1, 13, 3, 16, 18, 7, 2, 0, 3, 50, 14, 15, 8, 13, 0, 11, 9, 13,
- 2, 42, 11, 10, 2, 0, 3, 15, 11, 13, 0, 13, 1, 13, 3, 16, 13, 2, 7, 1,
- 37, 2, 0, 3, 50, 24, 13, 1, 13, 3, 16, 52, 17, 15, 8, 13, 0, 11, 12, 13,
- 2, 42, 13, 1, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 38, 23, 3, 13, 3, 7,
- 0, 36, 54,119, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 7,104, 97,
-110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 3,105,100, 0,
- 2, 0, 0, 0, 5, 99,111,110,116, 0, 2, 0, 0, 0, 5,103,101,116,110, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101,
- 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,101, 0, 2, 0, 0,
- 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0,
- 0, 0, 10, 65, 68, 68, 66, 82, 65, 78, 67, 72, 0, 2, 0, 0, 0, 1, 0, 2,
- 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0,
- 2, 0, 0, 0, 8, 65, 68, 68, 76, 69, 65, 70, 0, 2, 0, 0, 0, 13, 84,114,
-101,101, 83,101,116, 86, 97,108,117,101, 0, 4, 0, 0, 0, 36, 0, 0, 0, 10,
- 64,116,114,101,101, 46,108,117, 97, 0, 0, 0, 0, 59, 6, 2, 15, 2, 13, 1,
- 2, 1, 1, 11, 3, 31, 52, 11, 15, 4, 11, 5, 11, 6, 2, 0, 2, 1, 2, 13,
- 1, 18, 7, 4, 0, 31, 52, 13, 15, 8, 13, 0, 11, 9, 13, 1, 18, 7, 2, 0,
- 3, 15, 10, 13, 0, 13, 1, 7, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 11, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101,
- 0, 2, 0, 0, 0, 11, 73,117,112, 77,101,115,115, 97,103,101, 0, 2, 0, 0,
- 0, 14, 84,114,101,101, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0,
- 45, 73,110, 99,111,114,114,101, 99,116, 32, 97,114,103,117,109,101,110,116,115,
- 32,116,111, 32,102,117,110, 99,116,105,111,110, 32, 84,114,101,101, 83,101,116,
- 86, 97,108,117,101, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,
-101, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,
-116,101, 0, 2, 0, 0, 0, 5, 78, 65, 77, 69, 0, 2, 0, 0, 0, 16, 84,114,
-101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, 2, 0, 0, 0, 14,105,
-117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,115,101,
-108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 73,
- 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,116,114,101,101, 95,
-115,101,108,101, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,
-108,116,105,115,101,108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 18, 77, 85,
- 76, 84, 73, 83, 69, 76, 69, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0,
- 27,105,117,112, 95,116,114,101,101, 95,109,117,108,116,105,115,101,108,101, 99,
-116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,111,
-112,101,110, 0, 2, 0, 0, 0, 14, 66, 82, 65, 78, 67, 72, 79, 80, 69, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95, 98,114, 97,
-110, 99,104,111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 12, 98,114, 97,110,
- 99,104, 99,108,111,115,101, 0, 2, 0, 0, 0, 15, 66, 82, 65, 78, 67, 72, 67,
- 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,116,114,101,
-101, 95, 98,114, 97,110, 99,104, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 12,101,120,101, 99,117,116,101,108,101, 97,102, 0, 2, 0, 0, 0, 15, 69,
- 88, 69, 67, 85, 84, 69, 76, 69, 65, 70, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,
-117,112, 95,116,114,101,101, 95,101,120,101, 99,117,116,101,108,101, 97,102, 95,
- 99, 98, 0, 2, 0, 0, 0, 11,114,101,110, 97,109,101,110,111,100,101, 0, 2,
- 0, 0, 0, 14, 82, 69, 78, 65, 77, 69, 78, 79, 68, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101,110,111,
-100,101, 95, 99, 98, 0, 2, 0, 0, 0, 9,114,101,110, 97,109,101, 99, 98, 0,
- 2, 0, 0, 0, 10, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, 0, 0, 21,
-105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101, 99, 98, 95, 99, 98,
- 0, 2, 0, 0, 0, 13,115,104,111,119,114,101,110, 97,109,101, 99, 98, 0, 2,
- 0, 0, 0, 14, 83, 72, 79, 87, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 25,105,117,112, 95,116,114,101,101, 95,115,104,111,119,114,101,110, 97,
-109,101, 99, 98, 95, 99, 98, 0, 2, 0, 0, 0, 11,114,105,103,104,116, 99,108,
-105, 99,107, 0, 2, 0, 0, 0, 14, 82, 73, 71, 72, 84, 67, 76, 73, 67, 75, 95,
- 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,105,103,
-104,116, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,100,114, 97,103,
-100,114,111,112, 0, 2, 0, 0, 0, 12, 68, 82, 65, 71, 68, 82, 79, 80, 95, 67,
- 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,116,114,101,101, 95,100,114, 97,103,
-100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,105,
-111,110, 95, 99, 98, 0, 2, 0, 0, 0, 18,109,117,108,116,105,115,101,108,101,
- 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 14, 98,114, 97,110, 99,104,
-111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 98,114, 97,110, 99,104, 99,
-108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 15,101,120,101, 99,117,116,101,
-108,101, 97,102, 95, 99, 98, 0, 2, 0, 0, 0, 14,114,101,110, 97,109,101,110,
-111,100,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,110, 97,109,101, 95, 99,
- 98, 0, 2, 0, 0, 0, 14,115,104,111,119,114,101,110, 97,109,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 14,114,105,103,104,116, 99,108,105, 99,107, 95, 99, 98, 0,
- 2, 0, 0, 0, 12,100,114, 97,103,100,114,111,112, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/tree_be64.lo");
-}
diff --git a/iup/srclua3/loh/tree_le64.loh b/iup/srclua3/loh/tree_le64.loh
deleted file mode 100755
index e308539..0000000
--- a/iup/srclua3/loh/tree_le64.loh
+++ /dev/null
@@ -1,115 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/tree_le64.lo");
-*/
-/* ../obj/iupluacontrols3/tree_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116,114,101,101, 46,
-108,117, 97, 0, 0, 0, 1, 24, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0,
- 22, 0, 25, 3, 15, 0, 11, 4, 11, 5, 26, 11, 7, 25, 6, 15, 8, 11, 9, 15,
- 6, 26, 11, 11, 25, 10, 11, 13, 25, 12, 15, 8, 11, 12, 15, 12, 26, 15, 14, 11,
- 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 14, 11, 18, 22, 2, 11, 19, 15,
- 20, 29, 0, 2, 26, 15, 14, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26, 15,
- 14, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 14, 11, 27, 22, 2, 11,
- 28, 15, 29, 29, 0, 2, 26, 15, 14, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0, 2,
- 26, 15, 14, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 14, 11, 36, 22,
- 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 14, 11, 39, 22, 2, 11, 40, 15, 41, 29,
- 0, 2, 26, 15, 14, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 14, 11,
- 45, 15, 14, 18, 15, 26, 15, 14, 11, 46, 15, 14, 18, 18, 26, 15, 14, 11, 47, 15,
- 14, 18, 21, 26, 15, 14, 11, 48, 15, 14, 18, 24, 26, 15, 14, 11, 49, 15, 14, 18,
- 27, 26, 15, 14, 11, 50, 15, 14, 18, 30, 26, 15, 14, 11, 51, 15, 14, 18, 33, 26,
- 15, 14, 11, 52, 15, 14, 18, 36, 26, 15, 14, 11, 53, 15, 14, 18, 39, 26, 15, 14,
- 11, 54, 15, 14, 18, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 55, 2, 0, 0, 0,
- 8, 73, 85, 80, 84, 82, 69, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116,
- 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 22, 73, 85,
- 80, 84, 82, 69, 69, 82, 69, 70, 69, 82, 69, 78, 67, 69, 84, 65, 66, 76, 69, 0,
- 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,
-116, 0, 4, 0, 0, 0, 4, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97,
- 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,
-101, 97,116,101, 84,114,101,101, 0, 2, 0, 0, 0, 8,105,117,112,116,114,101,
-101, 0, 4, 0, 0, 0, 8, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97,
- 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80,
- 84, 82, 69, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,116,114,101,101,
- 0, 2, 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101,
- 99, 0, 4, 0, 0, 0, 13, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97,
- 0, 0, 0, 0,140, 9, 3, 13, 1, 4, 0, 32, 52, 2, 1, 3, 15, 4, 13, 1,
- 2, 1, 1, 50,112, 15, 5, 13, 1, 13, 3, 16, 2, 1, 1, 11, 6, 32, 52, 66,
- 13, 1, 13, 3, 16, 18, 7, 4, 0, 31, 52, 21, 15, 8, 13, 0, 11, 9, 13, 2,
- 42, 13, 1, 13, 3, 16, 18, 7, 2, 0, 3, 50, 14, 15, 8, 13, 0, 11, 9, 13,
- 2, 42, 11, 10, 2, 0, 3, 15, 11, 13, 0, 13, 1, 13, 3, 16, 13, 2, 7, 1,
- 37, 2, 0, 3, 50, 24, 13, 1, 13, 3, 16, 52, 17, 15, 8, 13, 0, 11, 12, 13,
- 2, 42, 13, 1, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 38, 23, 3, 13, 3, 7,
- 0, 36, 54,119, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 7,104, 97,
-110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 3,105,100, 0,
- 2, 0, 0, 0, 5, 99,111,110,116, 0, 2, 0, 0, 0, 5,103,101,116,110, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101,
- 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,101, 0, 2, 0, 0,
- 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0,
- 0, 0, 10, 65, 68, 68, 66, 82, 65, 78, 67, 72, 0, 2, 0, 0, 0, 1, 0, 2,
- 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0,
- 2, 0, 0, 0, 8, 65, 68, 68, 76, 69, 65, 70, 0, 2, 0, 0, 0, 13, 84,114,
-101,101, 83,101,116, 86, 97,108,117,101, 0, 4, 0, 0, 0, 36, 0, 0, 0, 10,
- 64,116,114,101,101, 46,108,117, 97, 0, 0, 0, 0, 59, 6, 2, 15, 2, 13, 1,
- 2, 1, 1, 11, 3, 31, 52, 11, 15, 4, 11, 5, 11, 6, 2, 0, 2, 1, 2, 13,
- 1, 18, 7, 4, 0, 31, 52, 13, 15, 8, 13, 0, 11, 9, 13, 1, 18, 7, 2, 0,
- 3, 15, 10, 13, 0, 13, 1, 7, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 11, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0,
- 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101,
- 0, 2, 0, 0, 0, 11, 73,117,112, 77,101,115,115, 97,103,101, 0, 2, 0, 0,
- 0, 14, 84,114,101,101, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0,
- 45, 73,110, 99,111,114,114,101, 99,116, 32, 97,114,103,117,109,101,110,116,115,
- 32,116,111, 32,102,117,110, 99,116,105,111,110, 32, 84,114,101,101, 83,101,116,
- 86, 97,108,117,101, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,
-101, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,
-116,101, 0, 2, 0, 0, 0, 5, 78, 65, 77, 69, 0, 2, 0, 0, 0, 16, 84,114,
-101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, 2, 0, 0, 0, 14,105,
-117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,115,101,
-108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 73,
- 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,116,114,101,101, 95,
-115,101,108,101, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,
-108,116,105,115,101,108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 18, 77, 85,
- 76, 84, 73, 83, 69, 76, 69, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0,
- 27,105,117,112, 95,116,114,101,101, 95,109,117,108,116,105,115,101,108,101, 99,
-116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,111,
-112,101,110, 0, 2, 0, 0, 0, 14, 66, 82, 65, 78, 67, 72, 79, 80, 69, 78, 95,
- 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95, 98,114, 97,
-110, 99,104,111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 12, 98,114, 97,110,
- 99,104, 99,108,111,115,101, 0, 2, 0, 0, 0, 15, 66, 82, 65, 78, 67, 72, 67,
- 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,116,114,101,
-101, 95, 98,114, 97,110, 99,104, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 12,101,120,101, 99,117,116,101,108,101, 97,102, 0, 2, 0, 0, 0, 15, 69,
- 88, 69, 67, 85, 84, 69, 76, 69, 65, 70, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,
-117,112, 95,116,114,101,101, 95,101,120,101, 99,117,116,101,108,101, 97,102, 95,
- 99, 98, 0, 2, 0, 0, 0, 11,114,101,110, 97,109,101,110,111,100,101, 0, 2,
- 0, 0, 0, 14, 82, 69, 78, 65, 77, 69, 78, 79, 68, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101,110,111,
-100,101, 95, 99, 98, 0, 2, 0, 0, 0, 9,114,101,110, 97,109,101, 99, 98, 0,
- 2, 0, 0, 0, 10, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, 0, 0, 21,
-105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101, 99, 98, 95, 99, 98,
- 0, 2, 0, 0, 0, 13,115,104,111,119,114,101,110, 97,109,101, 99, 98, 0, 2,
- 0, 0, 0, 14, 83, 72, 79, 87, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0,
- 0, 0, 25,105,117,112, 95,116,114,101,101, 95,115,104,111,119,114,101,110, 97,
-109,101, 99, 98, 95, 99, 98, 0, 2, 0, 0, 0, 11,114,105,103,104,116, 99,108,
-105, 99,107, 0, 2, 0, 0, 0, 14, 82, 73, 71, 72, 84, 67, 76, 73, 67, 75, 95,
- 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,105,103,
-104,116, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,100,114, 97,103,
-100,114,111,112, 0, 2, 0, 0, 0, 12, 68, 82, 65, 71, 68, 82, 79, 80, 95, 67,
- 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,116,114,101,101, 95,100,114, 97,103,
-100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,105,
-111,110, 95, 99, 98, 0, 2, 0, 0, 0, 18,109,117,108,116,105,115,101,108,101,
- 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 14, 98,114, 97,110, 99,104,
-111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 98,114, 97,110, 99,104, 99,
-108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 15,101,120,101, 99,117,116,101,
-108,101, 97,102, 95, 99, 98, 0, 2, 0, 0, 0, 14,114,101,110, 97,109,101,110,
-111,100,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,110, 97,109,101, 95, 99,
- 98, 0, 2, 0, 0, 0, 14,115,104,111,119,114,101,110, 97,109,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 14,114,105,103,104,116, 99,108,105, 99,107, 95, 99, 98, 0,
- 2, 0, 0, 0, 12,100,114, 97,103,100,114,111,112, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/tree_le64.lo");
-}
diff --git a/iup/srclua3/loh/tree_le64w.loh b/iup/srclua3/loh/tree_le64w.loh
deleted file mode 100755
index 4db63e3..0000000
--- a/iup/srclua3/loh/tree_le64w.loh
+++ /dev/null
@@ -1,116 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luatree_le64w.lo");
-*/
-/* ../obj/iupluacontrols3/luatree_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,116,114,
-101,101, 46,108,117, 97, 0, 0, 0, 1, 24, 5, 0, 22, 1, 11, 1, 15, 2, 30,
- 0, 25, 0, 22, 0, 25, 3, 15, 0, 11, 4, 11, 5, 26, 11, 7, 25, 6, 15, 8,
- 11, 9, 15, 6, 26, 11, 11, 25, 10, 11, 13, 25, 12, 15, 8, 11, 12, 15, 12, 26,
- 15, 14, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 14, 11, 18, 22, 2,
- 11, 19, 15, 20, 29, 0, 2, 26, 15, 14, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0,
- 2, 26, 15, 14, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 14, 11, 27,
- 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 14, 11, 30, 22, 2, 11, 31, 15, 32,
- 29, 0, 2, 26, 15, 14, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 14,
- 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 14, 11, 39, 22, 2, 11, 40,
- 15, 41, 29, 0, 2, 26, 15, 14, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26,
- 15, 14, 11, 45, 15, 14, 18, 15, 26, 15, 14, 11, 46, 15, 14, 18, 18, 26, 15, 14,
- 11, 47, 15, 14, 18, 21, 26, 15, 14, 11, 48, 15, 14, 18, 24, 26, 15, 14, 11, 49,
- 15, 14, 18, 27, 26, 15, 14, 11, 50, 15, 14, 18, 30, 26, 15, 14, 11, 51, 15, 14,
- 18, 33, 26, 15, 14, 11, 52, 15, 14, 18, 36, 26, 15, 14, 11, 53, 15, 14, 18, 39,
- 26, 15, 14, 11, 54, 15, 14, 18, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 55, 2,
- 0, 0, 0, 8, 73, 85, 80, 84, 82, 69, 69, 0, 2, 0, 0, 0, 7,112, 97,114,
-101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0,
- 22, 73, 85, 80, 84, 82, 69, 69, 82, 69, 70, 69, 82, 69, 78, 67, 69, 84, 65, 66,
- 76, 69, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,
-109,101,110,116, 0, 4, 0, 0, 0, 4, 0, 0, 0, 13, 64,108,117, 97,116,114,
-101,101, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0,
- 14,105,117,112, 67,114,101, 97,116,101, 84,114,101,101, 0, 2, 0, 0, 0, 8,
-105,117,112,116,114,101,101, 0, 4, 0, 0, 0, 8, 0, 0, 0, 13, 64,108,117,
- 97,116,114,101,101, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2,
- 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111,
- 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 82, 69, 69, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0,
- 2, 0, 0, 0, 5,116,114,101,101, 0, 2, 0, 0, 0, 16, 84,114,101,101, 83,
-101,116, 86, 97,108,117,101, 82,101, 99, 0, 4, 0, 0, 0, 13, 0, 0, 0, 13,
- 64,108,117, 97,116,114,101,101, 46,108,117, 97, 0, 0, 0, 0,140, 9, 3, 13,
- 1, 4, 0, 32, 52, 2, 1, 3, 15, 4, 13, 1, 2, 1, 1, 50,112, 15, 5, 13,
- 1, 13, 3, 16, 2, 1, 1, 11, 6, 32, 52, 66, 13, 1, 13, 3, 16, 18, 7, 4,
- 0, 31, 52, 21, 15, 8, 13, 0, 11, 9, 13, 2, 42, 13, 1, 13, 3, 16, 18, 7,
- 2, 0, 3, 50, 14, 15, 8, 13, 0, 11, 9, 13, 2, 42, 11, 10, 2, 0, 3, 15,
- 11, 13, 0, 13, 1, 13, 3, 16, 13, 2, 7, 1, 37, 2, 0, 3, 50, 24, 13, 1,
- 13, 3, 16, 52, 17, 15, 8, 13, 0, 11, 12, 13, 2, 42, 13, 1, 13, 3, 16, 2,
- 0, 3, 13, 3, 7, 1, 38, 23, 3, 13, 3, 7, 0, 36, 54,119, 0, 0, 0, 0,
- 0, 0, 0, 0, 13, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0,
- 0, 2,116, 0, 2, 0, 0, 0, 3,105,100, 0, 2, 0, 0, 0, 5, 99,111,110,
-116, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, 2, 0, 0, 0, 5,116,121,112,
-101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, 11, 98,114,
- 97,110, 99,104,110, 97,109,101, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116,
- 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 10, 65, 68, 68, 66, 82,
- 65, 78, 67, 72, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 16, 84,114,101,101,
- 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, 2, 0, 0, 0, 8, 65, 68, 68,
- 76, 69, 65, 70, 0, 2, 0, 0, 0, 13, 84,114,101,101, 83,101,116, 86, 97,108,
-117,101, 0, 4, 0, 0, 0, 36, 0, 0, 0, 13, 64,108,117, 97,116,114,101,101,
- 46,108,117, 97, 0, 0, 0, 0, 59, 6, 2, 15, 2, 13, 1, 2, 1, 1, 11, 3,
- 31, 52, 11, 15, 4, 11, 5, 11, 6, 2, 0, 2, 1, 2, 13, 1, 18, 7, 4, 0,
- 31, 52, 13, 15, 8, 13, 0, 11, 9, 13, 1, 18, 7, 2, 0, 3, 15, 10, 13, 0,
- 13, 1, 7, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0,
- 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 5,
-116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0,
- 11, 73,117,112, 77,101,115,115, 97,103,101, 0, 2, 0, 0, 0, 14, 84,114,101,
-101, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, 45, 73,110, 99,111,
-114,114,101, 99,116, 32, 97,114,103,117,109,101,110,116,115, 32,116,111, 32,102,
-117,110, 99,116,105,111,110, 32, 84,114,101,101, 83,101,116, 86, 97,108,117,101,
- 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,101, 0, 2, 0, 0,
- 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0,
- 0, 0, 5, 78, 65, 77, 69, 0, 2, 0, 0, 0, 16, 84,114,101,101, 83,101,116,
- 86, 97,108,117,101, 82,101, 99, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,
-108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,115,101,108,101, 99,116,105,
-111,110, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 73, 79, 78, 95, 67, 66,
- 0, 2, 0, 0, 0, 22,105,117,112, 95,116,114,101,101, 95,115,101,108,101, 99,
-116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,108,116,105,115,101,
-108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 18, 77, 85, 76, 84, 73, 83, 69,
- 76, 69, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 27,105,117,112, 95,
-116,114,101,101, 95,109,117,108,116,105,115,101,108,101, 99,116,105,111,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,111,112,101,110, 0, 2,
- 0, 0, 0, 14, 66, 82, 65, 78, 67, 72, 79, 80, 69, 78, 95, 67, 66, 0, 2, 0,
- 0, 0, 23,105,117,112, 95,116,114,101,101, 95, 98,114, 97,110, 99,104,111,112,
-101,110, 95, 99, 98, 0, 2, 0, 0, 0, 12, 98,114, 97,110, 99,104, 99,108,111,
-115,101, 0, 2, 0, 0, 0, 15, 66, 82, 65, 78, 67, 72, 67, 76, 79, 83, 69, 95,
- 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,116,114,101,101, 95, 98,114, 97,
-110, 99,104, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 12,101,120,101,
- 99,117,116,101,108,101, 97,102, 0, 2, 0, 0, 0, 15, 69, 88, 69, 67, 85, 84,
- 69, 76, 69, 65, 70, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,116,114,
-101,101, 95,101,120,101, 99,117,116,101,108,101, 97,102, 95, 99, 98, 0, 2, 0,
- 0, 0, 11,114,101,110, 97,109,101,110,111,100,101, 0, 2, 0, 0, 0, 14, 82,
- 69, 78, 65, 77, 69, 78, 79, 68, 69, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,
-112, 95,116,114,101,101, 95,114,101,110, 97,109,101,110,111,100,101, 95, 99, 98,
- 0, 2, 0, 0, 0, 9,114,101,110, 97,109,101, 99, 98, 0, 2, 0, 0, 0, 10,
- 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,116,
-114,101,101, 95,114,101,110, 97,109,101, 99, 98, 95, 99, 98, 0, 2, 0, 0, 0,
- 13,115,104,111,119,114,101,110, 97,109,101, 99, 98, 0, 2, 0, 0, 0, 14, 83,
- 72, 79, 87, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,
-112, 95,116,114,101,101, 95,115,104,111,119,114,101,110, 97,109,101, 99, 98, 95,
- 99, 98, 0, 2, 0, 0, 0, 11,114,105,103,104,116, 99,108,105, 99,107, 0, 2,
- 0, 0, 0, 14, 82, 73, 71, 72, 84, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0,
- 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,105,103,104,116, 99,108,105,
- 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,100,114, 97,103,100,114,111,112, 0,
- 2, 0, 0, 0, 12, 68, 82, 65, 71, 68, 82, 79, 80, 95, 67, 66, 0, 2, 0, 0,
- 0, 21,105,117,112, 95,116,114,101,101, 95,100,114, 97,103,100,114,111,112, 95,
- 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,105,111,110, 95, 99, 98,
- 0, 2, 0, 0, 0, 18,109,117,108,116,105,115,101,108,101, 99,116,105,111,110,
- 95, 99, 98, 0, 2, 0, 0, 0, 14, 98,114, 97,110, 99,104,111,112,101,110, 95,
- 99, 98, 0, 2, 0, 0, 0, 15, 98,114, 97,110, 99,104, 99,108,111,115,101, 95,
- 99, 98, 0, 2, 0, 0, 0, 15,101,120,101, 99,117,116,101,108,101, 97,102, 95,
- 99, 98, 0, 2, 0, 0, 0, 14,114,101,110, 97,109,101,110,111,100,101, 95, 99,
- 98, 0, 2, 0, 0, 0, 10,114,101,110, 97,109,101, 95, 99, 98, 0, 2, 0, 0,
- 0, 14,115,104,111,119,114,101,110, 97,109,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 14,114,105,103,104,116, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 12,
-100,114, 97,103,100,114,111,112, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luatree_le64w.lo");
-}
diff --git a/iup/srclua3/loh/val.loh b/iup/srclua3/loh/val.loh
deleted file mode 100755
index 19d0a55..0000000
--- a/iup/srclua3/loh/val.loh
+++ /dev/null
@@ -1,45 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/val.lo");
-*/
-/* ../obj/iuplua3/val.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 9, 64,118, 97,108, 46,108,
-117, 97, 0, 0, 0, 0,109, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, 15,
- 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, 11,
- 10, 22, 2, 11, 11, 4, 0, 29, 0, 2, 26, 15, 9, 11, 12, 15, 9, 18, 10, 26,
- 15, 9, 18, 10, 11, 8, 15, 13, 26, 15, 9, 11, 14, 22, 2, 11, 15, 15, 16, 29,
- 0, 2, 26, 15, 9, 11, 17, 22, 2, 11, 18, 15, 19, 29, 0, 2, 26, 15, 9, 11,
- 20, 15, 9, 18, 14, 26, 15, 9, 11, 21, 15, 9, 18, 17, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 22, 2, 0, 0, 0, 7, 73, 85, 80, 86, 65, 76, 0, 2, 0, 0, 0,
- 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0,
- 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,
-116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 9, 64,118, 97,108, 46,108,117, 97, 0,
- 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 13,105,
-117,112, 67,114,101, 97,116,101, 86, 97,108, 0, 2, 0, 0, 0, 7,105,117,112,
-118, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 9, 64,118, 97,108, 46,108,117,
- 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 7, 73, 85,
- 80, 86, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 4,118, 97,108, 0,
- 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2,
- 0, 0, 0, 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 13, 77,
- 79, 85, 83, 69, 77, 79, 86, 69, 95, 67, 66, 0, 2, 0, 0, 0, 13,109,111,117,
-115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, 21,105,117,112, 95,118,
- 97,108, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 12, 98,117,116,116,111,110,112,114,101,115,115, 0, 2, 0, 0, 0, 16, 66, 85,
- 84, 84, 79, 78, 95, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,
-117,112, 95,118, 97,108, 95, 98,117,116,116,111,110, 95,112,114,101,115,115, 95,
- 99, 98, 0, 2, 0, 0, 0, 14, 98,117,116,116,111,110,114,101,108,101, 97,115,
-101, 0, 2, 0, 0, 0, 18, 66, 85, 84, 84, 79, 78, 95, 82, 69, 76, 69, 65, 83,
- 69, 95, 67, 66, 0, 2, 0, 0, 0, 26,105,117,112, 95,118, 97,108, 95, 98,117,
-116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 16, 98,117,116,116,111,110, 95,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0,
- 0, 18, 98,117,116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0,
-
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/val.lo");
-}
diff --git a/iup/srclua3/loh/val_be32.loh b/iup/srclua3/loh/val_be32.loh
deleted file mode 100755
index 58971c8..0000000
--- a/iup/srclua3/loh/val_be32.loh
+++ /dev/null
@@ -1,45 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/val_be32.lo");
-*/
-/* ../obj/iuplua3/val_be32.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 9, 64,118, 97,108, 46,108,
-117, 97, 0, 0, 0, 0,109, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, 15,
- 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, 11,
- 10, 22, 2, 11, 11, 4, 0, 29, 0, 2, 26, 15, 9, 11, 12, 15, 9, 18, 10, 26,
- 15, 9, 18, 10, 11, 8, 15, 13, 26, 15, 9, 11, 14, 22, 2, 11, 15, 15, 16, 29,
- 0, 2, 26, 15, 9, 11, 17, 22, 2, 11, 18, 15, 19, 29, 0, 2, 26, 15, 9, 11,
- 20, 15, 9, 18, 14, 26, 15, 9, 11, 21, 15, 9, 18, 17, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 22, 2, 0, 0, 0, 7, 73, 85, 80, 86, 65, 76, 0, 2, 0, 0, 0,
- 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0,
- 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,
-116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 9, 64,118, 97,108, 46,108,117, 97, 0,
- 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 13,105,
-117,112, 67,114,101, 97,116,101, 86, 97,108, 0, 2, 0, 0, 0, 7,105,117,112,
-118, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 9, 64,118, 97,108, 46,108,117,
- 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 7, 73, 85,
- 80, 86, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 4,118, 97,108, 0,
- 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2,
- 0, 0, 0, 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 13, 77,
- 79, 85, 83, 69, 77, 79, 86, 69, 95, 67, 66, 0, 2, 0, 0, 0, 13,109,111,117,
-115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, 21,105,117,112, 95,118,
- 97,108, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 12, 98,117,116,116,111,110,112,114,101,115,115, 0, 2, 0, 0, 0, 16, 66, 85,
- 84, 84, 79, 78, 95, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,
-117,112, 95,118, 97,108, 95, 98,117,116,116,111,110, 95,112,114,101,115,115, 95,
- 99, 98, 0, 2, 0, 0, 0, 14, 98,117,116,116,111,110,114,101,108,101, 97,115,
-101, 0, 2, 0, 0, 0, 18, 66, 85, 84, 84, 79, 78, 95, 82, 69, 76, 69, 65, 83,
- 69, 95, 67, 66, 0, 2, 0, 0, 0, 26,105,117,112, 95,118, 97,108, 95, 98,117,
-116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 16, 98,117,116,116,111,110, 95,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0,
- 0, 18, 98,117,116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0,
-
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/val_be32.lo");
-}
diff --git a/iup/srclua3/loh/val_be64.loh b/iup/srclua3/loh/val_be64.loh
deleted file mode 100755
index d65e14b..0000000
--- a/iup/srclua3/loh/val_be64.loh
+++ /dev/null
@@ -1,45 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/val_be64.lo");
-*/
-/* ../obj/iuplua3/val_be64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 9, 64,118, 97,108, 46,108,
-117, 97, 0, 0, 0, 0,109, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, 15,
- 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, 11,
- 10, 22, 2, 11, 11, 4, 0, 29, 0, 2, 26, 15, 9, 11, 12, 15, 9, 18, 10, 26,
- 15, 9, 18, 10, 11, 8, 15, 13, 26, 15, 9, 11, 14, 22, 2, 11, 15, 15, 16, 29,
- 0, 2, 26, 15, 9, 11, 17, 22, 2, 11, 18, 15, 19, 29, 0, 2, 26, 15, 9, 11,
- 20, 15, 9, 18, 14, 26, 15, 9, 11, 21, 15, 9, 18, 17, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 22, 2, 0, 0, 0, 7, 73, 85, 80, 86, 65, 76, 0, 2, 0, 0, 0,
- 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0,
- 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,
-116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 9, 64,118, 97,108, 46,108,117, 97, 0,
- 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 13,105,
-117,112, 67,114,101, 97,116,101, 86, 97,108, 0, 2, 0, 0, 0, 7,105,117,112,
-118, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 9, 64,118, 97,108, 46,108,117,
- 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 7, 73, 85,
- 80, 86, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 4,118, 97,108, 0,
- 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2,
- 0, 0, 0, 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 13, 77,
- 79, 85, 83, 69, 77, 79, 86, 69, 95, 67, 66, 0, 2, 0, 0, 0, 13,109,111,117,
-115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, 21,105,117,112, 95,118,
- 97,108, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 12, 98,117,116,116,111,110,112,114,101,115,115, 0, 2, 0, 0, 0, 16, 66, 85,
- 84, 84, 79, 78, 95, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,
-117,112, 95,118, 97,108, 95, 98,117,116,116,111,110, 95,112,114,101,115,115, 95,
- 99, 98, 0, 2, 0, 0, 0, 14, 98,117,116,116,111,110,114,101,108,101, 97,115,
-101, 0, 2, 0, 0, 0, 18, 66, 85, 84, 84, 79, 78, 95, 82, 69, 76, 69, 65, 83,
- 69, 95, 67, 66, 0, 2, 0, 0, 0, 26,105,117,112, 95,118, 97,108, 95, 98,117,
-116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 16, 98,117,116,116,111,110, 95,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0,
- 0, 18, 98,117,116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0,
-
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/val_be64.lo");
-}
diff --git a/iup/srclua3/loh/val_le64.loh b/iup/srclua3/loh/val_le64.loh
deleted file mode 100755
index 179e80a..0000000
--- a/iup/srclua3/loh/val_le64.loh
+++ /dev/null
@@ -1,45 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iuplua3/val_le64.lo");
-*/
-/* ../obj/iuplua3/val_le64.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 9, 64,118, 97,108, 46,108,
-117, 97, 0, 0, 0, 0,109, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, 15,
- 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, 11,
- 10, 22, 2, 11, 11, 4, 0, 29, 0, 2, 26, 15, 9, 11, 12, 15, 9, 18, 10, 26,
- 15, 9, 18, 10, 11, 8, 15, 13, 26, 15, 9, 11, 14, 22, 2, 11, 15, 15, 16, 29,
- 0, 2, 26, 15, 9, 11, 17, 22, 2, 11, 18, 15, 19, 29, 0, 2, 26, 15, 9, 11,
- 20, 15, 9, 18, 14, 26, 15, 9, 11, 21, 15, 9, 18, 17, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 22, 2, 0, 0, 0, 7, 73, 85, 80, 86, 65, 76, 0, 2, 0, 0, 0,
- 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0,
- 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,
-116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 9, 64,118, 97,108, 46,108,117, 97, 0,
- 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 13,105,
-117,112, 67,114,101, 97,116,101, 86, 97,108, 0, 2, 0, 0, 0, 7,105,117,112,
-118, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 9, 64,118, 97,108, 46,108,117,
- 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 7, 73, 85,
- 80, 86, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,
-114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 4,118, 97,108, 0,
- 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2,
- 0, 0, 0, 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 13, 77,
- 79, 85, 83, 69, 77, 79, 86, 69, 95, 67, 66, 0, 2, 0, 0, 0, 13,109,111,117,
-115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, 21,105,117,112, 95,118,
- 97,108, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 12, 98,117,116,116,111,110,112,114,101,115,115, 0, 2, 0, 0, 0, 16, 66, 85,
- 84, 84, 79, 78, 95, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,
-117,112, 95,118, 97,108, 95, 98,117,116,116,111,110, 95,112,114,101,115,115, 95,
- 99, 98, 0, 2, 0, 0, 0, 14, 98,117,116,116,111,110,114,101,108,101, 97,115,
-101, 0, 2, 0, 0, 0, 18, 66, 85, 84, 84, 79, 78, 95, 82, 69, 76, 69, 65, 83,
- 69, 95, 67, 66, 0, 2, 0, 0, 0, 26,105,117,112, 95,118, 97,108, 95, 98,117,
-116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0, 2, 0, 0, 0,
- 16, 98,117,116,116,111,110, 95,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0,
- 0, 18, 98,117,116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0,
-
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/val_le64.lo");
-}
diff --git a/iup/srclua3/loh/val_le64w.loh b/iup/srclua3/loh/val_le64w.loh
deleted file mode 100755
index 65ce1be..0000000
--- a/iup/srclua3/loh/val_le64w.loh
+++ /dev/null
@@ -1,45 +0,0 @@
-/* code automatically generated by bin2c -- DO NOT EDIT */
-{
-/* #include'ing this file in a C program is equivalent to calling
- lua_dofile("../obj/iupluacontrols3/luaval_le64w.lo");
-*/
-/* ../obj/iupluacontrols3/luaval_le64w.lo */
-static unsigned char B1[]={
- 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,108,117, 97,118, 97,
-108, 46,108,117, 97, 0, 0, 0, 0,109, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0,
- 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26,
- 15, 9, 11, 10, 22, 2, 11, 11, 4, 0, 29, 0, 2, 26, 15, 9, 11, 12, 15, 9,
- 18, 10, 26, 15, 9, 18, 10, 11, 8, 15, 13, 26, 15, 9, 11, 14, 22, 2, 11, 15,
- 15, 16, 29, 0, 2, 26, 15, 9, 11, 17, 22, 2, 11, 18, 15, 19, 29, 0, 2, 26,
- 15, 9, 11, 20, 15, 9, 18, 14, 26, 15, 9, 11, 21, 15, 9, 18, 17, 26, 0, 0,
- 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 7, 73, 85, 80, 86, 65, 76, 0, 2,
- 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71,
- 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,
-109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 12, 64,108,117, 97,118, 97,
-108, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3,
- 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0,
- 2, 0, 0, 0, 13,105,117,112, 67,114,101, 97,116,101, 86, 97,108, 0, 2, 0,
- 0, 0, 7,105,117,112,118, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 12, 64,
-108,117, 97,118, 97,108, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20,
- 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,
-111, 0, 2, 0, 0, 0, 7, 73, 85, 80, 86, 65, 76, 0, 2, 0, 0, 0, 12, 67,
-111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0,
- 2, 0, 0, 0, 4,118, 97,108, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,
-108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,109,111,117,115,101,109,111,
-118,101, 0, 2, 0, 0, 0, 13, 77, 79, 85, 83, 69, 77, 79, 86, 69, 95, 67, 66,
- 0, 2, 0, 0, 0, 13,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2,
- 0, 0, 0, 21,105,117,112, 95,118, 97,108, 95,109,111,117,115,101,109,111,118,
-101, 95, 99, 98, 0, 2, 0, 0, 0, 12, 98,117,116,116,111,110,112,114,101,115,
-115, 0, 2, 0, 0, 0, 16, 66, 85, 84, 84, 79, 78, 95, 80, 82, 69, 83, 83, 95,
- 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,118, 97,108, 95, 98,117,116,116,
-111,110, 95,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 14, 98,117,116,
-116,111,110,114,101,108,101, 97,115,101, 0, 2, 0, 0, 0, 18, 66, 85, 84, 84,
- 79, 78, 95, 82, 69, 76, 69, 65, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 26,105,
-117,112, 95,118, 97,108, 95, 98,117,116,116,111,110, 95,114,101,108,101, 97,115,
-101, 95, 99, 98, 0, 2, 0, 0, 0, 16, 98,117,116,116,111,110, 95,112,114,101,
-115,115, 95, 99, 98, 0, 2, 0, 0, 0, 18, 98,117,116,116,111,110, 95,114,101,
-108,101, 97,115,101, 95, 99, 98, 0,
-};
-
- lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luaval_le64w.lo");
-}
diff --git a/iup/srclua3/split.lua b/iup/srclua3/split.lua
new file mode 100644
index 0000000..6deaae3
--- /dev/null
+++ b/iup/srclua3/split.lua
@@ -0,0 +1,10 @@
+IUPSPLIT = {parent = WIDGET}
+
+function IUPSPLIT:CreateIUPelement (obj)
+ return iupCreateSplit(obj[1], obj[2])
+end
+
+function iupsplit (o)
+ return IUPSPLIT:Constructor (o)
+end
+iup.split = iupplit
diff --git a/iup/srclua3/tree.lua b/iup/srclua3/tree.lua
index 659afdb..bf53bca 100755
--- a/iup/srclua3/tree.lua
+++ b/iup/srclua3/tree.lua
@@ -47,6 +47,7 @@ iup.TreeSetValue = TreeSetValue
iup_callbacks.selection = {"SELECTION_CB", iup_tree_selection_cb}
iup_callbacks.multiselection = {"MULTISELECTION_CB", iup_tree_multiselection_cb}
+iup_callbacks.multiunselection = {"MULTIUNSELECTION_CB", iup_tree_multiunselection_cb}
iup_callbacks.branchopen = {"BRANCHOPEN_CB", iup_tree_branchopen_cb}
iup_callbacks.branchclose = {"BRANCHCLOSE_CB", iup_tree_branchclose_cb}
iup_callbacks.executeleaf = {"EXECUTELEAF_CB", iup_tree_executeleaf_cb}
@@ -58,6 +59,7 @@ iup_callbacks.dragdrop = {"DRAGDROP_CB", iup_tree_dragdrop_cb}
iup_callbacks.selection_cb = iup_callbacks.selection
iup_callbacks.multiselection_cb = iup_callbacks.multiselection
+iup_callbacks.multiunselection_cb = iup_callbacks.multiunselection
iup_callbacks.branchopen_cb = iup_callbacks.branchopen
iup_callbacks.branchclose_cb = iup_callbacks.branchclose
iup_callbacks.executeleaf_cb = iup_callbacks.executeleaf
diff --git a/iup/srclua5/Makefile b/iup/srclua5/Makefile
index 3942e79..1189d32 100755
--- a/iup/srclua5/Makefile
+++ b/iup/srclua5/Makefile
@@ -3,22 +3,22 @@
do_all: iuplua iupluacd iupluacontrols iuplua_pplot iupluagl iupluaim iupluaimglib
iuplua:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
+ @$(MAKE) --no-print-directory -f ../tecmake.mak
iupluacd:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcd
+ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcd
iupluacontrols:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcontrols
+ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcontrols
iuplua_pplot:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iup_pplot
+ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iup_pplot
iupluagl:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupgl
+ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupgl
iupluaim:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupim
+ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupim
iupluaimglib:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupimglib
+ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupimglib
diff --git a/iup/srclua5/button.lua b/iup/srclua5/button.lua
index 946a05e..fc57b1a 100755
--- a/iup/srclua5/button.lua
+++ b/iup/srclua5/button.lua
@@ -3,16 +3,16 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "button",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "S-",
callback = {
action = "",
}
}
-function ctrl.createElement(class, arg)
- return Button(arg.title)
+function ctrl.createElement(class, param)
+ return iup.Button(param.title)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/canvas.lua b/iup/srclua5/canvas.lua
index 562d671..101c4f4 100755
--- a/iup/srclua5/canvas.lua
+++ b/iup/srclua5/canvas.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "canvas",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "-",
callback = {
action = "ff",
@@ -21,9 +21,9 @@ local ctrl = {
}
}
-function ctrl.createElement(class, arg)
- return Canvas()
+function ctrl.createElement(class, param)
+ return iup.Canvas()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/cbox.lua b/iup/srclua5/cbox.lua
index 3533970..81ba9be 100755
--- a/iup/srclua5/cbox.lua
+++ b/iup/srclua5/cbox.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "cbox",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "v",
callback = {},
funcname = "Cboxv",
@@ -20,9 +20,9 @@ static int Cboxv(lua_State *L)
]],
}
-function ctrl.createElement(class, arg)
- return Cboxv(arg)
+function ctrl.createElement(class, param)
+ return iup.Cboxv(param)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/cells.lua b/iup/srclua5/cells.lua
index 9c914f2..0355b17 100755
--- a/iup/srclua5/cells.lua
+++ b/iup/srclua5/cells.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "cells",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
callback = {
mouseclick_cb = "nnnnnns",
@@ -24,9 +24,9 @@ function ctrl.redraw(handle)
handle.repaint = "YES"
end
-function ctrl.createElement(class, arg)
- return Cells()
+function ctrl.createElement(class, param)
+ return iup.Cells()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/clipboard.lua b/iup/srclua5/clipboard.lua
index e60b8bd..663215b 100755
--- a/iup/srclua5/clipboard.lua
+++ b/iup/srclua5/clipboard.lua
@@ -3,15 +3,15 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "clipboard",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
callback = {
},
}
-function ctrl.createElement(class, arg)
- return Clipboard()
+function ctrl.createElement(class, param)
+ return iup.Clipboard()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/clua/button.clua b/iup/srclua5/clua/button.clua
index bd286bc..109f451 100644
--- a/iup/srclua5/clua/button.clua
+++ b/iup/srclua5/clua/button.clua
@@ -13,19 +13,20 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c,
0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20,
0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47,
- 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
- 0x20, 0x22, 0x53, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
- 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a,
- 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72,
- 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73,
- 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
- 0x20, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x74, 0x69, 0x74, 0x6c,
- 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73,
- 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a,
- 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c,
- 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x53, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c,
+ 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x7d, 0x0a,
+ 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72,
+ 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20,
+ 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x29, 0x0a, 0x65,
+ 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
+ 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70,
+ 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20,
+ 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "button.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/canvas.clua b/iup/srclua5/clua/canvas.clua
index a8247cc..e328744 100644
--- a/iup/srclua5/clua/canvas.clua
+++ b/iup/srclua5/clua/canvas.clua
@@ -13,35 +13,35 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c,
0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20,
0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47,
- 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
- 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
- 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
- 0x3d, 0x20, 0x22, 0x66, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74,
- 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x73, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77,
- 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65,
- 0x61, 0x76, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62,
- 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65,
- 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20,
- 0x22, 0x6e, 0x66, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6b, 0x65, 0x79, 0x70, 0x72,
- 0x65, 0x73, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x77, 0x6f, 0x6d, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20,
- 0x22, 0x66, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x64, 0x69, 0x61,
- 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20,
- 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61,
- 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x43, 0x61,
- 0x6e, 0x76, 0x61, 0x73, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52,
- 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74,
- 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28,
- 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65,
- 0x74, 0x22, 0x29, 0x0a,
+ 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c,
+ 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x66, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e,
+ 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x77, 0x69,
+ 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x63, 0x62,
+ 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x6f,
+ 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e,
+ 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63,
+ 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x66, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6b,
+ 0x65, 0x79, 0x70, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x6f, 0x6d, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20,
+ 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x5f, 0x63,
+ 0x62, 0x20, 0x3d, 0x20, 0x22, 0x66, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x6d, 0x64, 0x69, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d,
+ 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x5f, 0x63,
+ 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a,
+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
+ 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x28, 0x29,
+ 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
+ 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c,
+ 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "canvas.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/cbox.clua b/iup/srclua5/clua/cbox.clua
index 8dc38dc..31f0a1d 100644
--- a/iup/srclua5/clua/cbox.clua
+++ b/iup/srclua5/clua/cbox.clua
@@ -13,33 +13,34 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x62, 0x6f, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x76, 0x22,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b,
- 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20,
- 0x22, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69,
- 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x28, 0x6c, 0x75, 0x61, 0x5f,
- 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x49, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x2a, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x3d, 0x20,
- 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x68, 0x61, 0x6e,
- 0x64, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b,
- 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x68, 0x20, 0x3d, 0x20,
- 0x49, 0x75, 0x70, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x28, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x29, 0x3b,
- 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74,
- 0x61, 0x74, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70,
- 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f,
- 0x72, 0x61, 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x72, 0x65,
- 0x65, 0x28, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
- 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x5d, 0x5d, 0x2c, 0x0a, 0x7d, 0x0a,
- 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61,
- 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
- 0x6e, 0x20, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x28, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x65, 0x6e, 0x64,
- 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64,
- 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74,
- 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70,
- 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47,
+ 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
+ 0x20, 0x22, 0x76, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
+ 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d,
+ 0x65, 0x20, 0x3d, 0x20, 0x22, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x0a, 0x73,
+ 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x28,
+ 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x4c, 0x29, 0x0a, 0x7b, 0x0a,
+ 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x2a, 0x68, 0x6c, 0x69, 0x73,
+ 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b,
+ 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c,
+ 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a,
+ 0x68, 0x20, 0x3d, 0x20, 0x49, 0x75, 0x70, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x28, 0x68, 0x6c, 0x69,
+ 0x73, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c,
+ 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20,
+ 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20,
+ 0x20, 0x66, 0x72, 0x65, 0x65, 0x28, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20,
+ 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x5d, 0x5d,
+ 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74,
+ 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+ 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20,
+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x62, 0x6f, 0x78,
+ 0x76, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75,
+ 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74,
+ 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c,
+ 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77,
+ 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "cbox.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/cells.clua b/iup/srclua5/clua/cells.clua
index 60afca4..e843234 100644
--- a/iup/srclua5/clua/cells.clua
+++ b/iup/srclua5/clua/cells.clua
@@ -13,40 +13,41 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e,
0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20,
- 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x63, 0x6c, 0x69, 0x63, 0x6b,
- 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x73, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e,
- 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x62, 0x20,
- 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72,
- 0x61, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e,
- 0x22, 0x2c, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20,
- 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68,
- 0x65, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x64,
- 0x74, 0x68, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22,
- 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x62, 0x20,
- 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x63, 0x6f, 0x6c, 0x73, 0x5f,
- 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x73, 0x70,
- 0x61, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x76, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75,
- 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c,
- 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x72, 0x65, 0x64, 0x72, 0x61, 0x77, 0x28, 0x68, 0x61,
- 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2e,
- 0x72, 0x65, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x59, 0x45, 0x53, 0x22, 0x0a,
- 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74,
- 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
- 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20,
- 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x28, 0x29, 0x0a, 0x65,
- 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57,
- 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53,
- 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69,
- 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49,
+ 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
+ 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x63,
+ 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e,
+ 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f,
+ 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x73,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67,
+ 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x2d, 0x2d, 0x20, 0x20,
+ 0x20, 0x20, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e,
+ 0x6e, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65,
+ 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62,
+ 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d,
+ 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x73,
+ 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x63,
+ 0x6f, 0x6c, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x68, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22,
+ 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d,
+ 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69,
+ 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e,
+ 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x72, 0x65, 0x64, 0x72, 0x61,
+ 0x77, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x2e, 0x72, 0x65, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x59,
+ 0x45, 0x53, 0x22, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65,
+ 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61,
+ 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75,
+ 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74,
+ 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c,
+ 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77,
+ 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "cells.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/clipboard.clua b/iup/srclua5/clua/clipboard.clua
index 5941f1b..1de67fb 100644
--- a/iup/srclua5/clua/clipboard.clua
+++ b/iup/srclua5/clua/clipboard.clua
@@ -14,18 +14,19 @@ static const unsigned char B1[] = {
0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b,
0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x63,
0x6c, 0x69, 0x70, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a,
- 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65,
- 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29,
- 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x43, 0x6c, 0x69, 0x70, 0x62, 0x6f,
- 0x61, 0x72, 0x64, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75,
- 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28,
- 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73,
- 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64,
- 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x65, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47,
+ 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
+ 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20,
+ 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20,
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
+ 0x69, 0x75, 0x70, 0x2e, 0x43, 0x6c, 0x69, 0x70, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x28, 0x29, 0x0a,
+ 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69,
+ 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29,
+ 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74,
+ 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22,
+ 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "clipboard.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/colorbar.clua b/iup/srclua5/clua/colorbar.clua
index c789780..ddc4cd0 100644
--- a/iup/srclua5/clua/colorbar.clua
+++ b/iup/srclua5/clua/colorbar.clua
@@ -14,29 +14,31 @@ static const unsigned char B1[] = {
0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a,
0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x62,
0x61, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20,
- 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62,
- 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65,
- 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x7b, 0x22, 0x6e, 0x22,
- 0x2c, 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x7d, 0x2c, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e,
- 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64,
- 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x7d, 0x2c,
- 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x43,
- 0x6f, 0x6c, 0x6f, 0x72, 0x62, 0x61, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c,
- 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
- 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52,
- 0x59, 0x20, 0x3d, 0x20, 0x2d, 0x31, 0x0a, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59,
- 0x20, 0x3d, 0x20, 0x2d, 0x32, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
- 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65,
- 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20,
- 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x62, 0x61,
- 0x72, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e,
- 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69,
- 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65,
- 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75,
- 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63,
+ 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22,
+ 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20,
+ 0x7b, 0x22, 0x6e, 0x22, 0x2c, 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x7d,
+ 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x62, 0x20,
+ 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x65,
+ 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20,
+ 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20,
+ 0x3d, 0x20, 0x22, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x62, 0x61, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20,
+ 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f,
+ 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x69, 0x75,
+ 0x70, 0x2e, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x20, 0x3d, 0x20, 0x2d, 0x31, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x20, 0x3d, 0x20, 0x2d,
+ 0x32, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c,
+ 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20,
+ 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72,
+ 0x62, 0x61, 0x72, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73,
+ 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72,
+ 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29,
+ 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "colorbar.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/colorbrowser.clua b/iup/srclua5/clua/colorbrowser.clua
index 21216af..775f5fc 100644
--- a/iup/srclua5/clua/colorbrowser.clua
+++ b/iup/srclua5/clua/colorbrowser.clua
@@ -14,25 +14,26 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20,
0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x6f,
0x6c, 0x6f, 0x72, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x61, 0x67, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x63,
- 0x63, 0x63, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f,
- 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x63, 0x63, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c,
- 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x43,
- 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20,
- 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f,
- 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75,
- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c,
- 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
- 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x28, 0x61, 0x72, 0x67,
- 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75,
- 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28,
- 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73,
- 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64,
- 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47,
+ 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
+ 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20,
+ 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x61, 0x67, 0x5f, 0x63, 0x62, 0x20,
+ 0x3d, 0x20, 0x22, 0x63, 0x63, 0x63, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x68, 0x61,
+ 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x63, 0x63, 0x22, 0x2c, 0x0a,
+ 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20,
+ 0x3d, 0x20, 0x22, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x22,
+ 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69,
+ 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d,
+ 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72,
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x42,
+ 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65,
+ 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72,
+ 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28,
+ 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65,
+ 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "colorbrowser.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/colordlg.clua b/iup/srclua5/clua/colordlg.clua
index 7282120..4193ff2 100644
--- a/iup/srclua5/clua/colordlg.clua
+++ b/iup/srclua5/clua/colordlg.clua
@@ -14,26 +14,27 @@ static const unsigned char B1[] = {
0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a,
0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x64,
0x6c, 0x67, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20,
- 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e,
- 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x6c, 0x67, 0x22,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b,
- 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
- 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
- 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28,
- 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a,
- 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64,
- 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20,
- 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28,
- 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20,
- 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x43,
- 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x6c, 0x67, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20,
- 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64,
- 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74,
- 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70,
- 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66,
+ 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x43, 0x6f, 0x6c, 0x6f, 0x72,
+ 0x44, 0x6c, 0x67, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
+ 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75,
+ 0x70, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78,
+ 0x2c, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68,
+ 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
+ 0x69, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65,
+ 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61,
+ 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x6c, 0x67, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a,
+ 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
+ 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70,
+ 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20,
+ 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "colordlg.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/constants.clua b/iup/srclua5/clua/constants.clua
index 1129521..92a9e7f 100644
--- a/iup/srclua5/clua/constants.clua
+++ b/iup/srclua5/clua/constants.clua
@@ -16,10 +16,11 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x45, 0x52, 0x52, 0x4f, 0x52,
- 0x20, 0x20, 0x20, 0x3d, 0x20, 0x20, 0x31, 0x0a, 0x4e, 0x4f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20,
- 0x3d, 0x20, 0x20, 0x30, 0x0a, 0x4f, 0x50, 0x45, 0x4e, 0x45, 0x44, 0x20, 0x20, 0x3d, 0x20, 0x2d,
- 0x31, 0x0a, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x20, 0x3d, 0x20, 0x2d, 0x31, 0x0a, 0x0a,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x45,
+ 0x52, 0x52, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x20, 0x31, 0x0a, 0x69, 0x75, 0x70, 0x2e,
+ 0x4e, 0x4f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x3d, 0x20, 0x20, 0x30, 0x0a, 0x69, 0x75, 0x70,
+ 0x2e, 0x4f, 0x50, 0x45, 0x4e, 0x45, 0x44, 0x20, 0x20, 0x3d, 0x20, 0x2d, 0x31, 0x0a, 0x69, 0x75,
+ 0x70, 0x2e, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x20, 0x3d, 0x20, 0x2d, 0x31, 0x0a, 0x0a,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
@@ -32,9 +33,10 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x0a, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x2d, 0x31,
- 0x0a, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x20, 0x20, 0x3d, 0x20, 0x2d, 0x32, 0x0a, 0x43,
- 0x4c, 0x4f, 0x53, 0x45, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x2d, 0x33, 0x0a, 0x43, 0x4f, 0x4e,
+ 0x2d, 0x2d, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x20, 0x20, 0x20,
+ 0x3d, 0x20, 0x2d, 0x31, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54,
+ 0x20, 0x20, 0x3d, 0x20, 0x2d, 0x32, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x4c, 0x4f, 0x53, 0x45,
+ 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x2d, 0x33, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x4f, 0x4e,
0x54, 0x49, 0x4e, 0x55, 0x45, 0x20, 0x3d, 0x20, 0x2d, 0x34, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
@@ -47,15 +49,17 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x4c, 0x45, 0x46, 0x54,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x34,
- 0x0a, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20,
- 0x36, 0x35, 0x35, 0x33, 0x33, 0x0a, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x50, 0x4f, 0x53, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x32, 0x0a, 0x43, 0x55, 0x52, 0x52, 0x45,
- 0x4e, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x31, 0x0a,
- 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x41, 0x52, 0x45, 0x4e, 0x54, 0x20, 0x3d, 0x20, 0x36,
- 0x35, 0x35, 0x33, 0x30, 0x0a, 0x54, 0x4f, 0x50, 0x20, 0x3d, 0x20, 0x4c, 0x45, 0x46, 0x54, 0x0a,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x45, 0x4e, 0x54, 0x45,
+ 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x4c, 0x45, 0x46, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x34, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x49, 0x47,
+ 0x48, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33,
+ 0x33, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x50, 0x4f, 0x53, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x32, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x43,
+ 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35,
+ 0x35, 0x33, 0x31, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x41,
+ 0x52, 0x45, 0x4e, 0x54, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x30, 0x0a, 0x69, 0x75, 0x70,
+ 0x2e, 0x54, 0x4f, 0x50, 0x20, 0x3d, 0x20, 0x4c, 0x45, 0x46, 0x54, 0x0a, 0x69, 0x75, 0x70, 0x2e,
0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x20, 0x3d, 0x20, 0x52, 0x49, 0x47, 0x48, 0x54, 0x0a, 0x0a,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
@@ -67,18 +71,21 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x53, 0x42, 0x55, 0x50, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3d, 0x20, 0x30, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x44, 0x4e, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3d, 0x20, 0x31, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x50, 0x47, 0x55, 0x50, 0x20, 0x20,
- 0x20, 0x20, 0x3d, 0x20, 0x32, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x50, 0x47, 0x44, 0x4e, 0x20, 0x20,
- 0x20, 0x20, 0x3d, 0x20, 0x33, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x50, 0x4f, 0x53, 0x56, 0x20, 0x20,
- 0x20, 0x20, 0x3d, 0x20, 0x34, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x44, 0x52, 0x41, 0x47, 0x56, 0x20,
- 0x20, 0x20, 0x3d, 0x20, 0x35, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x4c, 0x45, 0x46, 0x54, 0x20, 0x20,
- 0x20, 0x20, 0x3d, 0x20, 0x36, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20,
- 0x20, 0x20, 0x3d, 0x20, 0x37, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x50, 0x47, 0x4c, 0x45, 0x46, 0x54,
- 0x20, 0x20, 0x3d, 0x20, 0x38, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x50, 0x47, 0x52, 0x49, 0x47, 0x48,
- 0x54, 0x20, 0x3d, 0x20, 0x39, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x50, 0x4f, 0x53, 0x48, 0x20, 0x20,
- 0x20, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x20, 0x0a, 0x53, 0x42, 0x44, 0x52, 0x41, 0x47, 0x48, 0x20,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x55, 0x50,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e,
+ 0x53, 0x42, 0x44, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x20, 0x20, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x50, 0x47, 0x55, 0x50, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20,
+ 0x32, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x50, 0x47, 0x44, 0x4e, 0x20, 0x20,
+ 0x20, 0x20, 0x3d, 0x20, 0x33, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x50, 0x4f,
+ 0x53, 0x56, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x34, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e,
+ 0x53, 0x42, 0x44, 0x52, 0x41, 0x47, 0x56, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x35, 0x20, 0x20, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x4c, 0x45, 0x46, 0x54, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20,
+ 0x36, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20,
+ 0x20, 0x20, 0x3d, 0x20, 0x37, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x50, 0x47,
+ 0x4c, 0x45, 0x46, 0x54, 0x20, 0x20, 0x3d, 0x20, 0x38, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e,
+ 0x53, 0x42, 0x50, 0x47, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x3d, 0x20, 0x39, 0x20, 0x20, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x50, 0x4f, 0x53, 0x48, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20,
+ 0x31, 0x30, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x44, 0x52, 0x41, 0x47, 0x48, 0x20,
0x20, 0x20, 0x3d, 0x20, 0x31, 0x31, 0x20, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
@@ -91,53 +98,57 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x53, 0x48, 0x4f, 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20,
- 0x30, 0x0a, 0x52, 0x45, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x4d,
- 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x20, 0x32, 0x0a, 0x4d, 0x41, 0x58, 0x49,
- 0x4d, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x20, 0x33, 0x0a, 0x48, 0x49, 0x44, 0x45, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3d, 0x20, 0x34, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x48, 0x4f, 0x57, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x45, 0x53, 0x54, 0x4f, 0x52,
+ 0x45, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x49, 0x4e, 0x49, 0x4d,
+ 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x20, 0x32, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x41, 0x58, 0x49,
+ 0x4d, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x20, 0x33, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x48, 0x49, 0x44,
+ 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x34, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x42, 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x5f, 0x43,
- 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x42, 0x55, 0x54, 0x54,
+ 0x4f, 0x4e, 0x5f, 0x43, 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x42, 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x31, 0x20, 0x3d,
- 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x28, 0x27, 0x31, 0x27,
- 0x29, 0x0a, 0x42, 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x32, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69,
- 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x28, 0x27, 0x32, 0x27, 0x29, 0x0a, 0x42, 0x55, 0x54,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x42,
+ 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x31, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e,
+ 0x62, 0x79, 0x74, 0x65, 0x28, 0x27, 0x31, 0x27, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x55,
+ 0x54, 0x54, 0x4f, 0x4e, 0x32, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62,
+ 0x79, 0x74, 0x65, 0x28, 0x27, 0x32, 0x27, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x55, 0x54,
0x54, 0x4f, 0x4e, 0x33, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79,
- 0x74, 0x65, 0x28, 0x27, 0x33, 0x27, 0x29, 0x0a, 0x42, 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x34, 0x20,
- 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x28, 0x27, 0x34,
- 0x27, 0x29, 0x0a, 0x42, 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x35, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72,
- 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x28, 0x27, 0x35, 0x27, 0x29, 0x0a, 0x0a, 0x2d,
+ 0x74, 0x65, 0x28, 0x27, 0x33, 0x27, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x55, 0x54, 0x54,
+ 0x4f, 0x4e, 0x34, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74,
+ 0x65, 0x28, 0x27, 0x34, 0x27, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x55, 0x54, 0x54, 0x4f,
+ 0x4e, 0x35, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65,
+ 0x28, 0x27, 0x35, 0x27, 0x29, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x20,
- 0x50, 0x72, 0x65, 0x2d, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x4d, 0x61, 0x73, 0x6b,
- 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x50, 0x72, 0x65, 0x2d, 0x44, 0x65, 0x66, 0x69,
+ 0x6e, 0x65, 0x64, 0x20, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x46, 0x4c, 0x4f, 0x41,
- 0x54, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x5b, 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x28, 0x2f, 0x64,
- 0x2b, 0x2f, 0x2e, 0x3f, 0x2f, 0x64, 0x2a, 0x7c, 0x2f, 0x2e, 0x2f, 0x64, 0x2b, 0x29, 0x22, 0x0a,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x20, 0x20, 0x20,
+ 0x3d, 0x20, 0x22, 0x5b, 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x28, 0x2f, 0x64, 0x2b, 0x2f, 0x2e, 0x3f,
+ 0x2f, 0x64, 0x2a, 0x7c, 0x2f, 0x2e, 0x2f, 0x64, 0x2b, 0x29, 0x22, 0x0a, 0x69, 0x75, 0x70, 0x2e,
0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x55, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x20, 0x20, 0x3d, 0x20, 0x22,
0x28, 0x2f, 0x64, 0x2b, 0x2f, 0x2e, 0x3f, 0x2f, 0x64, 0x2a, 0x7c, 0x2f, 0x2e, 0x2f, 0x64, 0x2b,
- 0x29, 0x22, 0x0a, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x45, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x20, 0x20,
- 0x3d, 0x20, 0x22, 0x5b, 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x28, 0x2f, 0x64, 0x2b, 0x2f, 0x2e, 0x3f,
- 0x2f, 0x64, 0x2a, 0x7c, 0x2f, 0x2e, 0x2f, 0x64, 0x2b, 0x29, 0x28, 0x5b, 0x65, 0x45, 0x5d, 0x5b,
- 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x2f, 0x64, 0x2b, 0x29, 0x3f, 0x22, 0x0a, 0x4d, 0x41, 0x53, 0x4b,
- 0x5f, 0x49, 0x4e, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x5b, 0x2b, 0x2f, 0x2d,
- 0x5d, 0x3f, 0x2f, 0x64, 0x2b, 0x22, 0x0a, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x55, 0x49, 0x4e, 0x54,
- 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x2f, 0x64, 0x2b, 0x22, 0x0a,
+ 0x29, 0x22, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x45, 0x46, 0x4c, 0x4f,
+ 0x41, 0x54, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x5b, 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x28, 0x2f, 0x64,
+ 0x2b, 0x2f, 0x2e, 0x3f, 0x2f, 0x64, 0x2a, 0x7c, 0x2f, 0x2e, 0x2f, 0x64, 0x2b, 0x29, 0x28, 0x5b,
+ 0x65, 0x45, 0x5d, 0x5b, 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x2f, 0x64, 0x2b, 0x29, 0x3f, 0x22, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x49, 0x4e, 0x54, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x3d, 0x20, 0x22, 0x5b, 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x2f, 0x64, 0x2b, 0x22, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x20, 0x20, 0x20, 0x20,
+ 0x3d, 0x20, 0x22, 0x2f, 0x64, 0x2b, 0x22, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "constants.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/dial.clua b/iup/srclua5/clua/dial.clua
index 71504f4..72d1c35 100644
--- a/iup/srclua5/clua/dial.clua
+++ b/iup/srclua5/clua/dial.clua
@@ -13,33 +13,34 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f,
- 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73,
- 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c,
- 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x61, 0x6d, 0x65,
- 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x62,
- 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c,
- 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64,
- 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x0a, 0x2d, 0x2d, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73,
- 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20,
- 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
- 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x0a, 0x20, 0x20,
- 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22,
- 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a,
- 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c,
- 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63,
- 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65,
- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x69, 0x61, 0x6c, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d,
- 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
- 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69,
- 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c,
- 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47,
+ 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
+ 0x20, 0x22, 0x53, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
+ 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d,
+ 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72,
+ 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x76, 0x61, 0x6c, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x20,
+ 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x0a, 0x2d, 0x2d,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73,
+ 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x20, 0x2d,
+ 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
+ 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x0a,
+ 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x72, 0x65,
+ 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x20,
+ 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69,
+ 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61,
+ 0x6c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
+ 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e,
+ 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+ 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65,
+ 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29,
+ 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x44,
+ 0x69, 0x61, 0x6c, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e,
+ 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57,
+ 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e,
+ 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22,
+ 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "dial.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/dialog.clua b/iup/srclua5/clua/dialog.clua
index 273a74b..1af9ef1 100644
--- a/iup/srclua5/clua/dialog.clua
+++ b/iup/srclua5/clua/dialog.clua
@@ -13,39 +13,42 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c,
0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20,
0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47,
- 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
- 0x20, 0x22, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
- 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x70, 0x5f, 0x63, 0x62, 0x20,
- 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x5f,
- 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x6f,
- 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x6b,
- 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x64, 0x72, 0x6f, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20,
- 0x22, 0x73, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66,
- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73,
- 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
- 0x20, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, 0x29, 0x0a,
- 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74,
- 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c,
- 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a,
- 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x73, 0x68,
- 0x6f, 0x77, 0x78, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20,
- 0x79, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x68, 0x6f, 0x77,
- 0x58, 0x59, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29,
+ 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c,
+ 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x70,
+ 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x6e,
+ 0x6d, 0x61, 0x70, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22,
+ 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d,
+ 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x63, 0x62,
+ 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x76, 0x65,
+ 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x74, 0x72, 0x61, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22,
+ 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x66, 0x69,
+ 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x6e, 0x6e, 0x6e, 0x22, 0x2c,
+ 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d,
+ 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d,
+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, 0x29,
0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
- 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64,
- 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x65, 0x73,
- 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64,
- 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64,
- 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74,
- 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70,
- 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, 0x6f,
+ 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a,
+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74,
+ 0x72, 0x6c, 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x78, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
+ 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x58, 0x59, 0x28, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66,
+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73,
+ 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72,
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f,
+ 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65,
+ 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43,
+ 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20,
+ 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "dialog.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/filedlg.clua b/iup/srclua5/clua/filedlg.clua
index cc2b7c9..b145a80 100644
--- a/iup/srclua5/clua/filedlg.clua
+++ b/iup/srclua5/clua/filedlg.clua
@@ -13,28 +13,30 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a,
0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20,
0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x64, 0x6c, 0x67,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49,
- 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
- 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63,
- 0x62, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20,
- 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x46, 0x69, 0x6c,
- 0x65, 0x44, 0x6c, 0x67, 0x22, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61,
- 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x50, 0x6f,
- 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a,
- 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74,
- 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c,
- 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x65, 0x73, 0x74,
- 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a,
- 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61,
- 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
- 0x72, 0x6e, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x6c, 0x67, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64,
- 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
- 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70,
- 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22,
- 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75,
+ 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c,
+ 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69,
+ 0x6c, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20,
+ 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20,
+ 0x22, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x6c, 0x67, 0x22, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75,
+ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75,
+ 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a,
+ 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72,
+ 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74,
+ 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20,
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
+ 0x20, 0x69, 0x75, 0x70, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x6c, 0x67, 0x28, 0x29, 0x0a, 0x65,
+ 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73,
+ 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72,
+ 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29,
+ 0x0a, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "filedlg.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/fill.clua b/iup/srclua5/clua/fill.clua
index 5941d4b..872b85a 100644
--- a/iup/srclua5/clua/fill.clua
+++ b/iup/srclua5/clua/fill.clua
@@ -13,17 +13,18 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x66, 0x69, 0x6c, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d,
- 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72,
- 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28,
- 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72,
- 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x46, 0x69, 0x6c, 0x6c, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64,
- 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64,
- 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74,
- 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70,
- 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47,
+ 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
+ 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20,
+ 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d,
+ 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d,
+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x46, 0x69, 0x6c, 0x6c, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e,
+ 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63,
+ 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64,
+ 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "fill.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/fontdlg.clua b/iup/srclua5/clua/fontdlg.clua
index f902d37..920ef10 100644
--- a/iup/srclua5/clua/fontdlg.clua
+++ b/iup/srclua5/clua/fontdlg.clua
@@ -13,27 +13,28 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a,
0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20,
0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x66, 0x6f, 0x6e, 0x74, 0x64, 0x6c, 0x67,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49,
- 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d,
- 0x65, 0x20, 0x3d, 0x20, 0x22, 0x46, 0x6f, 0x6e, 0x74, 0x44, 0x6c, 0x67, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d,
- 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c,
- 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78,
- 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e,
- 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75,
- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74,
- 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65,
- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e,
- 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c,
- 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67,
- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x46, 0x6f, 0x6e, 0x74,
- 0x44, 0x6c, 0x67, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75,
- 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28,
- 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73,
- 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64,
- 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75,
+ 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e,
+ 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x46, 0x6f, 0x6e, 0x74, 0x44, 0x6c, 0x67,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20,
+ 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+ 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50,
+ 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29,
+ 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+ 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29,
+ 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+ 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
+ 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a,
+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x46, 0x6f,
+ 0x6e, 0x74, 0x44, 0x6c, 0x67, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67,
+ 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74,
+ 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70,
+ 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "fontdlg.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/frame.clua b/iup/srclua5/clua/frame.clua
index 0ae9e52..7d238ab 100644
--- a/iup/srclua5/clua/frame.clua
+++ b/iup/srclua5/clua/frame.clua
@@ -13,18 +13,19 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e,
0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
- 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d,
- 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
- 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65,
- 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20,
- 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x28, 0x61,
- 0x72, 0x67, 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52,
- 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74,
- 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28,
- 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65,
- 0x74, 0x22, 0x29, 0x0a,
+ 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49,
+ 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x3d, 0x20, 0x22, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61,
+ 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45,
+ 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61,
+ 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31,
+ 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69,
+ 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29,
+ 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74,
+ 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22,
+ 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "frame.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/gauge.clua b/iup/srclua5/clua/gauge.clua
index 3f25c09..3821bf1 100644
--- a/iup/srclua5/clua/gauge.clua
+++ b/iup/srclua5/clua/gauge.clua
@@ -13,20 +13,21 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e,
0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x67, 0x61, 0x75, 0x67, 0x65, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20,
- 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20,
- 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c,
- 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72,
- 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28,
- 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72,
- 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, 0x61, 0x75, 0x67, 0x65, 0x28, 0x61, 0x72, 0x67, 0x2e,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70,
- 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63,
- 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73,
- 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67,
- 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49,
+ 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
+ 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64,
+ 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73,
+ 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d,
+ 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d,
+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x47, 0x61, 0x75, 0x67, 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67,
+ 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c,
+ 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63,
+ 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74,
+ 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "gauge.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/glcanvas.clua b/iup/srclua5/clua/glcanvas.clua
index 3ed6b8c..cb86316 100644
--- a/iup/srclua5/clua/glcanvas.clua
+++ b/iup/srclua5/clua/glcanvas.clua
@@ -14,49 +14,48 @@ static const unsigned char B1[] = {
0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a,
0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x67, 0x6c, 0x63, 0x61, 0x6e, 0x76,
0x61, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20,
- 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63,
- 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x47, 0x4c, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22,
- 0x69, 0x75, 0x70, 0x67, 0x6c, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c,
- 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c,
- 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x3d, 0x20,
- 0x31, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d,
- 0x20, 0x5b, 0x5b, 0x20, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x75, 0x70, 0x67, 0x6c, 0x6c, 0x75,
- 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65,
- 0x20, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x75,
- 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x6e,
- 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x28, 0x4c, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x49,
- 0x75, 0x70, 0x47, 0x4c, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x28, 0x29,
- 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x61, 0x6e,
- 0x67, 0x65, 0x45, 0x6e, 0x76, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x67,
- 0x6c, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28,
- 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x72, 0x65, 0x74,
- 0x75, 0x72, 0x6e, 0x45, 0x6e, 0x76, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74,
- 0x75, 0x72, 0x6e, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x6f, 0x62, 0x6c,
- 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x72,
- 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x67, 0x6c, 0x22,
- 0x20, 0x2a, 0x2f, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x6c, 0x75, 0x61, 0x6f, 0x70, 0x65, 0x6e, 0x5f,
- 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x67, 0x6c, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61,
- 0x74, 0x65, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
- 0x6e, 0x20, 0x69, 0x75, 0x70, 0x67, 0x6c, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28,
- 0x4c, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x6f, 0x62, 0x6c, 0x69, 0x67, 0x61,
- 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75,
- 0x69, 0x72, 0x65, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x67, 0x6c, 0x35, 0x31, 0x22, 0x20,
- 0x2a, 0x2f, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x6c, 0x75, 0x61, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69,
- 0x75, 0x70, 0x6c, 0x75, 0x61, 0x67, 0x6c, 0x35, 0x31, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74,
- 0x61, 0x74, 0x65, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
- 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x67, 0x6c, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e,
- 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75,
- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c,
- 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
- 0x47, 0x4c, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a,
- 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65,
- 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c,
- 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77,
- 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20,
+ 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x47, 0x4c, 0x43, 0x61,
+ 0x6e, 0x76, 0x61, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
+ 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x67, 0x6c, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20,
+ 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a,
+ 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x66, 0x75, 0x6e, 0x63,
+ 0x73, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x6f,
+ 0x64, 0x65, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x75, 0x70,
+ 0x67, 0x6c, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53,
+ 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x66,
+ 0x20, 0x28, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x61, 0x6c,
+ 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x28, 0x4c, 0x29, 0x29, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x49, 0x75, 0x70, 0x47, 0x4c, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x4f, 0x70,
+ 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f,
+ 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x76, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75,
+ 0x70, 0x67, 0x6c, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65,
+ 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x30,
+ 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x6f, 0x62, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f,
+ 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72,
+ 0x65, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x67, 0x6c, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x69,
+ 0x6e, 0x74, 0x20, 0x6c, 0x75, 0x61, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x75, 0x70, 0x6c, 0x75,
+ 0x61, 0x67, 0x6c, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x20, 0x4c,
+ 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x67, 0x6c, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x7d,
+ 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x6f, 0x62, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20,
+ 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x69,
+ 0x75, 0x70, 0x6c, 0x75, 0x61, 0x67, 0x6c, 0x35, 0x31, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x69, 0x6e,
+ 0x74, 0x20, 0x6c, 0x75, 0x61, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61,
+ 0x67, 0x6c, 0x35, 0x31, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x20,
+ 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75,
+ 0x70, 0x67, 0x6c, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a,
+ 0x7d, 0x0a, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65,
+ 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61,
+ 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x47, 0x4c, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a,
+ 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64,
+ 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65,
+ 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75,
+ 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "glcanvas.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/hbox.clua b/iup/srclua5/clua/hbox.clua
index e1bafd5..3a38586 100644
--- a/iup/srclua5/clua/hbox.clua
+++ b/iup/srclua5/clua/hbox.clua
@@ -13,19 +13,20 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x68, 0x62, 0x6f, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x42, 0x4f, 0x58, 0x2c, 0x0a, 0x20, 0x20, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d,
- 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
- 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65,
- 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61,
- 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a,
- 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61,
- 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
- 0x72, 0x6e, 0x20, 0x48, 0x62, 0x6f, 0x78, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69,
- 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74,
- 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f, 0x58, 0x2c,
+ 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20,
+ 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+ 0x74, 0x72, 0x6c, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x41,
+ 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c,
+ 0x65, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65,
+ 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61,
+ 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x48, 0x62, 0x6f, 0x78, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70,
+ 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28,
+ 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61,
0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69,
0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
diff --git a/iup/srclua5/clua/image.clua b/iup/srclua5/clua/image.clua
index 899327a..c22bdb9 100644
--- a/iup/srclua5/clua/image.clua
+++ b/iup/srclua5/clua/image.clua
@@ -13,129 +13,131 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e,
0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
- 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65,
- 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62,
- 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20, 0x0a, 0x73, 0x74, 0x61,
- 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x28, 0x6c,
- 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a,
- 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, 0x2c, 0x20, 0x68, 0x2c, 0x20, 0x63, 0x2c, 0x20, 0x6e,
- 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x75, 0x6e, 0x73,
- 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x70, 0x69, 0x78, 0x65,
- 0x6c, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2a, 0x20, 0x69,
- 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x73, 0x74, 0x72, 0x5b, 0x32, 0x30,
- 0x5d, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x69, 0x73,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x7b,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x2c, 0x20, 0x6a, 0x3b, 0x0a, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2a, 0x20, 0x67, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e,
- 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2a,
- 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x67,
- 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x20, 0x20, 0x0a, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x2f, 0x2a, 0x20, 0x67, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d,
- 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x20, 0x6f,
- 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65,
- 0x20, 0x2a, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68,
- 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x4c,
- 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x6c, 0x75,
- 0x61, 0x4c, 0x5f, 0x67, 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x2d, 0x31, 0x29, 0x3b, 0x20,
- 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c,
- 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69,
- 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64,
- 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x29, 0x20, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x20,
- 0x28, 0x68, 0x2a, 0x77, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20,
- 0x28, 0x69, 0x3d, 0x31, 0x3b, 0x20, 0x69, 0x3c, 0x3d, 0x68, 0x3b, 0x20, 0x69, 0x2b, 0x2b, 0x29,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61,
- 0x5f, 0x70, 0x75, 0x73, 0x68, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x4c, 0x2c, 0x20, 0x69,
- 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x67, 0x65, 0x74,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x6a, 0x3d, 0x31, 0x3b, 0x20, 0x6a, 0x3c, 0x3d,
- 0x77, 0x3b, 0x20, 0x6a, 0x2b, 0x2b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x64, 0x78, 0x20,
- 0x3d, 0x20, 0x28, 0x69, 0x2d, 0x31, 0x29, 0x2a, 0x77, 0x2b, 0x28, 0x6a, 0x2d, 0x31, 0x29, 0x3b,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73,
- 0x68, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x4c, 0x2c, 0x20, 0x6a, 0x29, 0x3b, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x2d, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x5b, 0x69, 0x64, 0x78, 0x5d, 0x20,
- 0x3d, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72,
- 0x29, 0x6c, 0x75, 0x61, 0x5f, 0x74, 0x6f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x4c, 0x2c,
- 0x20, 0x2d, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75,
- 0x61, 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70,
- 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x68, 0x20, 0x3d, 0x20, 0x49, 0x75,
- 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x77, 0x2c, 0x68, 0x2c, 0x70, 0x69, 0x78, 0x65, 0x6c,
- 0x73, 0x29, 0x3b, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x65, 0x65, 0x28, 0x70,
- 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6d,
- 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x67,
- 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e,
- 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6d, 0x5f,
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3e, 0x32, 0x35, 0x35, 0x3f, 0x20, 0x32, 0x35, 0x35, 0x3a,
- 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x66, 0x6f, 0x72, 0x28, 0x63, 0x3d, 0x31, 0x3b, 0x20, 0x63, 0x3c, 0x3d, 0x6e, 0x75, 0x6d,
- 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x20, 0x63, 0x2b, 0x2b, 0x29, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x72, 0x61,
- 0x77, 0x67, 0x65, 0x74, 0x69, 0x28, 0x4c, 0x2c, 0x20, 0x32, 0x2c, 0x20, 0x63, 0x29, 0x3b, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x73, 0x74,
- 0x72, 0x2c, 0x20, 0x22, 0x25, 0x64, 0x22, 0x2c, 0x20, 0x63, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x49, 0x75, 0x70, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69,
- 0x62, 0x75, 0x74, 0x65, 0x28, 0x69, 0x68, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x2c, 0x20, 0x6c, 0x75,
- 0x61, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x4c, 0x2c, 0x2d, 0x31, 0x29,
- 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6f, 0x70,
- 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20,
- 0x7d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x77, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69,
- 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x20,
- 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28,
- 0x4c, 0x2c, 0x20, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c,
- 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b,
- 0x75, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x33,
- 0x2c, 0x20, 0x77, 0x2a, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x68, 0x20, 0x3d,
- 0x20, 0x49, 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x77, 0x2c, 0x20, 0x68, 0x2c, 0x20,
- 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x65,
- 0x65, 0x28, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61,
- 0x4c, 0x5f, 0x67, 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x34, 0x29, 0x3b, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x6e,
- 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3e, 0x32, 0x35, 0x36, 0x3f, 0x20, 0x32,
- 0x35, 0x36, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x63, 0x3d, 0x31, 0x3b, 0x20, 0x63, 0x3c, 0x3d,
- 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x20, 0x63, 0x2b, 0x2b, 0x29,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61,
- 0x5f, 0x72, 0x61, 0x77, 0x67, 0x65, 0x74, 0x69, 0x28, 0x4c, 0x2c, 0x20, 0x34, 0x2c, 0x20, 0x63,
- 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66,
- 0x28, 0x73, 0x74, 0x72, 0x2c, 0x20, 0x22, 0x25, 0x64, 0x22, 0x2c, 0x20, 0x63, 0x2d, 0x31, 0x29,
- 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x75, 0x70, 0x53, 0x74, 0x6f, 0x72, 0x65,
- 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x69, 0x68, 0x2c, 0x20, 0x73, 0x74,
- 0x72, 0x2c, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28,
- 0x4c, 0x2c, 0x2d, 0x31, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75,
- 0x61, 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61,
- 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68,
- 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68,
- 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x69,
- 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a,
- 0x7d, 0x20, 0x0a, 0x20, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45,
- 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72,
- 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x77, 0x69,
- 0x64, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x68, 0x65, 0x69, 0x67,
- 0x68, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c,
- 0x73, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
- 0x75, 0x72, 0x6e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x77, 0x69,
- 0x64, 0x74, 0x68, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2c,
- 0x20, 0x61, 0x72, 0x67, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67,
- 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x6d, 0x61,
- 0x67, 0x65, 0x28, 0x61, 0x72, 0x67, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x63, 0x6f, 0x6c, 0x6f,
+ 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49,
+ 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b,
+ 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x63,
+ 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20,
+ 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x49, 0x6d, 0x61, 0x67,
+ 0x65, 0x20, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x20, 0x4c,
+ 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, 0x2c, 0x20, 0x68, 0x2c, 0x20,
+ 0x63, 0x2c, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x0a, 0x20,
+ 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a,
+ 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x2a, 0x20, 0x69, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x73, 0x74,
+ 0x72, 0x5b, 0x32, 0x30, 0x5d, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6c, 0x75,
+ 0x61, 0x5f, 0x69, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x29,
+ 0x0a, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x2c, 0x20,
+ 0x6a, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2a, 0x20, 0x67, 0x65, 0x74, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x69, 0x6e,
+ 0x65, 0x73, 0x20, 0x2a, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x75,
+ 0x61, 0x4c, 0x5f, 0x67, 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x20, 0x20,
+ 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2a, 0x20, 0x67, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20,
+ 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x2a, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f,
+ 0x70, 0x75, 0x73, 0x68, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29,
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x20,
+ 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x67, 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x2d,
+ 0x31, 0x29, 0x3b, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6f,
+ 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69,
+ 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x29, 0x20, 0x6d, 0x61, 0x6c,
+ 0x6c, 0x6f, 0x63, 0x20, 0x28, 0x68, 0x2a, 0x77, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x3d, 0x31, 0x3b, 0x20, 0x69, 0x3c, 0x3d, 0x68, 0x3b, 0x20,
+ 0x69, 0x2b, 0x2b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28,
+ 0x4c, 0x2c, 0x20, 0x69, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61,
+ 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x6a, 0x3d, 0x31, 0x3b,
+ 0x20, 0x6a, 0x3c, 0x3d, 0x77, 0x3b, 0x20, 0x6a, 0x2b, 0x2b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20,
+ 0x69, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x28, 0x69, 0x2d, 0x31, 0x29, 0x2a, 0x77, 0x2b, 0x28, 0x6a,
+ 0x2d, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61,
+ 0x5f, 0x70, 0x75, 0x73, 0x68, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x4c, 0x2c, 0x20, 0x6a,
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x67,
+ 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x2d, 0x32, 0x29, 0x3b, 0x0a,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x5b, 0x69,
+ 0x64, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20,
+ 0x63, 0x68, 0x61, 0x72, 0x29, 0x6c, 0x75, 0x61, 0x5f, 0x74, 0x6f, 0x6e, 0x75, 0x6d, 0x62, 0x65,
+ 0x72, 0x28, 0x4c, 0x2c, 0x20, 0x2d, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c,
+ 0x75, 0x61, 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x68, 0x20,
+ 0x3d, 0x20, 0x49, 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x77, 0x2c, 0x68, 0x2c, 0x70,
+ 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72,
+ 0x65, 0x65, 0x28, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75,
+ 0x61, 0x4c, 0x5f, 0x67, 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x32, 0x29, 0x3b, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, 0x20,
+ 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3e, 0x32, 0x35, 0x35, 0x3f, 0x20,
+ 0x32, 0x35, 0x35, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x63, 0x3d, 0x31, 0x3b, 0x20, 0x63, 0x3c,
+ 0x3d, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x20, 0x63, 0x2b, 0x2b,
+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75,
+ 0x61, 0x5f, 0x72, 0x61, 0x77, 0x67, 0x65, 0x74, 0x69, 0x28, 0x4c, 0x2c, 0x20, 0x32, 0x2c, 0x20,
+ 0x63, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x74,
+ 0x66, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x20, 0x22, 0x25, 0x64, 0x22, 0x2c, 0x20, 0x63, 0x29, 0x3b,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x75, 0x70, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x41,
+ 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x69, 0x68, 0x2c, 0x20, 0x73, 0x74, 0x72,
+ 0x2c, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x4c,
+ 0x2c, 0x2d, 0x31, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61,
+ 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x7d, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x7b,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68,
+ 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b,
+ 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70,
+ 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63,
+ 0x68, 0x65, 0x63, 0x6b, 0x75, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x28,
+ 0x4c, 0x2c, 0x20, 0x33, 0x2c, 0x20, 0x77, 0x2a, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x69, 0x68, 0x20, 0x3d, 0x20, 0x49, 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x77, 0x2c,
+ 0x20, 0x68, 0x2c, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x66, 0x72, 0x65, 0x65, 0x28, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x0a,
+ 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d,
+ 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x67, 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x34, 0x29,
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73,
+ 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3e, 0x32, 0x35,
+ 0x36, 0x3f, 0x20, 0x32, 0x35, 0x36, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f,
+ 0x72, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x63, 0x3d, 0x31, 0x3b,
+ 0x20, 0x63, 0x3c, 0x3d, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x20,
+ 0x63, 0x2b, 0x2b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x72, 0x61, 0x77, 0x67, 0x65, 0x74, 0x69, 0x28, 0x4c, 0x2c, 0x20,
+ 0x34, 0x2c, 0x20, 0x63, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x72,
+ 0x69, 0x6e, 0x74, 0x66, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x20, 0x22, 0x25, 0x64, 0x22, 0x2c, 0x20,
+ 0x63, 0x2d, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x75, 0x70, 0x53,
+ 0x74, 0x6f, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x69, 0x68,
+ 0x2c, 0x20, 0x73, 0x74, 0x72, 0x2c, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72,
+ 0x69, 0x6e, 0x67, 0x28, 0x4c, 0x2c, 0x2d, 0x31, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x75,
+ 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x28, 0x4c,
+ 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f,
+ 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x77, 0x28,
+ 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
+ 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x20, 0x0a, 0x20, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66,
+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28,
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x64, 0x20,
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x61, 0x6e, 0x64,
+ 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x20, 0x74,
+ 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
+ 0x69, 0x75, 0x70, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e,
+ 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x68, 0x65, 0x69,
+ 0x67, 0x68, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c,
+ 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x29,
+ 0x0a, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65,
+ 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x70,
+ 0x61, 0x72, 0x61, 0x6d, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6c, 0x6f,
0x72, 0x73, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a,
- 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65,
- 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c,
- 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77,
- 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67,
+ 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74,
+ 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70,
+ 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "image.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/imagergb.clua b/iup/srclua5/clua/imagergb.clua
index 0bf1b63..cdf18b7 100644
--- a/iup/srclua5/clua/imagergb.clua
+++ b/iup/srclua5/clua/imagergb.clua
@@ -14,42 +14,43 @@ static const unsigned char B1[] = {
0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a,
0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x72,
0x67, 0x62, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20,
- 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x20, 0x2d, 0x2d, 0x20, 0x66,
- 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20,
- 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x49, 0x6d, 0x61,
- 0x67, 0x65, 0x52, 0x47, 0x42, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62,
- 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20, 0x0a, 0x73, 0x74, 0x61,
- 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42,
- 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x4c, 0x29, 0x0a, 0x7b,
- 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f,
- 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a,
- 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63,
- 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x32, 0x29, 0x3b, 0x0a, 0x20,
- 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a,
- 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f,
- 0x63, 0x68, 0x65, 0x63, 0x6b, 0x75, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79,
- 0x28, 0x4c, 0x2c, 0x20, 0x33, 0x2c, 0x20, 0x77, 0x2a, 0x68, 0x2a, 0x33, 0x29, 0x3b, 0x0a, 0x20,
- 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x69, 0x68, 0x20, 0x3d, 0x20, 0x49,
- 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x28, 0x77, 0x2c, 0x20, 0x68, 0x2c,
- 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c,
- 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x28, 0x4c, 0x2c, 0x20,
- 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75,
- 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x77, 0x28, 0x4c, 0x2c,
- 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x72, 0x65, 0x65, 0x28, 0x70, 0x69, 0x78,
- 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31,
- 0x3b, 0x0a, 0x7d, 0x0a, 0x20, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61,
- 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x6d,
- 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68,
- 0x2c, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2c, 0x20, 0x61, 0x72,
- 0x67, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69,
- 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74,
- 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61,
- 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69,
- 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x20,
+ 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20,
+ 0x22, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x63,
+ 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20,
+ 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x49, 0x6d, 0x61, 0x67,
+ 0x65, 0x52, 0x47, 0x42, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a,
+ 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x6c,
+ 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20,
+ 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x75,
+ 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x32,
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68,
+ 0x61, 0x72, 0x20, 0x2a, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70,
+ 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x75, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x61,
+ 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x33, 0x2c, 0x20, 0x77, 0x2a, 0x68, 0x2a, 0x33,
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x69, 0x68,
+ 0x20, 0x3d, 0x20, 0x49, 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x28, 0x77,
+ 0x2c, 0x20, 0x68, 0x2c, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20,
+ 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75,
+ 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x61,
+ 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x72, 0x65, 0x65,
+ 0x28, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
+ 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x20, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a,
+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
+ 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42,
+ 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x61,
+ 0x72, 0x61, 0x6d, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61,
+ 0x6d, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65,
+ 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43,
+ 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20,
+ 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "imagergb.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/imagergba.clua b/iup/srclua5/clua/imagergba.clua
index 5f84ea8..301a404 100644
--- a/iup/srclua5/clua/imagergba.clua
+++ b/iup/srclua5/clua/imagergba.clua
@@ -14,42 +14,43 @@ static const unsigned char B1[] = {
0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b,
0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65,
0x72, 0x67, 0x62, 0x61, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20,
- 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x20, 0x2d, 0x2d,
- 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,
- 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x49,
- 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x41, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x63, 0x61,
- 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20, 0x0a,
- 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65,
- 0x52, 0x47, 0x42, 0x41, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a,
- 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x6c,
- 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20,
- 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x75,
- 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x32,
- 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68,
- 0x61, 0x72, 0x20, 0x2a, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70,
- 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x75, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x61,
- 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x33, 0x2c, 0x20, 0x77, 0x2a, 0x68, 0x2a, 0x34,
- 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x69, 0x68,
- 0x20, 0x3d, 0x20, 0x49, 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x41, 0x28,
- 0x77, 0x2c, 0x20, 0x68, 0x2c, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20,
- 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, 0x61, 0x74,
- 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c,
- 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72,
- 0x61, 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x72, 0x65,
- 0x65, 0x28, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74,
- 0x75, 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x20, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a,
- 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61,
- 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
- 0x72, 0x6e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x41, 0x28, 0x61, 0x72, 0x67,
- 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x68, 0x65, 0x69, 0x67,
- 0x68, 0x74, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x0a,
- 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
- 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70,
- 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22,
- 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22,
+ 0x2c, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69,
+ 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20,
+ 0x3d, 0x20, 0x22, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x41, 0x22, 0x2c, 0x20, 0x0a,
+ 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c,
+ 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20,
+ 0x5b, 0x5b, 0x20, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x41, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61,
+ 0x74, 0x65, 0x20, 0x2a, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77,
+ 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74,
+ 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x68, 0x20,
+ 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28,
+ 0x4c, 0x2c, 0x20, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65,
+ 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d,
+ 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x75, 0x63, 0x68,
+ 0x61, 0x72, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x33, 0x2c, 0x20, 0x77,
+ 0x2a, 0x68, 0x2a, 0x34, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x20, 0x2a, 0x69, 0x68, 0x20, 0x3d, 0x20, 0x49, 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52,
+ 0x47, 0x42, 0x41, 0x28, 0x77, 0x2c, 0x20, 0x68, 0x2c, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73,
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67,
+ 0x73, 0x74, 0x61, 0x74, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20,
+ 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20,
+ 0x20, 0x66, 0x72, 0x65, 0x65, 0x28, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20,
+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x20, 0x0a, 0x5d,
+ 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74,
+ 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+ 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20,
+ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x49, 0x6d, 0x61,
+ 0x67, 0x65, 0x52, 0x47, 0x42, 0x41, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x77, 0x69, 0x64,
+ 0x74, 0x68, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
+ 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x0a,
+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
+ 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75,
+ 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c,
+ 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "imagergba.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/item.clua b/iup/srclua5/clua/item.clua
index e1040b8..ac02b51 100644
--- a/iup/srclua5/clua/item.clua
+++ b/iup/srclua5/clua/item.clua
@@ -13,21 +13,22 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x53, 0x2d,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20,
- 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
- 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68,
- 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d,
- 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c,
- 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63,
- 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65,
- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x74, 0x65, 0x6d, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x74, 0x69,
- 0x74, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70,
- 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63,
- 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73,
- 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67,
- 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47,
+ 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
+ 0x20, 0x22, 0x53, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
+ 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68,
+ 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20,
+ 0x20, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+ 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65,
+ 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29,
+ 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x49,
+ 0x74, 0x65, 0x6d, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x29,
+ 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67,
+ 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c,
+ 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63,
+ 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74,
+ 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "item.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/iuplua.clua b/iup/srclua5/clua/iuplua.clua
index 7ed6181..90bf48f 100644
--- a/iup/srclua5/clua/iuplua.clua
+++ b/iup/srclua5/clua/iuplua.clua
@@ -15,21 +15,22 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x63,
- 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x0a, 0x66,
- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x4d,
- 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29,
- 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20,
- 0x3d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20,
- 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63,
- 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
- 0x5b, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74,
- 0x20, 0x66, 0x75, 0x6e, 0x63, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x0a,
- 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x29, 0x20,
- 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x68,
- 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75,
- 0x6e, 0x63, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x20, 0x3d, 0x20, 0x7b,
+ 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x43, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c,
+ 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, 0x20, 0x2d, 0x2d,
+ 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x20,
+ 0x3d, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x0a, 0x20,
+ 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x29, 0x20, 0x74,
+ 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x0a, 0x20,
+ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70,
+ 0x65, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x75, 0x6e, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72,
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x28, 0x75, 0x6e, 0x70, 0x61, 0x63,
+ 0x6b, 0x28, 0x61, 0x72, 0x67, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66,
0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22,
0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x20, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x3d, 0x20,
@@ -41,14 +42,15 @@ static const unsigned char B1[] = {
0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x0a, 0x20,
0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
0x20, 0x69, 0x75, 0x70, 0x2e, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64,
- 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x52,
- 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x28,
- 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65,
- 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62,
- 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20,
- 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x20,
- 0x3d, 0x20, 0x7b, 0x7d, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
- 0x20, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b,
+ 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x6c, 0x6c, 0x62,
+ 0x61, 0x63, 0x6b, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x2c, 0x20,
+ 0x74, 0x79, 0x70, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x6e, 0x61, 0x6d,
+ 0x65, 0x5d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x63, 0x61, 0x6c, 0x6c,
+ 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x20, 0x3d, 0x20, 0x7b, 0x7d,
+ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x62, 0x20,
+ 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b,
0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20,
0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x62, 0x5b, 0x74, 0x79, 0x70, 0x65,
0x5d, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a,
@@ -78,63 +80,64 @@ static const unsigned char B1[] = {
0x72, 0x65, 0x6e, 0x74, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20,
0x6e, 0x6f, 0x74, 0x20, 0x70, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
0x6e, 0x20, 0x6e, 0x69, 0x6c, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a,
- 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x61, 0x73, 0x73,
- 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x69,
- 0x75, 0x70, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, 0x70,
- 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x69, 0x6e, 0x64,
- 0x65, 0x78, 0x22, 0x2c, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x29, 0x0a, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x3d,
- 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
- 0x2c, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
- 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e,
- 0x75, 0x70, 0x70, 0x65, 0x72, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, 0x20, 0x69,
- 0x66, 0x20, 0x28, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x49, 0x4e, 0x44,
- 0x45, 0x58, 0x5d, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x6c, 0x6f,
- 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70,
- 0x47, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x62, 0x6a,
- 0x65, 0x63, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x29, 0x7e, 0x3d, 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x29, 0x20, 0x74, 0x68,
- 0x65, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69,
- 0x64, 0x20, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x20, 0x65,
- 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x62, 0x6a,
- 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73,
- 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x20, 0x3d, 0x20, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
- 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x29, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f,
- 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70,
- 0x47, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20,
- 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x7e, 0x3d, 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x29,
- 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x69, 0x6e, 0x76,
- 0x61, 0x6c, 0x69, 0x64, 0x20, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22,
- 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
- 0x72, 0x6e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65,
- 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x3d, 0x3d, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65,
- 0x72, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x20, 0x74,
- 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20,
- 0x69, 0x68, 0x20, 0x3d, 0x20, 0x47, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69,
- 0x68, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x68,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75,
- 0x72, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
- 0x72, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e,
- 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63,
- 0x61, 0x6c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2c, 0x20, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x69, 0x20,
- 0x3d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, 0x20,
- 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x76, 0x20, 0x3d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x47, 0x65, 0x74, 0x57, 0x69,
+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69,
+ 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x69,
+ 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2c, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65,
+ 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x0a, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20,
+ 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63,
+ 0x61, 0x6c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e,
+ 0x67, 0x2e, 0x75, 0x70, 0x70, 0x65, 0x72, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20,
+ 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x75, 0x70, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
+ 0x6b, 0x73, 0x5b, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5d, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20,
+ 0x0a, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74,
+ 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28,
+ 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79,
+ 0x70, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x7e, 0x3d, 0x22, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x22, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28,
+ 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x22, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
+ 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78,
+ 0x5d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63,
+ 0x61, 0x6c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47,
+ 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x2c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69,
+ 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x74, 0x68,
+ 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x57,
+ 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x29, 0x7e, 0x3d, 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x29, 0x20, 0x74, 0x68, 0x65,
+ 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64,
+ 0x20, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x20, 0x65, 0x6e,
+ 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x29, 0x3d, 0x3d, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x20, 0x6f,
+ 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x3d, 0x3d,
+ 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x68, 0x20, 0x3d, 0x20,
+ 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69, 0x68,
+ 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x68, 0x0a,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
+ 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
+ 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64,
+ 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61,
+ 0x6c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2c, 0x20, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x69, 0x20, 0x3d,
+ 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, 0x20, 0x6c,
+ 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x76, 0x20, 0x3d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x69,
0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x69,
0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x6f, 0x72,
0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x7e, 0x3d, 0x22,
@@ -148,33 +151,34 @@ static const unsigned char B1[] = {
0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x49, 0x4e, 0x44,
0x45, 0x58, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x70, 0x70, 0x65,
0x72, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63,
- 0x61, 0x6c, 0x20, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
- 0x73, 0x5b, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20,
- 0x28, 0x63, 0x62, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20,
- 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63,
- 0x20, 0x3d, 0x20, 0x63, 0x62, 0x5b, 0x31, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69,
- 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x29, 0x20, 0x74, 0x68, 0x65,
- 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d,
- 0x20, 0x63, 0x62, 0x5b, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65,
- 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74,
- 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c,
- 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x29, 0x20, 0x2d, 0x2d, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
- 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x65, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64,
- 0x20, 0x43, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20,
- 0x3d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65,
- 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x69, 0x6e, 0x20, 0x4c, 0x75, 0x61, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x69, 0x75, 0x70, 0x47, 0x65, 0x74, 0x43, 0x6c,
- 0x61, 0x73, 0x73, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69,
- 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20,
- 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20, 0x61, 0x20, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64,
- 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e,
- 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65,
- 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28,
+ 0x61, 0x6c, 0x20, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x63, 0x61, 0x6c, 0x6c,
+ 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5d, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x62, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x2d, 0x2d,
+ 0x20, 0x69, 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20,
+ 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x63, 0x62, 0x5b, 0x31, 0x5d, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x29,
+ 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75,
+ 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x63, 0x62, 0x5b, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x43,
+ 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29,
+ 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
+ 0x6b, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x2c,
+ 0x20, 0x66, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x2d, 0x2d,
+ 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72,
+ 0x65, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x43, 0x20, 0x63, 0x61, 0x6c, 0x6c,
+ 0x62, 0x61, 0x63, 0x6b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x69,
+ 0x6e, 0x20, 0x4c, 0x75, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66,
+ 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20,
+ 0x61, 0x20, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d,
+ 0x65, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28,
0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x2c, 0x20, 0x6e,
0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63,
0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x20, 0x2d,
@@ -186,306 +190,324 @@ static const unsigned char B1[] = {
0x6d, 0x62, 0x65, 0x72, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x76, 0x20, 0x3d, 0x3d, 0x20, 0x22,
0x6e, 0x69, 0x6c, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20,
0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
- 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x2c,
- 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62,
- 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69,
- 0x6c, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61,
- 0x73, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x4c,
- 0x75, 0x61, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20,
- 0x69, 0x6e, 0x20, 0x4c, 0x75, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
- 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
- 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20,
- 0x2d, 0x2d, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x69, 0x6e,
- 0x20, 0x4c, 0x75, 0x61, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a,
- 0x69, 0x75, 0x70, 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x22, 0x69, 0x75, 0x70,
- 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74,
- 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64,
- 0x6c, 0x65, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2c, 0x20,
- 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22,
- 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f,
- 0x6e, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64,
- 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x0a, 0x69, 0x75, 0x70,
- 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72,
- 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x6f,
- 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4d, 0x65,
- 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
- 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x65, 0x71, 0x22, 0x2c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64,
- 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x29, 0x20, 0x2d, 0x2d, 0x20, 0x69,
- 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x43, 0x0a,
- 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x0a, 0x2d, 0x2d, 0x20, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x0a, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x66,
- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f,
- 0x73, 0x65, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x76, 0x29, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x75,
- 0x73, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, 0x79, 0x20, 0x72, 0x61, 0x64, 0x69,
- 0x6f, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x7a, 0x62, 0x6f, 0x78, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63,
- 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d,
- 0x65, 0x28, 0x76, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x61,
- 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61,
- 0x6c, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72,
- 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x5f, 0x49, 0x55, 0x50,
- 0x4c, 0x55, 0x41, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x28, 0x25, 0x73, 0x29, 0x22, 0x2c, 0x20, 0x74,
- 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x76, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61,
- 0x6d, 0x65, 0x2c, 0x20, 0x76, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
- 0x6e, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64,
- 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x65,
- 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72,
+ 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x49, 0x4e,
+ 0x44, 0x45, 0x58, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20,
+ 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x72,
+ 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20,
+ 0x69, 0x6e, 0x20, 0x4c, 0x75, 0x61, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x61,
+ 0x6c, 0x73, 0x6f, 0x20, 0x69, 0x6e, 0x20, 0x4c, 0x75, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65,
+ 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x73,
+ 0x6f, 0x20, 0x69, 0x6e, 0x20, 0x4c, 0x75, 0x61, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65,
+ 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x61, 0x73, 0x73,
+ 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75,
+ 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x69, 0x6e,
+ 0x64, 0x65, 0x78, 0x22, 0x2c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x67, 0x65,
+ 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d,
+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x6e, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22,
+ 0x2c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f,
+ 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x2c, 0x20,
+ 0x22, 0x5f, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x20, 0x69, 0x75,
+ 0x70, 0x2e, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69,
+ 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+ 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x43, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d,
+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x65, 0x71, 0x22, 0x2c, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x29,
+ 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x20,
+ 0x69, 0x6e, 0x20, 0x43, 0x0a, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x69,
+ 0x65, 0x73, 0x20, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x76,
+ 0x29, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20,
+ 0x62, 0x79, 0x20, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x7a, 0x62, 0x6f,
+ 0x78, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d,
+ 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x76, 0x29, 0x0a,
+ 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68,
+ 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x75, 0x74,
+ 0x6f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66,
+ 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x5f, 0x49, 0x55, 0x50, 0x4c, 0x55, 0x41, 0x5f, 0x4e,
+ 0x41, 0x4d, 0x45, 0x28, 0x25, 0x73, 0x29, 0x22, 0x2c, 0x20, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69,
+ 0x6e, 0x67, 0x28, 0x76, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53,
+ 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d,
+ 0x65, 0x2c, 0x20, 0x76, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
+ 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a,
+ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x65, 0x6e,
+ 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e,
0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63,
0x74, 0x72, 0x6c, 0x29, 0x20, 0x2d, 0x2d, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x20, 0x62,
0x79, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
0x6c, 0x73, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x69, 0x75,
0x70, 0x5b, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x6e, 0x69, 0x63, 0x6b, 0x5d, 0x20, 0x3d, 0x20, 0x66,
- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x3a, 0x63, 0x6f, 0x6e,
- 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20,
- 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x20, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
+ 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x29, 0x20, 0x74, 0x68, 0x65,
+ 0x6e, 0x20, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x6e, 0x69, 0x63,
+ 0x6b, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
+ 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74,
+ 0x6f, 0x72, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a,
+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75,
+ 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d,
- 0x65, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73,
- 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63,
- 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x47,
- 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29,
- 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
- 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
- 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x5b, 0x73, 0x74, 0x72,
- 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x70, 0x70, 0x65, 0x72, 0x28, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61,
- 0x6d, 0x65, 0x29, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20,
- 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63,
- 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x70, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x68, 0x61, 0x6e, 0x64,
- 0x6c, 0x65, 0x3d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22,
- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67,
- 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63,
- 0x74, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x72, 0x65,
- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x65, 0x6e, 0x64, 0x0a,
+ 0x65, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61,
+ 0x73, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x6c, 0x6f,
+ 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x47, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63,
+ 0x61, 0x6c, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x5b, 0x73,
+ 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x70, 0x70, 0x65, 0x72, 0x28, 0x74, 0x79, 0x70, 0x65,
+ 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f,
+ 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45,
+ 0x54, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c,
+ 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x20,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x3d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7d, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67,
+ 0x65, 0x74, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74,
+ 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x0a,
+ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a,
+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x20, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x20, 0x28, 0x74, 0x6f, 0x70, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x29, 0x20,
0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a,
- 0x2d, 0x2d, 0x20, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20,
- 0x28, 0x74, 0x6f, 0x70, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x29, 0x20, 0x0a, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x57, 0x49, 0x44,
- 0x47, 0x45, 0x54, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61,
- 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x28,
- 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x53, 0x68, 0x6f, 0x77, 0x28, 0x6f,
+ 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x20, 0x3d, 0x20, 0x7b, 0x0a,
+ 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a,
+ 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x28, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x28, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e,
+ 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x68, 0x69, 0x64, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x48, 0x69, 0x64, 0x65, 0x28, 0x6f,
0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e,
- 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x49, 0x44, 0x47,
- 0x45, 0x54, 0x2e, 0x68, 0x69, 0x64, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x0a,
- 0x20, 0x20, 0x48, 0x69, 0x64, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x68, 0x61,
- 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x4d, 0x61, 0x70, 0x28, 0x6f, 0x62, 0x6a,
+ 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+ 0x74, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x61, 0x70, 0x28, 0x6f, 0x62, 0x6a,
0x65, 0x63, 0x74, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a,
- 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54,
- 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x63, 0x6c, 0x61,
- 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
- 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3a,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x61, 0x72,
- 0x67, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63,
- 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e,
- 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x20,
- 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73,
- 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61,
- 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43,
- 0x6c, 0x61, 0x73, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x22, 0x69, 0x75,
- 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70,
- 0x53, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
- 0x2c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x3a, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
- 0x28, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74,
- 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c,
- 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x61,
- 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x68, 0x61,
- 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x2c, 0x76, 0x20, 0x69,
- 0x6e, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x28, 0x61, 0x72, 0x67, 0x29, 0x20, 0x64, 0x6f, 0x20,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x69, 0x29, 0x20,
- 0x3d, 0x3d, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x20, 0x61, 0x6e, 0x64, 0x20,
- 0x69, 0x75, 0x70, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x76, 0x29, 0x20, 0x3d,
- 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74,
- 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x57, 0x65, 0x20,
- 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74,
- 0x68, 0x69, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6c, 0x65,
- 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x69,
- 0x75, 0x70, 0x74, 0x65, 0x78, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d,
- 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x6e, 0x65, 0x6f, 0x73, 0x6c, 0x79,
- 0x20, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x20, 0x69, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x72, 0x61, 0x77, 0x73, 0x65, 0x74, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c,
- 0x20, 0x69, 0x2c, 0x20, 0x76, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69,
- 0x6c, 0x6c, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x69, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e,
- 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x62,
- 0x6a, 0x65, 0x63, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x69, 0x65,
- 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x22,
- 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x0a, 0x2d, 0x2d, 0x20, 0x4d,
- 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20,
- 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6e,
- 0x65, 0x77, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74,
- 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x20, 0x22, 0x69,
- 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, 0x0a, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20,
- 0x42, 0x6f, 0x78, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x28, 0x69, 0x6e, 0x68, 0x65, 0x72,
- 0x69, 0x74, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x29,
- 0x20, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x0a, 0x0a, 0x42, 0x4f, 0x58, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65,
- 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x0a, 0x7d, 0x0a, 0x0a, 0x66,
- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x4f, 0x58, 0x2e, 0x73, 0x65, 0x74, 0x41,
+ 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49,
+ 0x44, 0x47, 0x45, 0x54, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72,
+ 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20,
+ 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d,
+ 0x65, 0x6e, 0x74, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63,
+ 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a,
+ 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67,
+ 0x65, 0x74, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x57, 0x69,
+ 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6f, 0x62, 0x6a,
+ 0x65, 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3a, 0x73, 0x65,
+ 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x70, 0x61, 0x72, 0x61,
+ 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x73, 0x65, 0x74, 0x41,
0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
- 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x72, 0x61, 0x77, 0x67, 0x65, 0x74, 0x28, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x22, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29,
- 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x23, 0x61, 0x72,
- 0x67, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x6e,
- 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69, 0x75, 0x70, 0x47, 0x65,
- 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x3d,
- 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74,
- 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x70, 0x70, 0x65, 0x6e,
- 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d,
- 0x29, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64,
- 0x0a, 0x20, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74,
- 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20,
- 0x61, 0x72, 0x67, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74,
- 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x42, 0x4f, 0x58, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20,
- 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x6d,
- 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
- 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73,
- 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a,
- 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52,
- 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x28, 0x65, 0x72, 0x72, 0x2c, 0x74, 0x72, 0x61, 0x63,
- 0x65, 0x62, 0x61, 0x63, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x72, 0x72, 0x20, 0x3d, 0x20, 0x65,
- 0x72, 0x72, 0x2e, 0x2e, 0x28, 0x74, 0x72, 0x61, 0x63, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6f,
- 0x72, 0x20, 0x22, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x72, 0x72, 0x6f,
- 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x29,
- 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f,
- 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x2e, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65,
- 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x74, 0x20,
- 0x3d, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22,
- 0x4f, 0x6b, 0x22, 0x2c, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x22, 0x36, 0x30, 0x22, 0x2c, 0x20,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65,
- 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x3d, 0x20, 0x6e, 0x69,
- 0x6c, 0x3b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x4c,
- 0x4f, 0x53, 0x45, 0x22, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20,
- 0x6d, 0x6c, 0x20, 0x3d, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6c, 0x69, 0x6e, 0x65, 0x7b, 0x65,
- 0x78, 0x70, 0x61, 0x6e, 0x64, 0x3d, 0x22, 0x59, 0x45, 0x53, 0x22, 0x2c, 0x20, 0x72, 0x65, 0x61,
- 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x3d, 0x22, 0x59, 0x45, 0x53, 0x22, 0x2c, 0x20, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x3d, 0x65, 0x72, 0x72, 0x2c, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x22, 0x33, 0x30,
- 0x30, 0x78, 0x31, 0x35, 0x30, 0x22, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61,
- 0x6c, 0x20, 0x76, 0x62, 0x20, 0x3d, 0x20, 0x76, 0x62, 0x6f, 0x78, 0x7b, 0x6d, 0x6c, 0x2c, 0x20,
- 0x62, 0x74, 0x3b, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x41,
- 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x22, 0x2c, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3d,
- 0x22, 0x31, 0x30, 0x78, 0x31, 0x30, 0x22, 0x2c, 0x20, 0x67, 0x61, 0x70, 0x3d, 0x22, 0x31, 0x30,
- 0x22, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x64, 0x67, 0x20,
- 0x3d, 0x20, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x7b, 0x76, 0x62, 0x3b, 0x20, 0x74, 0x69, 0x74,
- 0x6c, 0x65, 0x3d, 0x22, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
- 0x65, 0x22, 0x2c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x65, 0x73, 0x63, 0x3d, 0x62, 0x74,
- 0x2c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3d, 0x62, 0x74,
- 0x2c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x3d, 0x62, 0x74, 0x7d, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
- 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x3d, 0x20, 0x6d, 0x6c, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x64, 0x67, 0x3a, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52,
- 0x2c, 0x20, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x67,
- 0x3a, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65,
+ 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
+ 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x2c,
+ 0x76, 0x20, 0x69, 0x6e, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d,
+ 0x29, 0x20, 0x64, 0x6f, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70,
+ 0x65, 0x28, 0x69, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22,
+ 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x28, 0x76, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x2d, 0x2d, 0x20, 0x57, 0x65, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74,
+ 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6f, 0x74, 0x68,
+ 0x65, 0x72, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x73, 0x75, 0x63,
+ 0x68, 0x20, 0x61, 0x73, 0x20, 0x69, 0x75, 0x70, 0x74, 0x65, 0x78, 0x74, 0x29, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f,
+ 0x6e, 0x65, 0x6f, 0x73, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x20, 0x69,
+ 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x61, 0x77, 0x73, 0x65, 0x74, 0x28, 0x6f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x69, 0x2c, 0x20, 0x76, 0x29, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x74,
+ 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x65,
+ 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6d, 0x65, 0x74, 0x68, 0x6f,
+ 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x69,
+ 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20,
+ 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20,
+ 0x74, 0x68, 0x65, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x20, 0x6d, 0x75, 0x73,
+ 0x74, 0x20, 0x62, 0x65, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74,
+ 0x22, 0x0a, 0x2d, 0x2d, 0x20, 0x4d, 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
+ 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65,
+ 0x76, 0x65, 0x72, 0x79, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x69, 0x75, 0x70,
+ 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69,
+ 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x42, 0x6f, 0x78, 0x20, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x20, 0x28, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x73, 0x20, 0x66,
+ 0x72, 0x6f, 0x6d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x29, 0x20, 0x0a, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x69, 0x75, 0x70,
+ 0x2e, 0x42, 0x4f, 0x58, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e,
+ 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x0a, 0x7d,
+ 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42,
+ 0x4f, 0x58, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
+ 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a,
+ 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d,
+ 0x20, 0x72, 0x61, 0x77, 0x67, 0x65, 0x74, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20,
+ 0x22, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61,
+ 0x6c, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x23, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x0a, 0x20, 0x20, 0x66,
+ 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x6e, 0x20, 0x64, 0x6f, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61,
+ 0x73, 0x73, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20,
+ 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, 0x65,
+ 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x41, 0x70, 0x70,
+ 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61,
+ 0x6d, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
+ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45,
+ 0x54, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x65,
+ 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73,
+ 0x28, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f, 0x58, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77,
+ 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x6d, 0x70,
+ 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x3d, 0x20, 0x6e,
+ 0x69, 0x6c, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x28, 0x65,
+ 0x72, 0x72, 0x2c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x29, 0x0a, 0x20, 0x20,
+ 0x65, 0x72, 0x72, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x2e, 0x2e, 0x28, 0x74, 0x72, 0x61, 0x63,
+ 0x65, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6f, 0x72, 0x20, 0x22, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x69,
+ 0x66, 0x20, 0x28, 0x69, 0x75, 0x70, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x2e, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20,
+ 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x74, 0x20, 0x3d,
+ 0x20, 0x69, 0x75, 0x70, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x74, 0x69, 0x74, 0x6c,
+ 0x65, 0x3d, 0x22, 0x4f, 0x6b, 0x22, 0x2c, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x22, 0x36, 0x30,
+ 0x22, 0x2c, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x69, 0x75, 0x70, 0x2e, 0x65,
0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70,
- 0x75, 0x70, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65,
- 0x6e, 0x64, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
- 0x20, 0x7b, 0x2e, 0x2e, 0x2e, 0x7d, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x63, 0x61,
- 0x6c, 0x6c, 0x5f, 0x28, 0x66, 0x2c, 0x20, 0x65, 0x72, 0x72, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66,
- 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x28, 0x65,
- 0x72, 0x72, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x0a,
- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65,
- 0x74, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x28, 0x70, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x66,
- 0x29, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x74, 0x5b,
- 0x31, 0x5d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x45, 0x52,
- 0x52, 0x4f, 0x52, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x28, 0x72, 0x65, 0x74, 0x5b, 0x32,
- 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x0a, 0x20, 0x20,
- 0x65, 0x6c, 0x73, 0x65, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x72, 0x65, 0x74, 0x2c, 0x20, 0x31, 0x29, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63,
- 0x6b, 0x28, 0x72, 0x65, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64,
- 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x6f, 0x73, 0x74, 0x72,
- 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x72,
- 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x28, 0x6c, 0x6f, 0x61,
- 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a,
- 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x28,
- 0x66, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63,
- 0x74, 0x65, 0x64, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x28, 0x6c, 0x6f, 0x61, 0x64, 0x66, 0x69, 0x6c,
- 0x65, 0x28, 0x66, 0x29, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x52, 0x47, 0x42, 0x28, 0x72, 0x2c, 0x20, 0x67, 0x2c, 0x20, 0x62, 0x29,
- 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,
- 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x64, 0x20, 0x25, 0x64, 0x20, 0x25,
- 0x64, 0x22, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2a, 0x72, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2a, 0x67,
- 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2a, 0x62, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d,
- 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
- 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62,
- 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61,
- 0x6d, 0x65, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x2d,
- 0x2d, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f,
- 0x77, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67,
- 0x20, 0x74, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65,
- 0x71, 0x75, 0x69, 0x72, 0x65, 0x0a, 0x69, 0x66, 0x20, 0x5f, 0x47, 0x2e, 0x70, 0x61, 0x63, 0x6b,
- 0x61, 0x67, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x5f, 0x47, 0x2e, 0x70,
- 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, 0x22, 0x69,
- 0x75, 0x70, 0x6c, 0x75, 0x61, 0x22, 0x5d, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x0a, 0x20, 0x20,
- 0x20, 0x5f, 0x47, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64,
- 0x65, 0x64, 0x5b, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x35, 0x31, 0x22, 0x5d, 0x20, 0x3d,
- 0x20, 0x69, 0x75, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x5f, 0x4d, 0x20, 0x3d,
- 0x20, 0x69, 0x75, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x5f, 0x50, 0x41, 0x43,
- 0x4b, 0x41, 0x47, 0x45, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x22, 0x0a,
- 0x65, 0x6e, 0x64, 0x0a,
+ 0x75, 0x70, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x3b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
+ 0x20, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x22, 0x7d, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6c, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6c, 0x69, 0x6e, 0x65, 0x7b, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64,
+ 0x3d, 0x22, 0x59, 0x45, 0x53, 0x22, 0x2c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79,
+ 0x3d, 0x22, 0x59, 0x45, 0x53, 0x22, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x65, 0x72,
+ 0x72, 0x2c, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x22, 0x33, 0x30, 0x30, 0x78, 0x31, 0x35, 0x30,
+ 0x22, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x76, 0x62, 0x20,
+ 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x76, 0x62, 0x6f, 0x78, 0x7b, 0x6d, 0x6c, 0x2c, 0x20, 0x62,
+ 0x74, 0x3b, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x41, 0x43,
+ 0x45, 0x4e, 0x54, 0x45, 0x52, 0x22, 0x2c, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3d, 0x22,
+ 0x31, 0x30, 0x78, 0x31, 0x30, 0x22, 0x2c, 0x20, 0x67, 0x61, 0x70, 0x3d, 0x22, 0x31, 0x30, 0x22,
+ 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x64, 0x67, 0x20, 0x3d,
+ 0x20, 0x69, 0x75, 0x70, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x7b, 0x76, 0x62, 0x3b, 0x20,
+ 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x22, 0x2c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x65, 0x73, 0x63,
+ 0x3d, 0x62, 0x74, 0x2c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x65, 0x6e, 0x74, 0x65, 0x72,
+ 0x3d, 0x62, 0x74, 0x2c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x3d, 0x62,
+ 0x74, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x3d,
+ 0x20, 0x6d, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x67, 0x3a, 0x70, 0x6f, 0x70, 0x75, 0x70,
+ 0x28, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x2c, 0x20, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x29,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x67, 0x3a, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28,
+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f,
+ 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x3d, 0x20,
+ 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x20, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
+ 0x61, 0x72, 0x67, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x63,
+ 0x61, 0x6c, 0x6c, 0x5f, 0x28, 0x66, 0x2c, 0x20, 0x65, 0x72, 0x72, 0x29, 0x0a, 0x20, 0x20, 0x69,
+ 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x4d, 0x45, 0x53, 0x53,
+ 0x41, 0x47, 0x45, 0x28, 0x65, 0x72, 0x72, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
+ 0x75, 0x72, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63,
+ 0x61, 0x6c, 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x70, 0x61, 0x63,
+ 0x6b, 0x28, 0x70, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x66, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66,
+ 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x74, 0x5b, 0x31, 0x5d, 0x20, 0x74, 0x68, 0x65, 0x6e,
+ 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52,
+ 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x28, 0x72, 0x65, 0x74, 0x5b, 0x32, 0x5d, 0x29, 0x0a,
+ 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73,
+ 0x65, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x72, 0x65,
+ 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x72, 0x65, 0x74, 0x2c, 0x20, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x28, 0x72,
+ 0x65, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66,
+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x64, 0x6f, 0x73, 0x74,
+ 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x63, 0x61, 0x6c, 0x6c,
+ 0x5f, 0x28, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x29,
+ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75,
+ 0x70, 0x2e, 0x64, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x66, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75,
+ 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64,
+ 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x28, 0x6c, 0x6f, 0x61, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x66,
+ 0x29, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x47, 0x42, 0x28, 0x72, 0x2c, 0x20, 0x67, 0x2c, 0x20, 0x62,
+ 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e,
+ 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x64, 0x20, 0x25, 0x64, 0x20,
+ 0x25, 0x64, 0x22, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2a, 0x72, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2a,
+ 0x67, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2a, 0x62, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d,
+ 0x2d, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f,
+ 0x77, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20,
+ 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73,
+ 0x61, 0x6d, 0x65, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a,
+ 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c,
+ 0x6f, 0x77, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x69, 0x6e,
+ 0x67, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72,
+ 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x0a, 0x69, 0x66, 0x20, 0x5f, 0x47, 0x2e, 0x70, 0x61, 0x63,
+ 0x6b, 0x61, 0x67, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x5f, 0x47, 0x2e,
+ 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, 0x22,
+ 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x22, 0x5d, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x0a, 0x20,
+ 0x20, 0x20, 0x5f, 0x47, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61,
+ 0x64, 0x65, 0x64, 0x5b, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x35, 0x31, 0x22, 0x5d, 0x20,
+ 0x3d, 0x20, 0x69, 0x75, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x5f, 0x4d, 0x20,
+ 0x3d, 0x20, 0x69, 0x75, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x5f, 0x50, 0x41,
+ 0x43, 0x4b, 0x41, 0x47, 0x45, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x22,
+ 0x0a, 0x65, 0x6e, 0x64, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "iuplua.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/label.clua b/iup/srclua5/clua/label.clua
index a0a24d9..5528af9 100644
--- a/iup/srclua5/clua/label.clua
+++ b/iup/srclua5/clua/label.clua
@@ -13,18 +13,19 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e,
0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
- 0x53, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d,
- 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
- 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65,
- 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20,
- 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x28, 0x61,
- 0x72, 0x67, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69,
- 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74,
- 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61,
- 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69,
- 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49,
+ 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x3d, 0x20, 0x22, 0x53, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61,
+ 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45,
+ 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61,
+ 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x74,
+ 0x69, 0x74, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52,
+ 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74,
+ 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73,
+ 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67,
+ 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "label.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/list.clua b/iup/srclua5/clua/list.clua
index d064bf9..468d296 100644
--- a/iup/srclua5/clua/list.clua
+++ b/iup/srclua5/clua/list.clua
@@ -13,25 +13,26 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
- 0x73, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x75, 0x6c, 0x74,
- 0x69, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22,
- 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d,
- 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x6f, 0x70,
- 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x64, 0x62, 0x6c, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x62, 0x20,
- 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x20, 0x0a,
- 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61,
- 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
- 0x72, 0x6e, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20,
- 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64,
- 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74,
- 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70,
- 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47,
+ 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
+ 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
+ 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x3d, 0x20, 0x22, 0x73, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d,
+ 0x20, 0x22, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x5f,
+ 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x62, 0x6c, 0x63, 0x6c, 0x69, 0x63, 0x6b,
+ 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x7d,
+ 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74,
+ 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+ 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20,
+ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4c, 0x69, 0x73,
+ 0x74, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e,
+ 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63,
+ 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64,
+ 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "list.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/matrix.clua b/iup/srclua5/clua/matrix.clua
index 02b4643..955f76f 100644
--- a/iup/srclua5/clua/matrix.clua
+++ b/iup/srclua5/clua/matrix.clua
@@ -13,72 +13,73 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c,
0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20,
0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47,
- 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
- 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
- 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e,
- 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f,
- 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x6e, 0x6e, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63,
- 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72,
- 0x61, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e,
+ 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c,
+ 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x73, 0x22,
+ 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d,
+ 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x6c, 0x65,
+ 0x61, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a,
+ 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x69,
+ 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x63, 0x68, 0x65,
+ 0x63, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e,
+ 0x6e, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20,
+ 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62,
+ 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6d, 0x61,
+ 0x74, 0x72, 0x69, 0x78, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f,
+ 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x69, 0x73, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20,
+ 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x74, 0x65,
+ 0x72, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63,
+ 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f,
+ 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x74, 0x6f, 0x70,
+ 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x66, 0x67, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e,
0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69,
0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65,
0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78,
0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d,
- 0x20, 0x22, 0x6e, 0x6e, 0x69, 0x73, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65,
- 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e,
- 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x74, 0x65,
- 0x6d, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20,
- 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d,
- 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x74, 0x6f, 0x70, 0x5f, 0x63, 0x62, 0x20,
- 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x67, 0x63, 0x6f,
- 0x6c, 0x6f, 0x72, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x20,
- 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63,
- 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x66, 0x75, 0x6e, 0x63,
- 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x67, 0x63,
- 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x7b, 0x22,
- 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x7d, 0x2c,
- 0x20, 0x2d, 0x2d, 0x20, 0x72, 0x65, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
- 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x7b, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x72, 0x65, 0x74,
- 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x7d, 0x2c, 0x20, 0x2d, 0x2d, 0x20, 0x72, 0x65, 0x74, 0x20,
- 0x69, 0x73, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x62,
- 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61,
- 0x72, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20,
- 0x22, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e,
- 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74,
- 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61,
- 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75,
- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c,
- 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
- 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x63, 0x65, 0x6c, 0x6c, 0x28, 0x68, 0x61,
- 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6c, 0x2c, 0x20, 0x63, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x29,
- 0x0a, 0x20, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28,
+ 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e,
+ 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x5f, 0x63, 0x62, 0x20,
+ 0x3d, 0x20, 0x7b, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x22,
+ 0x73, 0x22, 0x7d, 0x2c, 0x20, 0x2d, 0x2d, 0x20, 0x72, 0x65, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72,
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x7b, 0x22, 0x6e, 0x6e, 0x22, 0x2c,
+ 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x7d, 0x2c, 0x20, 0x2d, 0x2d, 0x20,
+ 0x72, 0x65, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x79,
+ 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x65, 0x64, 0x69,
+ 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22,
+ 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63,
+ 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a,
+ 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70,
+ 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x65,
+ 0x78, 0x74, 0x72, 0x61, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x0a, 0x7d,
+ 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72,
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78,
+ 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65,
+ 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72,
+ 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x63, 0x65, 0x6c, 0x6c, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x2c, 0x20, 0x6c, 0x2c, 0x20, 0x63, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x29, 0x0a, 0x20, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28,
0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x6c, 0x2e, 0x2e, 0x22, 0x3a, 0x22, 0x2e, 0x2e, 0x63,
0x2c, 0x76, 0x61, 0x6c, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x63, 0x65, 0x6c, 0x6c,
0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6c, 0x2c, 0x20, 0x63, 0x29, 0x0a, 0x20,
- 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69,
- 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x6c, 0x2e, 0x2e, 0x22,
- 0x3a, 0x22, 0x2e, 0x2e, 0x63, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52,
- 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74,
- 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28,
- 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65,
- 0x74, 0x22, 0x29, 0x0a,
+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x41,
+ 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c,
+ 0x6c, 0x2e, 0x2e, 0x22, 0x3a, 0x22, 0x2e, 0x2e, 0x63, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67,
+ 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74,
+ 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70,
+ 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "matrix.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/menu.clua b/iup/srclua5/clua/menu.clua
index 9f82efa..6d579a8 100644
--- a/iup/srclua5/clua/menu.clua
+++ b/iup/srclua5/clua/menu.clua
@@ -13,74 +13,78 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6d, 0x65, 0x6e, 0x75, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x42, 0x4f, 0x58, 0x2c, 0x0a, 0x20, 0x20, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x62,
- 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75,
- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75,
- 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a,
- 0x20, 0x20, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20,
- 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28,
- 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20,
- 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65,
- 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c,
- 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67,
- 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x23, 0x61,
- 0x72, 0x67, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x6e, 0x20, 0x64,
- 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x61, 0x72,
- 0x67, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22,
- 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65,
- 0x6d, 0x61, 0x72, 0x67, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x66, 0x6f, 0x72, 0x20, 0x75, 0x2c, 0x76, 0x20, 0x69, 0x6e, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73,
- 0x28, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x75, 0x29, 0x20, 0x7e,
- 0x3d, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72,
- 0x67, 0x5b, 0x75, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x61, 0x72, 0x67,
- 0x5b, 0x69, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69,
- 0x6e, 0x67, 0x22, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x74, 0x79, 0x70, 0x65, 0x28, 0x61, 0x72,
- 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x75, 0x6e,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x61,
- 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f, 0x58, 0x2c,
+ 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20,
+ 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20,
+ 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x63, 0x6c, 0x6f, 0x73,
+ 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d,
+ 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
+ 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c,
+ 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x65, 0x6e,
+ 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c,
+ 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20,
+ 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x41, 0x70, 0x70, 0x65,
+ 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29,
+ 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+ 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
+ 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a,
+ 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x23, 0x70, 0x61, 0x72,
+ 0x61, 0x6d, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x6e, 0x20, 0x64,
+ 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61,
+ 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c,
+ 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x20, 0x3d, 0x20, 0x7b,
+ 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x2c, 0x76, 0x20,
+ 0x69, 0x6e, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69,
+ 0x5d, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66,
+ 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x75, 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x22, 0x6e, 0x75, 0x6d,
+ 0x62, 0x65, 0x72, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x5b, 0x75, 0x5d, 0x20, 0x3d,
+ 0x20, 0x76, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69,
+ 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x5b,
+ 0x31, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20,
+ 0x61, 0x6e, 0x64, 0x20, 0x28, 0x74, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b,
+ 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61, 0x72,
+ 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74,
0x72, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x2e, 0x74, 0x69, 0x74, 0x6c,
- 0x65, 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x31, 0x5d, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x2e, 0x61, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x20,
- 0x3d, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x29, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70,
- 0x65, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20,
- 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x79, 0x70,
- 0x65, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20,
- 0x22, 0x75, 0x73, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x5b,
- 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x0a, 0x20,
+ 0x65, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x5b, 0x31, 0x5d, 0x0a,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x2e,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69,
+ 0x5d, 0x5b, 0x32, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x72,
+ 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x69, 0x74, 0x65, 0x6d,
+ 0x28, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61, 0x72, 0x61,
+ 0x6d, 0x5b, 0x69, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72,
+ 0x69, 0x6e, 0x67, 0x22, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61,
+ 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x75,
+ 0x73, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d,
+ 0x20, 0x3d, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x2e, 0x74,
- 0x69, 0x74, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x31, 0x5d,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x20,
- 0x3d, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x6e, 0x75, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72,
- 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65,
- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x65, 0x6e, 0x75, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a,
- 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x73,
- 0x68, 0x6f, 0x77, 0x78, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c,
- 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x68, 0x6f,
- 0x77, 0x58, 0x59, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79,
- 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
- 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e,
- 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x65,
- 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e,
- 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69,
- 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65,
- 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75,
- 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x69, 0x74, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x5b,
+ 0x31, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d,
+ 0x5b, 0x69, 0x5d, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x6e,
+ 0x75, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65,
+ 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x4d, 0x65, 0x6e, 0x75, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x78, 0x79,
+ 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20,
+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x68, 0x6f, 0x77,
+ 0x58, 0x59, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29,
+ 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+ 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29,
+ 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
+ 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c,
+ 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "menu.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/messagedlg.clua b/iup/srclua5/clua/messagedlg.clua
index f51bcf9..15d6653 100644
--- a/iup/srclua5/clua/messagedlg.clua
+++ b/iup/srclua5/clua/messagedlg.clua
@@ -14,27 +14,28 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20,
0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73,
0x61, 0x67, 0x65, 0x64, 0x6c, 0x67, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e,
- 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72,
- 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66,
- 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x4d, 0x65, 0x73, 0x73, 0x61,
- 0x67, 0x65, 0x44, 0x6c, 0x67, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61,
- 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28,
- 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20,
- 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79,
- 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
- 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e,
- 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x65,
- 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e,
- 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c,
- 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63,
- 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65,
- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x6c, 0x67, 0x28,
- 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67,
- 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c,
- 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74,
- 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22,
- 0x29, 0x0a, 0x0a,
+ 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
+ 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c,
+ 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x6c, 0x67, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61,
+ 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a,
+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f,
+ 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79,
+ 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66,
+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73,
+ 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72,
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f,
+ 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66,
+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
+ 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x6c,
+ 0x67, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e,
+ 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63,
+ 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64,
+ 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "messagedlg.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/multiline.clua b/iup/srclua5/clua/multiline.clua
index efb174c..c682a49 100644
--- a/iup/srclua5/clua/multiline.clua
+++ b/iup/srclua5/clua/multiline.clua
@@ -14,20 +14,21 @@ static const unsigned char B1[] = {
0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b,
0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6d, 0x75, 0x6c, 0x74, 0x69,
0x6c, 0x69, 0x6e, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20,
- 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61,
- 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x20, 0x0a, 0x20,
- 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d,
- 0x20, 0x22, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4c, 0x69, 0x6e, 0x65, 0x22, 0x2c, 0x0a, 0x7d, 0x20,
- 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c,
- 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
- 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4c, 0x69, 0x6e, 0x65, 0x28, 0x29, 0x0a,
- 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73,
- 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a,
- 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c,
- 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a,
+ 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22,
+ 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61,
+ 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4c, 0x69, 0x6e, 0x65, 0x22,
+ 0x2c, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+ 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
+ 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a,
+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x75,
+ 0x6c, 0x74, 0x69, 0x4c, 0x69, 0x6e, 0x65, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20,
+ 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69,
+ 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53,
+ 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69,
+ 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "multiline.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/normalizer.clua b/iup/srclua5/clua/normalizer.clua
index d506035..b1bb2f0 100644
--- a/iup/srclua5/clua/normalizer.clua
+++ b/iup/srclua5/clua/normalizer.clua
@@ -14,33 +14,35 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d,
0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6f, 0x72,
0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65,
- 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d,
- 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
- 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6f, 0x62,
- 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63,
- 0x61, 0x6c, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x72, 0x61, 0x77, 0x67,
- 0x65, 0x74, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x22, 0x68, 0x61, 0x6e, 0x64,
- 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x20, 0x3d,
- 0x20, 0x23, 0x61, 0x72, 0x67, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20,
- 0x31, 0x2c, 0x20, 0x6e, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69,
- 0x75, 0x70, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x69,
- 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c,
- 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c,
- 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e,
- 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54,
- 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a,
- 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61,
- 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
- 0x72, 0x6e, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x28, 0x29, 0x0a,
- 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
- 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70,
- 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22,
- 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c,
+ 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20,
+ 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+ 0x74, 0x72, 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+ 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29,
+ 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20,
+ 0x3d, 0x20, 0x72, 0x61, 0x77, 0x67, 0x65, 0x74, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c,
+ 0x20, 0x22, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63,
+ 0x61, 0x6c, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x23, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x0a, 0x20, 0x20,
+ 0x66, 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x6e, 0x20, 0x64, 0x6f, 0x0a,
+ 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c,
+ 0x61, 0x73, 0x73, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x3d, 0x3d,
+ 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68,
+ 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x2e, 0x61, 0x64, 0x64, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x3d, 0x20, 0x70, 0x61,
+ 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
+ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45,
+ 0x54, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x65,
+ 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72,
+ 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20,
+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4e, 0x6f, 0x72, 0x6d,
+ 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75,
+ 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74,
+ 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c,
+ 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77,
+ 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "normalizer.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/olecontrol.clua b/iup/srclua5/clua/olecontrol.clua
index aebe246..883b20b 100644
--- a/iup/srclua5/clua/olecontrol.clua
+++ b/iup/srclua5/clua/olecontrol.clua
@@ -14,66 +14,65 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20,
0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6f, 0x6c, 0x65, 0x63,
0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e,
- 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72,
- 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20,
- 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x4f, 0x6c, 0x65, 0x43,
- 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62,
- 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c,
- 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x6f, 0x6c, 0x65, 0x2e, 0x68, 0x22,
- 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x20,
- 0x5b, 0x5b, 0x20, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x75, 0x70, 0x6f, 0x6c, 0x65, 0x6c, 0x75,
- 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65,
- 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x75, 0x70,
- 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x74,
- 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x28, 0x4c, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x49, 0x75,
- 0x70, 0x4f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x28,
- 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61,
- 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6e, 0x76, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20,
- 0x20, 0x69, 0x75, 0x70, 0x6f, 0x6c, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x75,
- 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70,
- 0x6c, 0x75, 0x61, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x45, 0x6e, 0x76, 0x28, 0x4c, 0x29,
- 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a,
- 0x0a, 0x2f, 0x2a, 0x20, 0x6f, 0x62, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74,
- 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x69, 0x75,
- 0x70, 0x6c, 0x75, 0x61, 0x6f, 0x6c, 0x65, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x69, 0x6e, 0x74, 0x20,
- 0x6c, 0x75, 0x61, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x6f, 0x6c,
- 0x65, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x20, 0x4c, 0x29, 0x0a,
- 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x6f, 0x6c,
- 0x65, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x7d, 0x0a,
- 0x0a, 0x2f, 0x2a, 0x20, 0x6f, 0x62, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74,
- 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x69, 0x75,
- 0x70, 0x6c, 0x75, 0x61, 0x6f, 0x6c, 0x65, 0x35, 0x31, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x69, 0x6e,
- 0x74, 0x20, 0x6c, 0x75, 0x61, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61,
- 0x6f, 0x6c, 0x65, 0x35, 0x31, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a,
- 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69,
- 0x75, 0x70, 0x6f, 0x6c, 0x65, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29,
- 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45,
- 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72,
- 0x67, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4f, 0x6c, 0x65, 0x43,
- 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x65,
- 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72,
- 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x75, 0x61, 0x43, 0x4f, 0x4d, 0x28, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20, 0x6c,
- 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2c,
- 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73,
- 0x73, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x72,
- 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6f, 0x66,
- 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x0a, 0x20, 0x20, 0x69,
- 0x66, 0x20, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x70, 0x75, 0x6e, 0x6b, 0x20, 0x3d, 0x20, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x69, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x70, 0x75, 0x6e, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d,
- 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x4c, 0x75, 0x61, 0x43, 0x4f, 0x4d, 0x28, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x2e, 0x49, 0x6d,
- 0x70, 0x6f, 0x72, 0x74, 0x49, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x28, 0x70, 0x75, 0x6e,
- 0x6b, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52,
- 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74,
- 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28,
- 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65,
- 0x74, 0x22, 0x29, 0x0a,
+ 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
+ 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22,
+ 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22,
+ 0x4f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63,
+ 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20,
+ 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x6f, 0x6c,
+ 0x65, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x6f, 0x64,
+ 0x65, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x75, 0x70, 0x6f,
+ 0x6c, 0x65, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53,
+ 0x74, 0x61, 0x74, 0x65, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20,
+ 0x28, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x61, 0x6c, 0x6c,
+ 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x28, 0x4c, 0x29, 0x29, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x49, 0x75, 0x70, 0x4f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f,
+ 0x70, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x69, 0x75,
+ 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x76, 0x28, 0x4c, 0x29, 0x3b,
+ 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6f, 0x6c, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c,
+ 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72,
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x6f,
+ 0x62, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x6f,
+ 0x6c, 0x65, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x6c, 0x75, 0x61, 0x6f, 0x70,
+ 0x65, 0x6e, 0x5f, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x6f, 0x6c, 0x65, 0x28, 0x6c, 0x75, 0x61,
+ 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x72,
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x6f, 0x6c, 0x65, 0x6c, 0x75, 0x61, 0x5f,
+ 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x6f,
+ 0x62, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65,
+ 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x6f,
+ 0x6c, 0x65, 0x35, 0x31, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x6c, 0x75, 0x61,
+ 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x6f, 0x6c, 0x65, 0x35, 0x31,
+ 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b,
+ 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x6f, 0x6c, 0x65,
+ 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a,
+ 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+ 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
+ 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a,
+ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4f, 0x6c, 0x65,
+ 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d,
+ 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+ 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x75, 0x61, 0x43, 0x4f,
+ 0x4d, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x69,
+ 0x66, 0x20, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x6f, 0x61, 0x64,
+ 0x65, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x63,
+ 0x63, 0x65, 0x73, 0x73, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x64,
+ 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x2d, 0x2d,
+ 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x0a,
+ 0x20, 0x20, 0x69, 0x66, 0x20, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x6e,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x70, 0x75, 0x6e, 0x6b, 0x20,
+ 0x3d, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x69, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77,
+ 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x70, 0x75, 0x6e, 0x6b, 0x20, 0x74, 0x68,
+ 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x2e, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x4c, 0x75, 0x61, 0x43, 0x4f, 0x4d, 0x28, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d,
+ 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x28,
+ 0x70, 0x75, 0x6e, 0x6b, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65,
+ 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43,
+ 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20,
+ 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "olecontrol.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/pplot.clua b/iup/srclua5/clua/pplot.clua
index 54d807d..77208ad 100644
--- a/iup/srclua5/clua/pplot.clua
+++ b/iup/srclua5/clua/pplot.clua
@@ -13,49 +13,50 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e,
0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x70, 0x70, 0x6c, 0x6f, 0x74, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20,
- 0x22, 0x50, 0x50, 0x6c, 0x6f, 0x74, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62,
- 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65,
- 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x66, 0x66, 0x6e, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x62, 0x65, 0x67, 0x69, 0x6e,
- 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65,
- 0x6c, 0x65, 0x63, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x65, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x62, 0x20,
- 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65,
- 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20,
- 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x70,
- 0x70, 0x6c, 0x6f, 0x74, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x73, 0x74, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x62,
- 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65,
- 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20,
- 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x70,
- 0x70, 0x6c, 0x6f, 0x74, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22,
- 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b,
- 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f,
- 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20,
- 0x70, 0x70, 0x6c, 0x6f, 0x74, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
- 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f,
- 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69,
- 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e,
- 0x6e, 0x66, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,
- 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x62, 0x20,
- 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63,
- 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x5f, 0x70, 0x70, 0x6c, 0x6f,
- 0x74, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x66, 0x75, 0x6e,
- 0x63, 0x73, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45,
- 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72,
- 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x50, 0x50, 0x6c,
- 0x6f, 0x74, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65,
- 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57,
- 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53,
- 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69,
- 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49,
+ 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d,
+ 0x65, 0x20, 0x3d, 0x20, 0x22, 0x50, 0x50, 0x6c, 0x6f, 0x74, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63,
+ 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x66,
+ 0x66, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x62,
+ 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d,
+ 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x65, 0x64, 0x72, 0x61, 0x77,
+ 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20,
+ 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20,
+ 0x62, 0x79, 0x20, 0x70, 0x70, 0x6c, 0x6f, 0x74, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f,
+ 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x73, 0x74, 0x64, 0x72, 0x61,
+ 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20,
+ 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20,
+ 0x62, 0x79, 0x20, 0x70, 0x70, 0x6c, 0x6f, 0x74, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f,
+ 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x62,
+ 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d,
+ 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64,
+ 0x20, 0x62, 0x79, 0x20, 0x70, 0x70, 0x6c, 0x6f, 0x74, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d,
+ 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x62, 0x65,
+ 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x65, 0x64, 0x69, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22,
+ 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x63, 0x62, 0x20,
+ 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x66, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x65, 0x6e, 0x64,
+ 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20,
+ 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x5f,
+ 0x70, 0x70, 0x6c, 0x6f, 0x74, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72,
+ 0x61, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66,
+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
+ 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, 0x50, 0x6c, 0x6f, 0x74, 0x28, 0x70, 0x61, 0x72,
+ 0x61, 0x6d, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67,
+ 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74,
+ 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70,
+ 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "pplot.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/progressbar.clua b/iup/srclua5/clua/progressbar.clua
index ec3c3ff..2cbbd76 100644
--- a/iup/srclua5/clua/progressbar.clua
+++ b/iup/srclua5/clua/progressbar.clua
@@ -14,19 +14,20 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d,
0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x70, 0x72, 0x6f,
0x67, 0x72, 0x65, 0x73, 0x73, 0x62, 0x61, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x50, 0x72, 0x6f,
- 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c,
- 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66,
- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73,
- 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
- 0x20, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x28, 0x29, 0x0a, 0x65,
- 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
- 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69,
- 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c,
- 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54,
+ 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20,
+ 0x22, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x22, 0x2c, 0x0a, 0x20,
+ 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d,
+ 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c,
+ 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63,
+ 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20,
+ 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72,
+ 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20,
+ 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64,
+ 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65,
+ 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75,
+ 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "progressbar.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/radio.clua b/iup/srclua5/clua/radio.clua
index e0f0211..d781c3d 100644
--- a/iup/srclua5/clua/radio.clua
+++ b/iup/srclua5/clua/radio.clua
@@ -13,41 +13,42 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e,
0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
- 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d,
- 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x69, 0x6c,
- 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x29, 0x0a, 0x20,
- 0x20, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d, 0x20, 0x42, 0x4f, 0x58, 0x20, 0x74, 0x68, 0x65,
- 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x20,
- 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20,
- 0x6f, 0x62, 0x6a, 0x5b, 0x69, 0x5d, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x69,
- 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x28, 0x6f, 0x62, 0x6a, 0x5b,
- 0x69, 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x20, 0x3d, 0x20,
- 0x69, 0x2b, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x2e, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d, 0x20, 0x49, 0x55, 0x50, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x20,
- 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
- 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61,
+ 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49,
+ 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x3d, 0x20, 0x22, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61,
+ 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x69,
+ 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x29, 0x0a,
+ 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f,
+ 0x58, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63,
+ 0x61, 0x6c, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77,
+ 0x68, 0x69, 0x6c, 0x65, 0x20, 0x6f, 0x62, 0x6a, 0x5b, 0x69, 0x5d, 0x20, 0x64, 0x6f, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x43,
+ 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x28, 0x6f, 0x62,
+ 0x6a, 0x5b, 0x69, 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x20,
+ 0x3d, 0x20, 0x69, 0x2b, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a,
+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x2e, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x46, 0x52, 0x41,
+ 0x4d, 0x45, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x74,
+ 0x72, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61,
0x6d, 0x65, 0x73, 0x20, 0x28, 0x6f, 0x62, 0x6a, 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x20,
- 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x68, 0x61, 0x6e,
- 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x29,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65,
- 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72,
- 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28,
- 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x63,
- 0x74, 0x72, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72,
- 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, 0x29, 0x0a,
- 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x28,
- 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a,
- 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65,
- 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c,
- 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77,
- 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x6f, 0x62,
+ 0x6a, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64,
+ 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+ 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
+ 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a,
+ 0x20, 0x20, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64,
+ 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31,
+ 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, 0x29,
+ 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67,
+ 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c,
+ 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63,
+ 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74,
+ 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "radio.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/sbox.clua b/iup/srclua5/clua/sbox.clua
index 85daca5..baba878 100644
--- a/iup/srclua5/clua/sbox.clua
+++ b/iup/srclua5/clua/sbox.clua
@@ -11,18 +11,19 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
- 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x09, 0x6e, 0x69, 0x63,
- 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x62, 0x6f, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x09,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x22, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a,
- 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c,
- 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63,
- 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65,
- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x62, 0x6f, 0x78, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d,
- 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
- 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69,
- 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c,
+ 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
+ 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x62, 0x6f, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47,
+ 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
+ 0x20, 0x22, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
+ 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65,
+ 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61,
+ 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x53, 0x62, 0x6f, 0x78, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, 0x29, 0x0a,
+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
+ 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75,
+ 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c,
0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
diff --git a/iup/srclua5/clua/separator.clua b/iup/srclua5/clua/separator.clua
index d2b0e74..5b5ab83 100644
--- a/iup/srclua5/clua/separator.clua
+++ b/iup/srclua5/clua/separator.clua
@@ -14,17 +14,18 @@ static const unsigned char B1[] = {
0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b,
0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x65, 0x70, 0x61, 0x72,
0x61, 0x74, 0x6f, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20,
- 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c,
- 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75,
- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c,
- 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
- 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a,
- 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67,
- 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43,
- 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20,
- 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20,
+ 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d,
+ 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72,
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61,
+ 0x74, 0x6f, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52,
+ 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74,
+ 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73,
+ 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67,
+ 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "separator.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/spin.clua b/iup/srclua5/clua/spin.clua
index 95ba6ed..5df74ee 100644
--- a/iup/srclua5/clua/spin.clua
+++ b/iup/srclua5/clua/spin.clua
@@ -13,19 +13,20 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45,
- 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72,
- 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x70, 0x69,
- 0x6e, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e,
- 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69,
- 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65,
- 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75,
- 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47,
+ 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
+ 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20,
+ 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20,
+ 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66,
+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73,
+ 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
+ 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x70, 0x69, 0x6e, 0x28, 0x70, 0x61, 0x72, 0x61,
+ 0x6d, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65,
+ 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43,
+ 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20,
+ 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "spin.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/spinbox.clua b/iup/srclua5/clua/spinbox.clua
index cfe86dd..13f7a02 100644
--- a/iup/srclua5/clua/spinbox.clua
+++ b/iup/srclua5/clua/spinbox.clua
@@ -13,20 +13,20 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a,
0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20,
0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x62, 0x6f, 0x78,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49,
- 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x20, 0x3d, 0x20, 0x22, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61,
- 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x69, 0x6e, 0x5f,
- 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d,
- 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c,
- 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
- 0x75, 0x72, 0x6e, 0x20, 0x53, 0x70, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x28, 0x61, 0x72, 0x67, 0x5b,
- 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69,
- 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29,
- 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72,
- 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29,
- 0x0a,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75,
+ 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61,
+ 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73,
+ 0x70, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20,
+ 0x7d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+ 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
+ 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a,
+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x70,
+ 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, 0x29, 0x0a,
+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
+ 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75,
+ 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c,
+ 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "spinbox.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/split.clua b/iup/srclua5/clua/split.clua
new file mode 100644
index 0000000..76bd186
--- /dev/null
+++ b/iup/srclua5/clua/split.clua
@@ -0,0 +1,32 @@
+{
+static const unsigned char B1[] = {
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d,
+ 0x2d, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x0a, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f,
+ 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e,
+ 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x22, 0x2c, 0x0a, 0x20,
+ 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49,
+ 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x3d, 0x20, 0x22, 0x49, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62,
+ 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70,
+ 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b,
+ 0x31, 0x5d, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x32, 0x5d, 0x29, 0x0a, 0x65, 0x6e,
+ 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57,
+ 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e,
+ 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22,
+ 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+};
+
+ if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "split.lua") == 0) lua_call(L, 0, 0);
+}
diff --git a/iup/srclua5/clua/submenu.clua b/iup/srclua5/clua/submenu.clua
index 975e4d7..11b4b2d 100644
--- a/iup/srclua5/clua/submenu.clua
+++ b/iup/srclua5/clua/submenu.clua
@@ -13,25 +13,26 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a,
0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20,
0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x6e, 0x75,
- 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49,
- 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x20, 0x3d, 0x20, 0x22, 0x53, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62,
- 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x70,
- 0x65, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75,
+ 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x53, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63,
+ 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x2d, 0x2d, 0x20, 0x20,
+ 0x20, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79,
+ 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65,
+ 0x6e, 0x75, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c,
0x20, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67,
0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d,
- 0x65, 0x6e, 0x75, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x63, 0x6c,
- 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d,
- 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
- 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x0a,
- 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d,
- 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a,
- 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x75, 0x62, 0x6d, 0x65, 0x6e, 0x75,
- 0x28, 0x61, 0x72, 0x67, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x5b,
- 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52,
- 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74,
- 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28,
+ 0x65, 0x6e, 0x75, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70,
+ 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x65, 0x6e, 0x75, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d,
+ 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d,
+ 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65,
+ 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72,
+ 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28,
0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65,
0x74, 0x22, 0x29, 0x0a,
};
diff --git a/iup/srclua5/clua/tabs.clua b/iup/srclua5/clua/tabs.clua
index e22e024..114ce8b 100644
--- a/iup/srclua5/clua/tabs.clua
+++ b/iup/srclua5/clua/tabs.clua
@@ -13,35 +13,36 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x74, 0x61, 0x62, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x76, 0x22,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x62, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x63,
- 0x62, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20,
- 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x54, 0x61, 0x62,
- 0x73, 0x76, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6e,
- 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e,
- 0x74, 0x20, 0x54, 0x61, 0x62, 0x73, 0x76, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74,
- 0x65, 0x20, 0x2a, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c,
- 0x65, 0x20, 0x2a, 0x2a, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x6c,
- 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f,
- 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x49,
- 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x68, 0x20, 0x3d, 0x20, 0x49, 0x75, 0x70, 0x54,
- 0x61, 0x62, 0x73, 0x76, 0x28, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69,
- 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x28,
- 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f,
- 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x77, 0x28,
- 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x72, 0x65, 0x65, 0x28, 0x68, 0x6c,
- 0x69, 0x73, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31,
- 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x5d, 0x5d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61,
- 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x54, 0x61, 0x62,
- 0x73, 0x76, 0x28, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70,
- 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63,
- 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73,
- 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67,
- 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47,
+ 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
+ 0x20, 0x22, 0x76, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
+ 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x62, 0x63, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20,
+ 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20,
+ 0x22, 0x54, 0x61, 0x62, 0x73, 0x76, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69,
+ 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x54, 0x61, 0x62, 0x73, 0x76, 0x28, 0x6c, 0x75, 0x61, 0x5f,
+ 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x49, 0x68,
+ 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x2a, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x3d, 0x20,
+ 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x68, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b,
+ 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x68, 0x20, 0x3d, 0x20,
+ 0x49, 0x75, 0x70, 0x54, 0x61, 0x62, 0x73, 0x76, 0x28, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x29, 0x3b,
+ 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70,
+ 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f,
+ 0x72, 0x61, 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x72, 0x65,
+ 0x65, 0x28, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
+ 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x5d, 0x5d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a,
+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75,
+ 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x61, 0x62, 0x73, 0x76, 0x28, 0x70, 0x61, 0x72,
+ 0x61, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67,
+ 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c,
+ 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63,
+ 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74,
+ 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "tabs.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/text.clua b/iup/srclua5/clua/text.clua
index cd7f932..f23f7fa 100644
--- a/iup/srclua5/clua/text.clua
+++ b/iup/srclua5/clua/text.clua
@@ -13,24 +13,24 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22,
- 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20,
- 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
- 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x61, 0x72, 0x65, 0x74, 0x5f, 0x63,
- 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x20,
- 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62,
- 0x79, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x6e,
- 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20,
- 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x54,
- 0x65, 0x78, 0x74, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65,
- 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72,
- 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63,
- 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74,
- 0x22, 0x29, 0x0a,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47,
+ 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
+ 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
+ 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x61, 0x72,
+ 0x65, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x0a,
+ 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64,
+ 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x75, 0x73,
+ 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72,
+ 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a,
+ 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65,
+ 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x28, 0x29, 0x0a,
+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
+ 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75,
+ 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c,
+ 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "text.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/timer.clua b/iup/srclua5/clua/timer.clua
index c1cdbd2..6842674 100644
--- a/iup/srclua5/clua/timer.clua
+++ b/iup/srclua5/clua/timer.clua
@@ -14,18 +14,19 @@ static const unsigned char B1[] = {
0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e,
0x69, 0x63, 0x6b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x74, 0x69, 0x6d, 0x65, 0x72,
0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x3d, 0x20,
- 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62,
- 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x7d,
- 0x2c, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
- 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
- 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20,
- 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x28, 0x29, 0x0a, 0x65,
- 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
- 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69,
- 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c,
- 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63,
+ 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20,
+ 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c,
+ 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72,
+ 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20,
+ 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64,
+ 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65,
+ 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75,
+ 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "timer.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/toggle.clua b/iup/srclua5/clua/toggle.clua
index 4e0cf74..e9dcd4b 100644
--- a/iup/srclua5/clua/toggle.clua
+++ b/iup/srclua5/clua/toggle.clua
@@ -13,20 +13,21 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c,
0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20,
0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47,
- 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
- 0x20, 0x22, 0x53, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
- 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a,
- 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72,
- 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73,
- 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
- 0x20, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x74, 0x69, 0x74, 0x6c,
- 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65,
- 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72,
- 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63,
- 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74,
- 0x22, 0x29, 0x0a,
+ 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x53, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c,
+ 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a,
+ 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72,
+ 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20,
+ 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c,
+ 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x29, 0x0a, 0x65,
+ 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73,
+ 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72,
+ 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29,
+ 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "toggle.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/tree.clua b/iup/srclua5/clua/tree.clua
index beafb16..42d4736 100644
--- a/iup/srclua5/clua/tree.clua
+++ b/iup/srclua5/clua/tree.clua
@@ -13,24 +13,28 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x74, 0x72, 0x65, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62,
- 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x75, 0x6c,
- 0x74, 0x69, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d,
- 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20,
- 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65,
- 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x72, 0x65,
- 0x65, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x62, 0x20,
- 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x63,
- 0x68, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c,
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x6c, 0x65, 0x61, 0x66,
- 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72,
- 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22,
- 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x6d,
- 0x6f, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x20,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47,
+ 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d,
+ 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20,
+ 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66,
+ 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74,
+ 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79,
+ 0x20, 0x74, 0x72, 0x65, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
+ 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x75, 0x6e, 0x73, 0x65, 0x6c,
+ 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22,
+ 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e,
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c,
+ 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x72, 0x65, 0x65, 0x66, 0x75, 0x6e, 0x63,
+ 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x61,
+ 0x6e, 0x63, 0x68, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22,
+ 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x63, 0x6c, 0x6f, 0x73,
+ 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, 0x62, 0x20, 0x3d,
+ 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65,
+ 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x2c, 0x20,
0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63,
0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x72, 0x65, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20,
@@ -42,117 +46,186 @@ static const unsigned char B1[] = {
0x20, 0x20, 0x20, 0x64, 0x72, 0x61, 0x67, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x63, 0x62, 0x20, 0x3d,
0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20,
0x65, 0x78, 0x74, 0x72, 0x61, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x0a,
- 0x7d, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
- 0x74, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c,
- 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20,
- 0x20, 0x69, 0x66, 0x20, 0x69, 0x75, 0x70, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x20, 0x3d, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x6e,
- 0x61, 0x6d, 0x65, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
- 0x20, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74,
- 0x72, 0x69, 0x62, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65,
- 0x2c, 0x20, 0x69, 0x64, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e,
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74,
- 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20,
- 0x22, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64,
- 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69,
- 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65,
- 0x6e, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x53, 0x54, 0x41, 0x54, 0x45, 0x22, 0x2e, 0x2e,
- 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x20,
- 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x74, 0x69,
- 0x74, 0x6c, 0x65, 0x66, 0x6f, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x53, 0x65, 0x74,
+ 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69,
+ 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x64,
+ 0x2c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61,
+ 0x74, 0x74, 0x72, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x70, 0x61, 0x69, 0x72,
+ 0x73, 0x28, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x61, 0x74, 0x74, 0x72, 0x2e, 0x2e, 0x69, 0x64, 0x5d,
+ 0x20, 0x3d, 0x20, 0x76, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64,
+ 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54,
+ 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x41,
+ 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x2c, 0x20, 0x69, 0x6e, 0x69, 0x2c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, 0x0a, 0x20, 0x20,
+ 0x69, 0x6e, 0x69, 0x20, 0x3d, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x22, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x22, 0x2e, 0x2e, 0x69, 0x6e, 0x69, 0x5d, 0x0a, 0x20, 0x20, 0x6c, 0x6f,
+ 0x63, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x69, 0x20, 0x64, 0x6f, 0x0a,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x69, 0x6e, 0x73, 0x65,
+ 0x72, 0x74, 0x28, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2c, 0x20, 0x31, 0x2c, 0x20, 0x69, 0x6e, 0x69,
+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x20, 0x3d, 0x20, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x2e, 0x2e, 0x69,
+ 0x6e, 0x69, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x66, 0x6f,
+ 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x23, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x20,
+ 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53,
+ 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
+ 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5b, 0x69,
+ 0x5d, 0x2c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a,
+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75,
+ 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74,
+ 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x69, 0x2c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, 0x0a,
+ 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x69,
+ 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x22, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x22, 0x2e, 0x2e, 0x69, 0x6e, 0x69, 0x5d, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69,
+ 0x64, 0x20, 0x3d, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72,
+ 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69,
+ 0x64, 0x2c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66,
+ 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x22, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x2e, 0x2e,
+ 0x69, 0x64, 0x5d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x22, 0x20,
+ 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x64, 0x20, 0x3d, 0x20,
+ 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x65,
+ 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x68, 0x61,
+ 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a,
+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65,
+ 0x65, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48, 0x61, 0x6e,
+ 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d,
+ 0x65, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+ 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6d, 0x75,
+ 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20,
+ 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x73,
+ 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72,
+ 0x65, 0x65, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x29, 0x0a, 0x20, 0x20,
+ 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x74,
+ 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69,
+ 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x53, 0x54,
+ 0x41, 0x54, 0x45, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e,
+ 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a,
+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65,
+ 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x28, 0x68,
+ 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64,
+ 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x63, 0x6f, 0x6c,
+ 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41,
+ 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c,
+ 0x20, 0x22, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e,
+ 0x6f, 0x64, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
+ 0x20, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x66,
+ 0x6f, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74,
0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
0x2c, 0x20, 0x22, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x46, 0x4f, 0x4e, 0x54, 0x22, 0x2e, 0x2e, 0x69,
- 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x66, 0x6f, 0x6e,
- 0x74, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65,
- 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x53, 0x65, 0x74,
- 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
- 0x2c, 0x20, 0x22, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20,
- 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x29, 0x20, 0x65, 0x6e, 0x64,
- 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65,
- 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74,
- 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e,
- 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x22, 0x2e, 0x2e, 0x69, 0x64,
- 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x29, 0x20, 0x65, 0x6e,
- 0x64, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67,
- 0x65, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x54,
- 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x49,
- 0x4d, 0x41, 0x47, 0x45, 0x45, 0x58, 0x50, 0x41, 0x4e, 0x44, 0x45, 0x44, 0x22, 0x2e, 0x2e, 0x69,
- 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x65, 0x78, 0x70,
- 0x61, 0x6e, 0x64, 0x65, 0x64, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20,
- 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x69, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e,
- 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x28, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e,
- 0x75, 0x73, 0x65, 0x72, 0x69, 0x64, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a,
- 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65,
- 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x63, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
- 0x2c, 0x20, 0x74, 0x2c, 0x20, 0x69, 0x64, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x20,
- 0x3d, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x72, 0x65, 0x74, 0x75,
- 0x72, 0x6e, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63,
- 0x6f, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x23, 0x74, 0x0a, 0x20, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65,
- 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x30, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x74,
- 0x5b, 0x63, 0x6f, 0x6e, 0x74, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79,
- 0x70, 0x65, 0x28, 0x6e, 0x6f, 0x64, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69,
- 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6e, 0x61, 0x6d,
- 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53,
- 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64,
- 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x41, 0x44, 0x44, 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x22, 0x2e,
- 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68,
- 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72,
- 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x28,
- 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64,
- 0x2b, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x65, 0x65,
- 0x53, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x63, 0x28, 0x68, 0x61, 0x6e, 0x64,
- 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x29, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64,
- 0x65, 0x2e, 0x6c, 0x65, 0x61, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69,
- 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x41, 0x44,
- 0x44, 0x4c, 0x45, 0x41, 0x46, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65,
- 0x2e, 0x6c, 0x65, 0x61, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74,
- 0x74, 0x72, 0x69, 0x62, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x64,
- 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65,
- 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
- 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x41, 0x44, 0x44,
- 0x4c, 0x45, 0x41, 0x46, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x29,
+ 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x66, 0x6f,
+ 0x6e, 0x74, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f,
+ 0x64, 0x65, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x22,
+ 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x6d, 0x61, 0x72, 0x6b,
+ 0x65, 0x64, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f,
+ 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75,
+ 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
+ 0x74, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c,
+ 0x20, 0x22, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e,
+ 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
+ 0x20, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x65,
+ 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+ 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20,
+ 0x22, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x45, 0x58, 0x50, 0x41, 0x4e, 0x44, 0x45, 0x44, 0x22, 0x2e,
+ 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65,
+ 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20,
+ 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x69, 0x64, 0x20,
+ 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74,
+ 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69,
+ 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x69, 0x64, 0x29,
+ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x41, 0x64, 0x64, 0x4e, 0x6f,
+ 0x64, 0x65, 0x73, 0x52, 0x65, 0x63, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74,
+ 0x2c, 0x20, 0x69, 0x64, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x20, 0x3d, 0x3d, 0x20,
+ 0x6e, 0x69, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
+ 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74,
+ 0x20, 0x3d, 0x20, 0x23, 0x74, 0x0a, 0x20, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x63, 0x6f,
+ 0x6e, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x30, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c,
+ 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x74, 0x5b, 0x63,
+ 0x6f, 0x6e, 0x74, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65,
+ 0x28, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66,
+ 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6e, 0x61, 0x6d,
+ 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28,
+ 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x41, 0x44, 0x44, 0x42, 0x52, 0x41, 0x4e,
+ 0x43, 0x48, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x62,
+ 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f,
+ 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c,
+ 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x29, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x41, 0x64,
+ 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x63, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x29, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53,
+ 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20,
+ 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e,
+ 0x6c, 0x65, 0x61, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74,
+ 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22,
+ 0x41, 0x44, 0x44, 0x4c, 0x45, 0x41, 0x46, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e,
+ 0x6f, 0x64, 0x65, 0x2e, 0x6c, 0x65, 0x61, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65,
+ 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x28, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x29,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65,
- 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6f,
- 0x6e, 0x74, 0x20, 0x2d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e,
- 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x72, 0x65, 0x65,
- 0x53, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c,
- 0x20, 0x74, 0x2c, 0x20, 0x69, 0x64, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f,
- 0x74, 0x20, 0x69, 0x64, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69,
- 0x64, 0x20, 0x3d, 0x20, 0x30, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
- 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x2e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6e, 0x61, 0x6d,
- 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
- 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x54, 0x49, 0x54,
- 0x4c, 0x45, 0x30, 0x22, 0x2c, 0x20, 0x74, 0x2e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6e, 0x61,
- 0x6d, 0x65, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x65, 0x65,
- 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x28, 0x68, 0x61,
- 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x2c, 0x20, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e,
- 0x64, 0x0a, 0x20, 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x52, 0x65, 0x63, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x2c, 0x20, 0x69,
- 0x64, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d,
- 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a,
- 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x54, 0x72, 0x65, 0x65, 0x28, 0x29, 0x0a,
- 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
- 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70,
- 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22,
- 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f,
+ 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+ 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x41, 0x44, 0x44, 0x4c, 0x45, 0x41,
+ 0x46, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x29, 0x0a, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64,
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6e, 0x74,
+ 0x20, 0x2d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a,
+ 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72,
+ 0x65, 0x65, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c,
+ 0x65, 0x2c, 0x20, 0x74, 0x2c, 0x20, 0x69, 0x64, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28,
+ 0x6e, 0x6f, 0x74, 0x20, 0x69, 0x64, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20,
+ 0x20, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x64, 0x65, 0x66, 0x61,
+ 0x75, 0x6c, 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x0a,
+ 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x2e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6e,
+ 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74,
+ 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
+ 0x2c, 0x20, 0x22, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x30, 0x22, 0x2c, 0x20, 0x74, 0x2e, 0x62, 0x72,
+ 0x61, 0x6e, 0x63, 0x68, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20,
+ 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64,
+ 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20,
+ 0x74, 0x2c, 0x20, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x75,
+ 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65,
+ 0x63, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x2c, 0x20, 0x69, 0x64, 0x29,
+ 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x64, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0x20,
+ 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74,
+ 0x53, 0x74, 0x61, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x2c,
+ 0x20, 0x30, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20,
+ 0x62, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69,
+ 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53,
+ 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72,
+ 0x65, 0x65, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70,
+ 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65,
+ 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43,
+ 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20,
+ 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "tree.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/user.clua b/iup/srclua5/clua/user.clua
index 3ffcab7..3629189 100644
--- a/iup/srclua5/clua/user.clua
+++ b/iup/srclua5/clua/user.clua
@@ -13,17 +13,18 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e,
0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20,
- 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c,
- 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22,
- 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b,
- 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74,
- 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
- 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20,
- 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x55, 0x73, 0x65, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e,
- 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69,
- 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65,
- 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75,
- 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44,
+ 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+ 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
+ 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65,
+ 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61,
+ 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70,
+ 0x2e, 0x55, 0x73, 0x65, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70,
+ 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28,
+ 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61,
+ 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69,
+ 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "user.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/val.clua b/iup/srclua5/clua/val.clua
index c9109e5..4e896e2 100644
--- a/iup/srclua5/clua/val.clua
+++ b/iup/srclua5/clua/val.clua
@@ -13,23 +13,23 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61,
0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63,
0x6b, 0x20, 0x3d, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x2c, 0x0a,
- 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20,
- 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x62, 0x20,
- 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f,
- 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22,
- 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6c,
- 0x65, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
- 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65,
- 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20,
- 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x56, 0x61, 0x6c, 0x28, 0x61, 0x72, 0x67,
- 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67,
- 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c,
- 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74,
- 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22,
- 0x29, 0x0a,
+ 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54,
+ 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
+ 0x53, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d,
+ 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65,
+ 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d,
+ 0x20, 0x22, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45,
+ 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61,
+ 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x56, 0x61, 0x6c, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, 0x29,
+ 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
+ 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c,
+ 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "val.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/clua/vbox.clua b/iup/srclua5/clua/vbox.clua
index 4f93a86..fc50b71 100644
--- a/iup/srclua5/clua/vbox.clua
+++ b/iup/srclua5/clua/vbox.clua
@@ -13,19 +13,20 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x76, 0x62, 0x6f, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x42, 0x4f, 0x58, 0x2c, 0x0a, 0x20, 0x20, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d,
- 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
- 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20,
- 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68,
- 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64,
- 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c,
- 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
- 0x75, 0x72, 0x6e, 0x20, 0x56, 0x62, 0x6f, 0x78, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a,
- 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65,
- 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f, 0x58, 0x2c,
+ 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20,
+ 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+ 0x74, 0x72, 0x6c, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x28, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65,
+ 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c,
+ 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72,
+ 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75,
+ 0x70, 0x2e, 0x56, 0x62, 0x6f, 0x78, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75,
+ 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74,
+ 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c,
0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77,
0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
diff --git a/iup/srclua5/clua/zbox.clua b/iup/srclua5/clua/zbox.clua
index d47e433..5a6a309 100644
--- a/iup/srclua5/clua/zbox.clua
+++ b/iup/srclua5/clua/zbox.clua
@@ -13,34 +13,35 @@ static const unsigned char B1[] = {
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63,
0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69,
0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x7a, 0x62, 0x6f, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x42, 0x4f, 0x58, 0x2c, 0x0a, 0x20, 0x20, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20,
- 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d,
- 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e,
- 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20,
- 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f,
- 0x73, 0x65, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20,
- 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65,
- 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64,
- 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x29, 0x0a, 0x20, 0x20,
- 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x6f, 0x62, 0x6a, 0x5b, 0x69, 0x5d, 0x20, 0x64, 0x6f, 0x0a,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65,
- 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x5b, 0x69, 0x5d, 0x29, 0x0a, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x69, 0x2b, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20,
- 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66,
- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73,
- 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x53,
- 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28,
- 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5a,
- 0x62, 0x6f, 0x78, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65,
- 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72,
- 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63,
- 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74,
- 0x22, 0x29, 0x0a,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f, 0x58, 0x2c,
+ 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d,
+ 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20,
+ 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63,
+ 0x74, 0x72, 0x6c, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x28, 0x68, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e,
+ 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x65, 0x6c,
+ 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64,
+ 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x65,
+ 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72,
+ 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d,
+ 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a,
+ 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20,
+ 0x69, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20,
+ 0x6f, 0x62, 0x6a, 0x5b, 0x69, 0x5d, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d,
+ 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x5b, 0x69, 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x69, 0x20, 0x3d, 0x20, 0x69, 0x2b, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a,
+ 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45,
+ 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61,
+ 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x53, 0x65, 0x74,
+ 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x70, 0x61,
+ 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69,
+ 0x75, 0x70, 0x2e, 0x5a, 0x62, 0x6f, 0x78, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69,
+ 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65,
+ 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43,
+ 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20,
+ 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a,
};
if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "zbox.lua") == 0) lua_call(L, 0, 0);
diff --git a/iup/srclua5/colorbar.lua b/iup/srclua5/colorbar.lua
index 524d5f3..7cc07db 100755
--- a/iup/srclua5/colorbar.lua
+++ b/iup/srclua5/colorbar.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "colorbar",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
callback = {
select_cb = "nn",
@@ -15,12 +15,12 @@ local ctrl = {
include = "iupcontrols.h",
}
-PRIMARY = -1
-SECONDARY = -2
+iup.PRIMARY = -1
+iup.SECONDARY = -2
-function ctrl.createElement(class, arg)
- return Colorbar(arg.action)
+function ctrl.createElement(class, param)
+ return iup.Colorbar(param.action)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/colorbrowser.lua b/iup/srclua5/colorbrowser.lua
index 16ac58f..496ce21 100755
--- a/iup/srclua5/colorbrowser.lua
+++ b/iup/srclua5/colorbrowser.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "colorbrowser",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
callback = {
drag_cb = "ccc",
@@ -13,9 +13,9 @@ local ctrl = {
include = "iupcontrols.h",
}
-function ctrl.createElement(class, arg)
- return ColorBrowser(arg.action)
+function ctrl.createElement(class, param)
+ return iup.ColorBrowser(param.action)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/colordlg.lua b/iup/srclua5/colordlg.lua
index 6eea53b..d6a71a4 100755
--- a/iup/srclua5/colordlg.lua
+++ b/iup/srclua5/colordlg.lua
@@ -3,24 +3,24 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "colordlg",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
funcname = "ColorDlg",
callback = {}
}
function ctrl.popup(handle, x, y)
- Popup(handle,x,y)
+ iup.Popup(handle,x,y)
end
function ctrl.destroy(handle)
- return Destroy(handle)
+ return iup.Destroy(handle)
end
-function ctrl.createElement(class, arg)
- return ColorDlg()
+function ctrl.createElement(class, param)
+ return iup.ColorDlg()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/config.mak b/iup/srclua5/config.mak
index 7979f0e..921aa29 100755
--- a/iup/srclua5/config.mak
+++ b/iup/srclua5/config.mak
@@ -17,7 +17,7 @@ CTRLUA = button.lua canvas.lua dialog.lua colordlg.lua clipboard.lua \
item.lua image.lua imagergb.lua imagergba.lua label.lua \
menu.lua multiline.lua list.lua separator.lua user.lua \
submenu.lua text.lua toggle.lua vbox.lua zbox.lua timer.lua \
- sbox.lua spin.lua spinbox.lua cbox.lua messagedlg.lua \
+ sbox.lua split.lua spin.lua spinbox.lua cbox.lua messagedlg.lua \
radio.lua val.lua tabs.lua fontdlg.lua tree.lua progressbar.lua
GC := $(addsuffix .c, $(basename $(CTRLUA)))
diff --git a/iup/srclua5/constants.lua b/iup/srclua5/constants.lua
index 9a72f6a..2a1e76f 100755
--- a/iup/srclua5/constants.lua
+++ b/iup/srclua5/constants.lua
@@ -3,70 +3,70 @@
----------------------------------------------------------------------------
-- Common return values
----------------------------------------------------------------------------
-ERROR = 1
-NOERROR = 0
-OPENED = -1
-INVALID = -1
+iup.ERROR = 1
+iup.NOERROR = 0
+iup.OPENED = -1
+iup.INVALID = -1
----------------------------------------------------------------------------
-- Callback return values
----------------------------------------------------------------------------
-IGNORE = -1
-DEFAULT = -2
-CLOSE = -3
-CONTINUE = -4
+iup.IGNORE = -1
+iup.DEFAULT = -2
+iup.CLOSE = -3
+iup.CONTINUE = -4
----------------------------------------------------------------------------
-- IupPopup e IupShowXY
----------------------------------------------------------------------------
-CENTER = 65535
-LEFT = 65534
-RIGHT = 65533
-MOUSEPOS = 65532
-CURRENT = 65531
-CENTERPARENT = 65530
-TOP = LEFT
-BOTTOM = RIGHT
+iup.CENTER = 65535
+iup.LEFT = 65534
+iup.RIGHT = 65533
+iup.MOUSEPOS = 65532
+iup.CURRENT = 65531
+iup.CENTERPARENT = 65530
+iup.TOP = LEFT
+iup.BOTTOM = RIGHT
----------------------------------------------------------------------------
-- Scrollbar
----------------------------------------------------------------------------
-SBUP = 0
-SBDN = 1
-SBPGUP = 2
-SBPGDN = 3
-SBPOSV = 4
-SBDRAGV = 5
-SBLEFT = 6
-SBRIGHT = 7
-SBPGLEFT = 8
-SBPGRIGHT = 9
-SBPOSH = 10
-SBDRAGH = 11
+iup.SBUP = 0
+iup.SBDN = 1
+iup.SBPGUP = 2
+iup.SBPGDN = 3
+iup.SBPOSV = 4
+iup.SBDRAGV = 5
+iup.SBLEFT = 6
+iup.SBRIGHT = 7
+iup.SBPGLEFT = 8
+iup.SBPGRIGHT = 9
+iup.SBPOSH = 10
+iup.SBDRAGH = 11
----------------------------------------------------------------------------
-- SHOW_CB
----------------------------------------------------------------------------
-SHOW = 0
-RESTORE = 1
-MINIMIZE = 2
-MAXIMIZE = 3
-HIDE = 4
+iup.SHOW = 0
+iup.RESTORE = 1
+iup.MINIMIZE = 2
+iup.MAXIMIZE = 3
+iup.HIDE = 4
----------------------------------------------------------------------------
-- BUTTON_CB
----------------------------------------------------------------------------
-BUTTON1 = string.byte('1')
-BUTTON2 = string.byte('2')
-BUTTON3 = string.byte('3')
-BUTTON4 = string.byte('4')
-BUTTON5 = string.byte('5')
+iup.BUTTON1 = string.byte('1')
+iup.BUTTON2 = string.byte('2')
+iup.BUTTON3 = string.byte('3')
+iup.BUTTON4 = string.byte('4')
+iup.BUTTON5 = string.byte('5')
----------------------------------------------------------------------------
-- Pre-Defined Masks
----------------------------------------------------------------------------
-MASK_FLOAT = "[+/-]?(/d+/.?/d*|/./d+)"
-MASK_UFLOAT = "(/d+/.?/d*|/./d+)"
-MASK_EFLOAT = "[+/-]?(/d+/.?/d*|/./d+)([eE][+/-]?/d+)?"
-MASK_INT = "[+/-]?/d+"
-MASK_UINT = "/d+"
+iup.MASK_FLOAT = "[+/-]?(/d+/.?/d*|/./d+)"
+iup.MASK_UFLOAT = "(/d+/.?/d*|/./d+)"
+iup.MASK_EFLOAT = "[+/-]?(/d+/.?/d*|/./d+)([eE][+/-]?/d+)?"
+iup.MASK_INT = "[+/-]?/d+"
+iup.MASK_UINT = "/d+"
diff --git a/iup/srclua5/ctrl_template.lua b/iup/srclua5/ctrl_template.lua
index f314ac6..d7f509e 100755
--- a/iup/srclua5/ctrl_template.lua
+++ b/iup/srclua5/ctrl_template.lua
@@ -6,7 +6,7 @@
local ctrl = {
nick = "mycontrol", -- name of the control, used in the control creation: iup.mycontrol{}
-- also used for the generated C module
- parent = WIDGET, -- used to define a few methods used fro creation and set attribute
+ parent = iup.WIDGET, -- used to define a few methods used fro creation and set attribute
creation = "nn", -- the creation parameters in Lua
-- "n" = int
-- "d" = double
@@ -81,14 +81,14 @@ int luaopen_iupluamycontrol51(lua_State* L)
}
-- must be defined so the WIDGET constructor can call it
-function ctrl.createElement(class, arg)
- return myControl()
+function ctrl.createElement(class, param)
+ return iup.myControl()
end
-- here you can add some custom methods to the class
function ctrl.popup(handle, x, y)
- Popup(handle,x,y)
+ iup.Popup(handle,x,y)
end
-iupRegisterWidget(ctrl) -- will make iup.mycontrol available
-iupSetClass(ctrl, "iup widget") -- register the class in the registry
+iup.RegisterWidget(ctrl) -- will make iup.mycontrol available
+iup.SetClass(ctrl, "iup widget") -- register the class in the registry
diff --git a/iup/srclua5/dial.lua b/iup/srclua5/dial.lua
index 0384b43..29f3fa1 100755
--- a/iup/srclua5/dial.lua
+++ b/iup/srclua5/dial.lua
@@ -3,8 +3,8 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "dial",
- parent = WIDGET,
- creation = "s",
+ parent = iup.WIDGET,
+ creation = "S",
callback = {
mousemove_cb = "d", -- already registered by the val, but has a name conflict
-- button_press_cb = "d", -- already registered by the val
@@ -13,9 +13,9 @@ local ctrl = {
include = "iupcontrols.h",
}
-function ctrl.createElement(class, arg)
- return Dial(arg[1])
+function ctrl.createElement(class, param)
+ return iup.Dial(param[1])
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/dialog.lua b/iup/srclua5/dialog.lua
index a996ad7..ac9b786 100755
--- a/iup/srclua5/dialog.lua
+++ b/iup/srclua5/dialog.lua
@@ -3,11 +3,12 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "dialog",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "I",
callback = {
map_cb = "",
unmap_cb = "",
+ destroy_cb = "",
close_cb = "",
show_cb = "n",
move_cb = "nn",
@@ -16,21 +17,21 @@ local ctrl = {
}
}
-function ctrl.createElement(class, arg)
- return Dialog(arg[1])
+function ctrl.createElement(class, param)
+ return iup.Dialog(param[1])
end
function ctrl.popup(handle, x, y)
- Popup(handle,x,y)
+ iup.Popup(handle,x,y)
end
function ctrl.showxy(handle, x, y)
- return ShowXY(handle, x, y)
+ return iup.ShowXY(handle, x, y)
end
function ctrl.destroy(handle)
- return Destroy(handle)
+ return iup.Destroy(handle)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/filedlg.lua b/iup/srclua5/filedlg.lua
index 71c4bb4..c0e6db5 100755
--- a/iup/srclua5/filedlg.lua
+++ b/iup/srclua5/filedlg.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "filedlg",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
callback = {
file_cb = "ss",
@@ -12,17 +12,17 @@ local ctrl = {
}
function ctrl.popup(handle, x, y)
- Popup(handle,x,y)
+ iup.Popup(handle,x,y)
end
function ctrl.destroy(handle)
- return Destroy(handle)
+ return iup.Destroy(handle)
end
-function ctrl.createElement(class, arg)
- return FileDlg()
+function ctrl.createElement(class, param)
+ return iup.FileDlg()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/fill.lua b/iup/srclua5/fill.lua
index 4bf7803..62c1bf0 100755
--- a/iup/srclua5/fill.lua
+++ b/iup/srclua5/fill.lua
@@ -3,14 +3,14 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "fill",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
callback = {}
}
-function ctrl.createElement(class, arg)
- return Fill()
+function ctrl.createElement(class, param)
+ return iup.Fill()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/fontdlg.lua b/iup/srclua5/fontdlg.lua
index 2c88d26..45bc02f 100755
--- a/iup/srclua5/fontdlg.lua
+++ b/iup/srclua5/fontdlg.lua
@@ -3,24 +3,24 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "fontdlg",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
funcname = "FontDlg",
callback = {}
}
function ctrl.popup(handle, x, y)
- Popup(handle,x,y)
+ iup.Popup(handle,x,y)
end
function ctrl.destroy(handle)
- return Destroy(handle)
+ return iup.Destroy(handle)
end
-function ctrl.createElement(class, arg)
- return FontDlg()
+function ctrl.createElement(class, param)
+ return iup.FontDlg()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/frame.lua b/iup/srclua5/frame.lua
index 7a1c1cc..96bfbb1 100755
--- a/iup/srclua5/frame.lua
+++ b/iup/srclua5/frame.lua
@@ -3,14 +3,14 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "frame",
- parent = WIDGET,
- creation = "i",
+ parent = iup.WIDGET,
+ creation = "I",
callback = {}
}
-function ctrl.createElement(class, arg)
- return Frame(arg[1])
+function ctrl.createElement(class, param)
+ return iup.Frame(param[1])
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/gauge.lua b/iup/srclua5/gauge.lua
index 45a72b3..e25756c 100755
--- a/iup/srclua5/gauge.lua
+++ b/iup/srclua5/gauge.lua
@@ -3,15 +3,15 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "gauge",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
callback = {},
include = "iupcontrols.h",
}
-function ctrl.createElement(class, arg)
- return Gauge(arg.action)
+function ctrl.createElement(class, param)
+ return iup.Gauge(param.action)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/generator.lua b/iup/srclua5/generator.lua
index 3732364..efbab5a 100755
--- a/iup/srclua5/generator.lua
+++ b/iup/srclua5/generator.lua
@@ -1,17 +1,18 @@
function dofile(f)
- pcall(loadfile(f))
+ pcall(loadfile(f))
end
-- compatibility functions (with iuplua.lua)
-function iupSetClass(ctrl, name)
+iup = {}
+function iup.SetClass(ctrl, name)
element = ctrl
end
-- dummy functions
-iupluaNewClass = function() end
-iupSetMethod = iupluaNewClass
-iupRegisterWidget = iupluaNewClass
+iupDoNothing = function() end
+iupSetMethod = iupDoNothing
+iup.RegisterWidget = iupDoNothing
c_types = {
n = "int",
diff --git a/iup/srclua5/glcanvas.lua b/iup/srclua5/glcanvas.lua
index 782e974..6a3fe75 100755
--- a/iup/srclua5/glcanvas.lua
+++ b/iup/srclua5/glcanvas.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "glcanvas",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "-",
funcname = "GLCanvas",
include = "iupgl.h",
@@ -17,9 +17,8 @@ int iupgllua_open(lua_State * L)
if (iuplua_opencall_internal(L))
IupGLCanvasOpen();
- iuplua_changeEnv(L);
+ iuplua_get_env(L);
iupglcanvaslua_open(L);
- iuplua_returnEnv(L);
return 0;
}
@@ -38,9 +37,9 @@ int luaopen_iupluagl51(lua_State* L)
]]
}
-function ctrl.createElement(class, arg)
- return GLCanvas()
+function ctrl.createElement(class, param)
+ return iup.GLCanvas()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/hbox.lua b/iup/srclua5/hbox.lua
index 38213bb..5a1b844 100755
--- a/iup/srclua5/hbox.lua
+++ b/iup/srclua5/hbox.lua
@@ -3,18 +3,18 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "hbox",
- parent = BOX,
+ parent = iup.BOX,
creation = "-",
callback = {}
}
function ctrl.append(handle, elem)
- Append(handle, elem)
+ iup.Append(handle, elem)
end
-function ctrl.createElement(class, arg)
- return Hbox()
+function ctrl.createElement(class, param)
+ return iup.Hbox()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/il.h b/iup/srclua5/il.h
index 81a0140..5ef6b86 100755
--- a/iup/srclua5/il.h
+++ b/iup/srclua5/il.h
@@ -36,6 +36,7 @@ int iupcboxlua_open (lua_State * L);
int iupspinboxlua_open (lua_State * L);
int iupspinlua_open (lua_State * L);
int iupsboxlua_open (lua_State * L);
+int iupsplitlua_open (lua_State * L);
int iupgclua_open (lua_State * L);
int iupvallua_open (lua_State * L);
int iuptabslua_open (lua_State * L);
@@ -53,20 +54,15 @@ int iupclipboardlua_open(lua_State * L);
void iupgetparamlua_open (lua_State * L);
int iupluaScanf(lua_State *L);
-int iupluaapi_open(lua_State * L);
+void iupluaapi_open(lua_State * L);
/* Registration */
-/** Sets the global index as the table "iup".
- * Used to simplify the registration of functions and constants in the "iup" namespace.
+/** Gets the global enviroment "iup".
+ Used by secondary iuplua modules.
*/
-void iuplua_changeEnv(lua_State *L);
-
-/** Resets the global index.
- * Must match a iuplua_changeEnv call.
- */
-void iuplua_returnEnv(lua_State *L);
+void iuplua_get_env(lua_State *L);
/** Returns true if IupOpen was called from inside the IupLua initialization function (iuplua_open).
* All the other C intialization functions are called from the respective IupLua initialization functions.
diff --git a/iup/srclua5/il_dial.c b/iup/srclua5/il_dial.c
index 35532cd..242e838 100755
--- a/iup/srclua5/il_dial.c
+++ b/iup/srclua5/il_dial.c
@@ -22,7 +22,7 @@ static int dial_mousemove_cb(Ihandle *self, double p0)
static int Dial(lua_State *L)
{
- Ihandle *ih = IupDial((char *) luaL_checkstring(L, 1));
+ Ihandle *ih = IupDial((char *) luaL_optstring(L, 1, NULL));
iuplua_plugstate(L, ih);
iuplua_pushihandle_raw(L, ih);
return 1;
diff --git a/iup/srclua5/il_dialog.c b/iup/srclua5/il_dialog.c
index cc130c9..d3e8c29 100755
--- a/iup/srclua5/il_dialog.c
+++ b/iup/srclua5/il_dialog.c
@@ -12,24 +12,18 @@
#include "il.h"
-static int dialog_move_cb(Ihandle *self, int p0, int p1)
-{
- lua_State *L = iuplua_call_start(self, "move_cb");
- lua_pushnumber(L, p0);
- lua_pushnumber(L, p1);
- return iuplua_call(L, 2);
-}
-
static int dialog_map_cb(Ihandle *self)
{
lua_State *L = iuplua_call_start(self, "map_cb");
return iuplua_call(L, 0);
}
-static int dialog_unmap_cb(Ihandle *self)
+static int dialog_move_cb(Ihandle *self, int p0, int p1)
{
- lua_State *L = iuplua_call_start(self, "unmap_cb");
- return iuplua_call(L, 0);
+ lua_State *L = iuplua_call_start(self, "move_cb");
+ lua_pushnumber(L, p0);
+ lua_pushnumber(L, p1);
+ return iuplua_call(L, 2);
}
static int dialog_dropfiles_cb(Ihandle *self, char * p0, int p1, int p2, int p3)
@@ -42,6 +36,12 @@ static int dialog_dropfiles_cb(Ihandle *self, char * p0, int p1, int p2, int p3)
return iuplua_call(L, 4);
}
+static int dialog_unmap_cb(Ihandle *self)
+{
+ lua_State *L = iuplua_call_start(self, "unmap_cb");
+ return iuplua_call(L, 0);
+}
+
static int dialog_show_cb(Ihandle *self, int p0)
{
lua_State *L = iuplua_call_start(self, "show_cb");
@@ -58,6 +58,12 @@ static int dialog_trayclick_cb(Ihandle *self, int p0, int p1, int p2)
return iuplua_call(L, 3);
}
+static int dialog_destroy_cb(Ihandle *self)
+{
+ lua_State *L = iuplua_call_start(self, "destroy_cb");
+ return iuplua_call(L, 0);
+}
+
static int dialog_close_cb(Ihandle *self)
{
lua_State *L = iuplua_call_start(self, "close_cb");
@@ -76,12 +82,13 @@ int iupdialoglua_open(lua_State * L)
{
iuplua_register(L, Dialog, "Dialog");
- iuplua_register_cb(L, "MOVE_CB", (lua_CFunction)dialog_move_cb, NULL);
iuplua_register_cb(L, "MAP_CB", (lua_CFunction)dialog_map_cb, NULL);
- iuplua_register_cb(L, "UNMAP_CB", (lua_CFunction)dialog_unmap_cb, NULL);
+ iuplua_register_cb(L, "MOVE_CB", (lua_CFunction)dialog_move_cb, NULL);
iuplua_register_cb(L, "DROPFILES_CB", (lua_CFunction)dialog_dropfiles_cb, NULL);
+ iuplua_register_cb(L, "UNMAP_CB", (lua_CFunction)dialog_unmap_cb, NULL);
iuplua_register_cb(L, "SHOW_CB", (lua_CFunction)dialog_show_cb, NULL);
iuplua_register_cb(L, "TRAYCLICK_CB", (lua_CFunction)dialog_trayclick_cb, NULL);
+ iuplua_register_cb(L, "DESTROY_CB", (lua_CFunction)dialog_destroy_cb, NULL);
iuplua_register_cb(L, "CLOSE_CB", (lua_CFunction)dialog_close_cb, NULL);
#include "clua/dialog.clua"
diff --git a/iup/srclua5/il_frame.c b/iup/srclua5/il_frame.c
index 7bf41db..cfc5314 100755
--- a/iup/srclua5/il_frame.c
+++ b/iup/srclua5/il_frame.c
@@ -14,7 +14,7 @@
static int Frame(lua_State *L)
{
- Ihandle *ih = IupFrame(iuplua_checkihandle(L, 1));
+ Ihandle *ih = IupFrame(iuplua_checkihandleornil(L, 1));
iuplua_plugstate(L, ih);
iuplua_pushihandle_raw(L, ih);
return 1;
diff --git a/iup/srclua5/il_getcolor.c b/iup/srclua5/il_getcolor.c
index d468d38..4d6cf71 100755
--- a/iup/srclua5/il_getcolor.c
+++ b/iup/srclua5/il_getcolor.c
@@ -37,10 +37,10 @@ static int GetColor(lua_State *L)
return 1;
}
}
+
int iupgclua_open(lua_State * L)
{
- lua_pushcfunction(L, GetColor);
- lua_setglobal(L, "GetColor");
+ iuplua_register(L, GetColor, "GetColor");
return 0;
}
diff --git a/iup/srclua5/il_getparam.c b/iup/srclua5/il_getparam.c
index c7f4936..72c4303 100755
--- a/iup/srclua5/il_getparam.c
+++ b/iup/srclua5/il_getparam.c
@@ -94,6 +94,8 @@ static int GetParam(lua_State *L)
param_data[i] = malloc(sizeof(float));
*(float*)(param_data[i]) = (float)luaL_checknumber(L, lua_param_start); lua_param_start++;
break;
+ case 'f':
+ case 'c':
case 's':
case 'm':
s = luaL_checkstring(L, lua_param_start); lua_param_start++;
@@ -136,6 +138,8 @@ static int GetParam(lua_State *L)
case 'r':
lua_pushnumber(L, *(float*)(param_data[i]));
break;
+ case 'f':
+ case 'c':
case 's':
case 'm':
lua_pushstring(L, (char*)(param_data[i]));
diff --git a/iup/srclua5/il_glcanvas.c b/iup/srclua5/il_glcanvas.c
index 2100dd3..27f7277 100755
--- a/iup/srclua5/il_glcanvas.c
+++ b/iup/srclua5/il_glcanvas.c
@@ -49,9 +49,8 @@ int iupgllua_open(lua_State * L)
if (iuplua_opencall_internal(L))
IupGLCanvasOpen();
- iuplua_changeEnv(L);
+ iuplua_get_env(L);
iupglcanvaslua_open(L);
- iuplua_returnEnv(L);
return 0;
}
diff --git a/iup/srclua5/il_olecontrol.c b/iup/srclua5/il_olecontrol.c
index eeeae21..0878e96 100755
--- a/iup/srclua5/il_olecontrol.c
+++ b/iup/srclua5/il_olecontrol.c
@@ -36,9 +36,8 @@ int iupolelua_open(lua_State* L)
if (iuplua_opencall_internal(L))
IupOleControlOpen();
- iuplua_changeEnv(L);
+ iuplua_get_env(L);
iupolecontrollua_open(L);
- iuplua_returnEnv(L);
return 0;
}
diff --git a/iup/srclua5/il_radio.c b/iup/srclua5/il_radio.c
index c1b0fb4..3eaf250 100755
--- a/iup/srclua5/il_radio.c
+++ b/iup/srclua5/il_radio.c
@@ -14,7 +14,7 @@
static int Radio(lua_State *L)
{
- Ihandle *ih = IupRadio(iuplua_checkihandle(L, 1));
+ Ihandle *ih = IupRadio(iuplua_checkihandleornil(L, 1));
iuplua_plugstate(L, ih);
iuplua_pushihandle_raw(L, ih);
return 1;
diff --git a/iup/srclua5/il_sbox.c b/iup/srclua5/il_sbox.c
index a9b196e..a617ecb 100755
--- a/iup/srclua5/il_sbox.c
+++ b/iup/srclua5/il_sbox.c
@@ -14,7 +14,7 @@
static int Sbox(lua_State *L)
{
- Ihandle *ih = IupSbox(iuplua_checkihandle(L, 1));
+ Ihandle *ih = IupSbox(iuplua_checkihandleornil(L, 1));
iuplua_plugstate(L, ih);
iuplua_pushihandle_raw(L, ih);
return 1;
diff --git a/iup/srclua5/il_split.c b/iup/srclua5/il_split.c
new file mode 100644
index 0000000..416cc6f
--- /dev/null
+++ b/iup/srclua5/il_split.c
@@ -0,0 +1,31 @@
+/******************************************************************************
+ * Automatically generated file (iuplua5). Please don't change anything. *
+ *****************************************************************************/
+
+#include <stdlib.h>
+
+#include <lua.h>
+#include <lauxlib.h>
+
+#include "iup.h"
+#include "iuplua.h"
+#include "il.h"
+
+
+static int Split(lua_State *L)
+{
+ Ihandle *ih = IupSplit(iuplua_checkihandleornil(L, 1), iuplua_checkihandleornil(L, 2));
+ iuplua_plugstate(L, ih);
+ iuplua_pushihandle_raw(L, ih);
+ return 1;
+}
+
+int iupsplitlua_open(lua_State * L)
+{
+ iuplua_register(L, Split, "Split");
+
+#include "clua/split.clua"
+
+ return 0;
+}
+
diff --git a/iup/srclua5/il_submenu.c b/iup/srclua5/il_submenu.c
index 81fd741..3465b3e 100755
--- a/iup/srclua5/il_submenu.c
+++ b/iup/srclua5/il_submenu.c
@@ -14,7 +14,7 @@
static int Submenu(lua_State *L)
{
- Ihandle *ih = IupSubmenu((char *) luaL_optstring(L, 1, NULL), iuplua_checkihandle(L, 2));
+ Ihandle *ih = IupSubmenu((char *) luaL_optstring(L, 1, NULL), iuplua_checkihandleornil(L, 2));
iuplua_plugstate(L, ih);
iuplua_pushihandle_raw(L, ih);
return 1;
diff --git a/iup/srclua5/il_tree.c b/iup/srclua5/il_tree.c
index 16168d3..4ddc1a4 100755
--- a/iup/srclua5/il_tree.c
+++ b/iup/srclua5/il_tree.c
@@ -45,17 +45,17 @@ static int tree_rename_cb(Ihandle *self, int p0, char * p1)
return iuplua_call(L, 2);
}
-static int tree_renamenode_cb(Ihandle *self, int p0, char * p1)
+static int tree_multiunselection_cb(Ihandle *self, int p0, int p1)
{
- lua_State *L = iuplua_call_start(self, "renamenode_cb");
+ lua_State *L = iuplua_call_start(self, "multiunselection_cb");
lua_pushnumber(L, p0);
- lua_pushstring(L, p1);
+ lua_pushnumber(L, p1);
return iuplua_call(L, 2);
}
-static int tree_showrename_cb(Ihandle *self, int p0)
+static int tree_rightclick_cb(Ihandle *self, int p0)
{
- lua_State *L = iuplua_call_start(self, "showrename_cb");
+ lua_State *L = iuplua_call_start(self, "rightclick_cb");
lua_pushnumber(L, p0);
return iuplua_call(L, 1);
}
@@ -82,19 +82,18 @@ static int tree_executeleaf_cb(Ihandle *self, int p0)
return iuplua_call(L, 1);
}
-static int tree_rightclick_cb(Ihandle *self, int p0)
+static int tree_showrename_cb(Ihandle *self, int p0)
{
- lua_State *L = iuplua_call_start(self, "rightclick_cb");
+ lua_State *L = iuplua_call_start(self, "showrename_cb");
lua_pushnumber(L, p0);
return iuplua_call(L, 1);
}
-static int tree_noderemoved_cb(Ihandle *self, int p0, char * p1)
+static int tree_noderemoved_cb(Ihandle *self, char * p0)
{
lua_State *L = iuplua_call_start(self, "noderemoved_cb");
- lua_pushnumber(L, p0);
- lua_pushstring(L, p1);
- return iuplua_call(L, 2);
+ lua_pushstring(L, p0);
+ return iuplua_call(L, 1);
}
static int Tree(lua_State *L)
@@ -115,12 +114,12 @@ int iuptreelua_open(lua_State * L)
iuplua_register_cb(L, "SELECTION_CB", (lua_CFunction)tree_selection_cb, NULL);
iuplua_register_cb(L, "DRAGDROP_CB", (lua_CFunction)tree_dragdrop_cb, NULL);
iuplua_register_cb(L, "RENAME_CB", (lua_CFunction)tree_rename_cb, NULL);
- iuplua_register_cb(L, "RENAMENODE_CB", (lua_CFunction)tree_renamenode_cb, NULL);
- iuplua_register_cb(L, "SHOWRENAME_CB", (lua_CFunction)tree_showrename_cb, NULL);
+ iuplua_register_cb(L, "MULTIUNSELECTION_CB", (lua_CFunction)tree_multiunselection_cb, NULL);
+ iuplua_register_cb(L, "RIGHTCLICK_CB", (lua_CFunction)tree_rightclick_cb, NULL);
iuplua_register_cb(L, "MULTISELECTION_CB", (lua_CFunction)tree_multiselection_cb, NULL);
iuplua_register_cb(L, "BRANCHCLOSE_CB", (lua_CFunction)tree_branchclose_cb, NULL);
iuplua_register_cb(L, "EXECUTELEAF_CB", (lua_CFunction)tree_executeleaf_cb, NULL);
- iuplua_register_cb(L, "RIGHTCLICK_CB", (lua_CFunction)tree_rightclick_cb, NULL);
+ iuplua_register_cb(L, "SHOWRENAME_CB", (lua_CFunction)tree_showrename_cb, NULL);
iuplua_register_cb(L, "NODEREMOVED_CB", (lua_CFunction)tree_noderemoved_cb, NULL);
iuplua_treefuncs_open(L);
diff --git a/iup/srclua5/il_tree_aux.c b/iup/srclua5/il_tree_aux.c
index 99e721b..6ebaa09 100755
--- a/iup/srclua5/il_tree_aux.c
+++ b/iup/srclua5/il_tree_aux.c
@@ -151,12 +151,26 @@ static int tree_multiselection_cb(Ihandle *ih, int* ids, int p1)
return iuplua_call(L, 2);
}
-static int tree_noderemoved_cb(Ihandle *ih, int id, void* p1)
+static int tree_multiunselection_cb(Ihandle *ih, int* ids, int p1)
+{
+ int i;
+ lua_State *L = iuplua_call_start(ih, "multiunselection_cb");
+ lua_newtable(L);
+ for (i = 0; i < p1; i++)
+ {
+ lua_pushnumber(L,i+1);
+ lua_pushnumber(L,ids[i]);
+ lua_settable(L,-3);
+ }
+ lua_pushnumber(L, p1);
+ return iuplua_call(L, 2);
+}
+
+static int tree_noderemoved_cb(Ihandle *ih, void* p1)
{
lua_State *L = iuplua_call_start(ih, "noderemoved_cb");
- lua_pushnumber(L, id);
tree_push_userid(L, p1);
- return iuplua_call(L, 2);
+ return iuplua_call(L, 1);
}
void iuplua_treefuncs_open (lua_State *L)
@@ -164,6 +178,7 @@ void iuplua_treefuncs_open (lua_State *L)
iuplua_dostring(L, "IUPTREEREFTABLE={}", "");
iuplua_register_cb(L, "MULTISELECTION_CB", (lua_CFunction)tree_multiselection_cb, NULL);
+ iuplua_register_cb(L, "MULTIUNSELECTION_CB", (lua_CFunction)tree_multiunselection_cb, NULL);
iuplua_register_cb(L, "NODEREMOVED_CB", (lua_CFunction)tree_noderemoved_cb, NULL);
/* In Lua 5:
diff --git a/iup/srclua5/il_val.c b/iup/srclua5/il_val.c
index eb6d731..f0420de 100755
--- a/iup/srclua5/il_val.c
+++ b/iup/srclua5/il_val.c
@@ -35,7 +35,7 @@ static int val_button_release_cb(Ihandle *self, double p0)
static int Val(lua_State *L)
{
- Ihandle *ih = IupVal((char *) luaL_checkstring(L, 1));
+ Ihandle *ih = IupVal((char *) luaL_optstring(L, 1, NULL));
iuplua_plugstate(L, ih);
iuplua_pushihandle_raw(L, ih);
return 1;
diff --git a/iup/srclua5/image.lua b/iup/srclua5/image.lua
index 38ef556..3a82063 100755
--- a/iup/srclua5/image.lua
+++ b/iup/srclua5/image.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "image",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "nns", -- fake definition
callback = {},
createfunc = [[
@@ -84,13 +84,13 @@ static int Image (lua_State * L)
]]
}
-function ctrl.createElement(class, arg)
- if (arg.width and arg.height and arg.pixels) then
- return Image(arg.width, arg.height, arg.pixels, arg.colors)
+function ctrl.createElement(class, param)
+ if (param.width and param.height and param.pixels) then
+ return iup.Image(param.width, param.height, param.pixels, param.colors)
else
- return Image(arg, arg.colors)
+ return iup.Image(param, param.colors)
end
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/imagergb.lua b/iup/srclua5/imagergb.lua
index caab772..e05a4bc 100755
--- a/iup/srclua5/imagergb.lua
+++ b/iup/srclua5/imagergb.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "imagergb",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "nns", -- fake definition
funcname = "ImageRGB",
callback = {},
@@ -23,9 +23,9 @@ static int ImageRGB(lua_State *L)
]]
}
-function ctrl.createElement(class, arg)
- return ImageRGB(arg.width, arg.height, arg.pixels)
+function ctrl.createElement(class, param)
+ return iup.ImageRGB(param.width, param.height, param.pixels)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/imagergba.lua b/iup/srclua5/imagergba.lua
index 87eb967..0d77cb5 100755
--- a/iup/srclua5/imagergba.lua
+++ b/iup/srclua5/imagergba.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "imagergba",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "nns", -- fake definition
funcname = "ImageRGBA",
callback = {},
@@ -23,9 +23,9 @@ static int ImageRGBA(lua_State *L)
]]
}
-function ctrl.createElement(class, arg)
- return ImageRGBA(arg.width, arg.height, arg.pixels)
+function ctrl.createElement(class, param)
+ return iup.ImageRGBA(param.width, param.height, param.pixels)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/item.lua b/iup/srclua5/item.lua
index cbd0c1e..d0ef38f 100755
--- a/iup/srclua5/item.lua
+++ b/iup/srclua5/item.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "item",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "S-",
callback = {
action = "",
@@ -11,9 +11,9 @@ local ctrl = {
}
}
-function ctrl.createElement(class, arg)
- return Item(arg.title)
+function ctrl.createElement(class, param)
+ return iup.Item(param.title)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/iuplua.c b/iup/srclua5/iuplua.c
index c10d95e..4158990 100755
--- a/iup/srclua5/iuplua.c
+++ b/iup/srclua5/iuplua.c
@@ -91,10 +91,12 @@ static int traceback (lua_State *L) {
lua_pushliteral(L, "");
lua_pushinteger(L, 2); /* skip this function */
lua_call(L, 2, 1); /* call debug.traceback */
+
lua_getglobal(L, "iup"); /* store traceback in iup._LASTTRACEBACK */
lua_pushstring(L, "_LASTTRACEBACK");
lua_pushvalue(L, -3);
lua_settable(L, -3);
+
lua_pop(L, 2);
return 1;
}
@@ -107,7 +109,8 @@ static int docall (lua_State *L, int narg, int nret)
lua_insert(L, base); /* put it under chunk and args */
status = lua_pcall(L, narg, nret, base);
lua_remove(L, base); /* remove traceback function */
- if (status != 0) {
+ if (status != 0)
+ {
/* force a complete garbage collection in case of errors */
lua_gc(L, LUA_GCCOLLECT, 0);
/* put _LASTTRACEBACK at stack position 2 */
@@ -115,14 +118,17 @@ static int docall (lua_State *L, int narg, int nret)
lua_pushliteral(L, "_LASTTRACEBACK");
lua_gettable(L, -2);
lua_remove(L, -2);
- if (!lua_isstring(L, -1)) {
+ if (!lua_isstring(L, -1))
+ {
lua_pop(L, 1);
lua_pushliteral(L, "");
+
/* set _LASTTRACEBACK as nil */
lua_getglobal(L, "iup");
lua_pushliteral(L, "_LASTTRACEBACK");
lua_pushnil(L);
lua_settable(L, -3);
+
lua_pop(L, 1);
}
}
@@ -330,9 +336,9 @@ lua_State* iuplua_call_start(Ihandle *ih, const char* name)
{
lua_State *L = iuplua_getstate(ih);
- /* prepare to call iupCallMethod(name, handle, ...) */
+ /* prepare to call iup.CallMethod(name, handle, ...) */
lua_getglobal(L,"iup");
- lua_pushstring(L,"iupCallMethod");
+ lua_pushstring(L,"CallMethod");
lua_gettable(L, -2);
lua_remove(L, -2);
@@ -380,14 +386,16 @@ int iuplua_call_raw(lua_State* L, int nargs, int nresults)
void iuplua_register_cb(lua_State *L, const char* name, lua_CFunction func, const char* type)
{
- lua_getglobal(L, "RegisterCallback");
+ lua_getglobal(L,"iup");
+ lua_pushstring(L,"RegisterCallback");
+ lua_gettable(L, -2);
lua_pushstring(L, name);
lua_pushcfunction(L, func);
lua_pushstring(L, type);
lua_call(L, 3, 0);
}
-/* iupSetCallback(handle, name, func, value) */
+/* iup.SetCallback(handle, name, func, value) */
static int SetCallback(lua_State *L)
{
Icallback func;
@@ -415,10 +423,10 @@ static int SetCallback(lua_State *L)
/*************************************/
/* metatable */
-/* iupNewClass(class_name)
+/* iup.NewClass(class_name)
Calls:
- iupNewClass("iup handle")
- iupNewClass("iup widget")
+ iup.NewClass("iup handle")
+ iup.NewClass("iup widget")
*/
static int NewClass(lua_State *L)
{
@@ -430,10 +438,10 @@ static int NewClass(lua_State *L)
return 0;
}
-/* iupSetClass(t, class_name)
+/* iup.SetClass(t, class_name)
Calls:
- iupSetClass(handle, "iup handle") --Used only in RegisterHandle and WIDGET.constructor
- iupSetClass(object, "iup widget") --Used whenever a new control class is created.
+ iup.SetClass(handle, "iup handle") --Used only in iup.RegisterHandle and WIDGET.constructor
+ iup.SetClass(object, "iup widget") --Used whenever a new control class is created.
*/
static int SetClass(lua_State *L)
{
@@ -447,7 +455,7 @@ static int SetClass(lua_State *L)
return 0;
}
-/* class_name = iupGetClass(t) */
+/* class_name = iup.GetClass(t) */
static int GetClass(lua_State *L)
{
if (lua_istable(L, 1) || lua_isuserdata(L, 1))
@@ -464,9 +472,9 @@ static int GetClass(lua_State *L)
return 1;
}
-/* iupSetMethod(class_name, method, function)
+/* iup.SetMethod(class_name, method, function)
For ex:
- iupSetMethod("iup handle", "__index", ihandle_gettable)
+ iup.SetMethod("iup handle", "__index", ihandle_gettable)
*/
static int SetMethod(lua_State *L)
{
@@ -507,7 +515,7 @@ static int ihandle_compare(lua_State *L)
/*************************************/
/* table <-> ihandle */
-/* local object = iupGetWidget(handle) */
+/* local object = iup.GetWidget(handle) */
static int GetWidget(lua_State *L)
{
/* Pushes a table that is associanted with an ihandle */
@@ -521,7 +529,7 @@ static int GetWidget(lua_State *L)
return 1;
}
-/* iupSetWidget(handle, object) */
+/* iup.SetWidget(handle, object) */
static int SetWidget(lua_State *L)
{
/* Saves the object table reference as an attribute,
@@ -540,18 +548,9 @@ static int SetWidget(lua_State *L)
/*************************************/
/* registration */
-void iuplua_changeEnv(lua_State *L)
+void iuplua_get_env(lua_State *L)
{
- /* Replaces global environment */
- lua_pushvalue(L, LUA_GLOBALSINDEX);
lua_getglobal(L, "iup");
- lua_replace(L, LUA_GLOBALSINDEX);
-}
-
-void iuplua_returnEnv(lua_State *L)
-{
- /* reestablishes global environment */
- lua_replace(L, LUA_GLOBALSINDEX);
}
int iuplua_opencall_internal(lua_State * L)
@@ -568,16 +567,18 @@ int iuplua_opencall_internal(lua_State * L)
return ret;
}
+/* iup[name] = func */
void iuplua_register(lua_State *L, lua_CFunction func, const char* name)
{
lua_pushcfunction(L, func);
- lua_setglobal(L, name);
+ lua_setfield(L, -2, name);
}
+/* iup[name] = s */
void iuplua_regstring(lua_State *L, const char* s, const char* name)
{
lua_pushstring(L, s);
- lua_setglobal(L, name);
+ lua_setfield(L, -2, name);
}
/*****************************************************************************
@@ -675,7 +676,8 @@ static int GetFromC(lua_State *L)
static void register_key(char *name, int code, void* user_data)
{
lua_State *L = (lua_State*)user_data;
- lua_pushnumber(L, code); lua_setglobal(L, name);
+ lua_pushnumber(L, code);
+ lua_setfield(L, -2, name);
}
/* from iupkey.c */
@@ -740,29 +742,23 @@ static void setinfo (lua_State *L)
{
/* table "iup" is at the stack */
- lua_pushliteral (L, "_COPYRIGHT");
lua_pushliteral (L, IUP_COPYRIGHT);
- lua_settable (L, -3);
+ lua_setfield(L, -2, "_COPYRIGHT");
- lua_pushliteral (L, "_DESCRIPTION");
lua_pushliteral (L, IUP_DESCRIPTION);
- lua_settable (L, -3);
+ lua_setfield(L, -2, "_DESCRIPTION");
- lua_pushliteral (L, "_NAME");
lua_pushliteral (L, IUP_NAME);
- lua_settable (L, -3);
+ lua_setfield(L, -2, "_NAME");
- lua_pushliteral (L, "_VERSION");
lua_pushstring (L, IupVersion());
- lua_settable (L, -3);
+ lua_setfield(L, -2, "_VERSION");
- lua_pushliteral (L, "_VERSION_DATE");
lua_pushliteral (L, IUP_VERSION_DATE);
- lua_settable (L, -3);
+ lua_setfield(L, -2, "_VERSION_DATE");
- lua_pushliteral (L, "_VERSION_NUMBER");
lua_pushinteger (L, IupVersionNumber());
- lua_settable (L, -3);
+ lua_setfield(L, -2, "_VERSION_NUMBER");
}
int iuplua_open(lua_State * L)
@@ -775,13 +771,13 @@ int iuplua_open(lua_State * L)
{"Close", iuplua_close},
{"SetIdle", SetIdle},
{"GetFromC", GetFromC},
- {"iupGetWidget", GetWidget},
- {"iupSetWidget", SetWidget},
- {"iupNewClass", NewClass},
- {"iupSetClass", SetClass},
- {"iupGetClass", GetClass},
- {"iupSetMethod", SetMethod},
- {"iupSetCallback", SetCallback},
+ {"GetWidget", GetWidget},
+ {"SetWidget", SetWidget},
+ {"NewClass", NewClass},
+ {"SetClass", SetClass},
+ {"GetClass", GetClass},
+ {"SetMethod", SetMethod},
+ {"SetCallback", SetCallback},
{"ihandle_compare", ihandle_compare},
{"ihandle_tostring", ihandle_tostring},
{NULL, NULL},
@@ -793,35 +789,22 @@ int iuplua_open(lua_State * L)
ret = lua_tointeger(L, -1); /* retrieve IupOpen return value */
lua_pop(L, -1);
- /* Creating global namespace iup */
- lua_newtable(L);
- lua_setglobal(L, "iup");
-
/* Registers functions in iup namespace */
- luaL_openlib(L, "iup", funcs, 0);
+ luaL_register(L, "iup", funcs); /* leave "iup" table at the top of the stack */
iupluaapi_open(L);
/* set version info */
setinfo(L);
/* register if IupOpen was called here or from outside IupLua */
- lua_pushliteral (L, "_IUPOPEN_CALL");
+ /* iup._IUPOPEN_CALL = EXTERNAL|INTERNAL */
if (ret == IUP_OPENED) lua_pushliteral (L, "EXTERNAL");
else lua_pushliteral (L, "INTERNAL");
- lua_settable (L, -3);
+ lua_setfield(L, -2, "_IUPOPEN_CALL");
- /* used by Idle */
+ /* used by Idle in Lua */
IupSetGlobal("_IUP_LUA_DEFAULT_STATE", (char *) L);
- /* Creating new environment with metamethod __index
- * (so that normal Lua functions will be found while GLOBALSINDEX is the "iup" environment) */
- iuplua_dostring(L, "iup._G = _G\
- setmetatable(iup, {__index = iup._G})", "iuplua_setmetatable_global");
-
- /* Changing environment to iup
- * (all created variables and functions from now on will be put in "iup" environment) */
- iuplua_changeEnv(L);
-
#include "clua/iuplua.clua"
#include "clua/constants.clua"
@@ -857,6 +840,7 @@ int iuplua_open(lua_State * L)
iupzboxlua_open(L);
iuptimerlua_open(L);
iupsboxlua_open(L);
+ iupsplitlua_open(L);
iupspinlua_open(L);
iupspinboxlua_open(L);
iupcboxlua_open(L);
@@ -875,8 +859,6 @@ int iuplua_open(lua_State * L)
iuptreelua_open(L);
iupclipboardlua_open(L);
- iuplua_returnEnv(L);
-
return 0; /* nothing in stack */
}
diff --git a/iup/srclua5/iuplua.lua b/iup/srclua5/iuplua.lua
index a88bf5d..6cd64b4 100755
--- a/iup/srclua5/iuplua.lua
+++ b/iup/srclua5/iuplua.lua
@@ -4,17 +4,17 @@
-- Callback handler
------------------------------------------------------------------------------
-callbacks = {}
+iup.callbacks = {}
-function iupCallMethod(name, ...)
- local handle = ... -- always the handle
+function iup.CallMethod(name, ...)
+ local handle = arg[1] -- always the handle
local func = handle[name]
if (not func) then
return
end
if type(func) == "function" then
- return func(...)
+ return func(unpack(arg))
elseif type(func) == "string" then
local temp = self
self = handle
@@ -26,9 +26,9 @@ function iupCallMethod(name, ...)
end
end
-function RegisterCallback(name, func, type)
- if not callbacks[name] then callbacks[name] = {} end
- local cb = callbacks[name]
+function iup.RegisterCallback(name, func, type)
+ if not iup.callbacks[name] then iup.callbacks[name] = {} end
+ local cb = iup.callbacks[name]
if type then
cb[type] = func
else
@@ -52,24 +52,24 @@ local widget_gettable = function(object, index)
end
end
-iupNewClass("iup widget")
-iupSetMethod("iup widget", "__index", widget_gettable)
+iup.NewClass("iup widget")
+iup.SetMethod("iup widget", "__index", widget_gettable)
local ihandle_gettable = function(handle, index)
local INDEX = string.upper(index)
- if (callbacks[INDEX]) then
- local object = iupGetWidget(handle)
+ if (iup.callbacks[INDEX]) then
+ local object = iup.GetWidget(handle)
if (not object or type(object)~="table") then error("invalid iup handle") end
return object[index]
else
- local value = GetAttribute(handle, INDEX)
+ local value = iup.GetAttribute(handle, INDEX)
if (not value) then
- local object = iupGetWidget(handle)
+ local object = iup.GetWidget(handle)
if (not object or type(object)~="table") then error("invalid iup handle") end
return object[index]
- elseif type(value)== "number" or type(value) == "string" then
- local ih = GetHandle(value)
+ elseif type(value)== "number" or type(value) == "string" then
+ local ih = iup.GetHandle(value)
if ih then return ih
else return value end
else
@@ -81,24 +81,24 @@ end
local ihandle_settable = function(handle, index, value)
local ti = type(index)
local tv = type(value)
- local object = iupGetWidget(handle)
+ local object = iup.GetWidget(handle)
if (not object or type(object)~="table") then error("invalid iup handle") end
if ti == "number" or ti == "string" then -- check if a valid C name
local INDEX = string.upper(index)
- local cb = callbacks[INDEX]
+ local cb = iup.callbacks[INDEX]
if (cb) then -- if a callback name
local func = cb[1]
if (not func) then
- func = cb[GetClassName(handle)]
+ func = cb[iup.GetClassName(handle)]
end
- iupSetCallback(handle, INDEX, func, value) -- register the pre-defined C callback
+ iup.SetCallback(handle, INDEX, func, value) -- register the pre-defined C callback
object[index] = value -- store also in Lua
- elseif iupGetClass(value) == "iup handle" then -- if a iup handle
- local name = ihandle_setname(value)
- SetAttribute(handle, INDEX, name)
+ elseif iup.GetClass(value) == "iup handle" then -- if a iup handle
+ local name = iup.SetHandleName(value)
+ iup.SetAttribute(handle, INDEX, name)
object[index] = nil -- if there was something in Lua remove it
elseif tv == "string" or tv == "number" or tv == "nil" then -- if a common value
- SetAttribute(handle, INDEX, value)
+ iup.SetAttribute(handle, INDEX, value)
object[index] = nil -- if there was something in Lua remove it
else
object[index] = value -- store also in Lua
@@ -108,38 +108,39 @@ local ihandle_settable = function(handle, index, value)
end
end
-iupNewClass("iup handle")
-iupSetMethod("iup handle", "__index", ihandle_gettable)
-iupSetMethod("iup handle", "__newindex", ihandle_settable)
-iupSetMethod("iup handle", "__tostring", ihandle_tostring)
-iupSetMethod("iup handle", "__eq", ihandle_compare) -- implemented in C
+iup.NewClass("iup handle")
+iup.SetMethod("iup handle", "__index", ihandle_gettable)
+iup.SetMethod("iup handle", "__newindex", ihandle_settable)
+iup.SetMethod("iup handle", "__tostring", iup.ihandle_tostring) -- implemented in C
+iup.SetMethod("iup handle", "__eq", iup.ihandle_compare) -- implemented in C
------------------------------------------------------------------------------
-- Utilities
------------------------------------------------------------------------------
-function ihandle_setname(v) -- used also by radio and zbox
- local name = GetName(v)
+function iup.SetHandleName(v) -- used also by radio and zbox
+ local name = iup.GetName(v)
if not name then
local autoname = string.format("_IUPLUA_NAME(%s)", tostring(v))
- SetHandle(autoname, v)
+ iup.SetHandle(autoname, v)
return autoname
end
return name
end
-function iupRegisterWidget(ctrl) -- called by all the controls initialization functions
- iup[ctrl.nick] = function(arg)
- return ctrl:constructor(arg)
+function iup.RegisterWidget(ctrl) -- called by all the controls initialization functions
+ iup[ctrl.nick] = function(param)
+ if (not ctrl.constructor) then print(ctrl.nick) end
+ return ctrl:constructor(param)
end
end
-function RegisterHandle(handle, typename)
+function iup.RegisterHandle(handle, typename)
- iupSetClass(handle, "iup handle")
+ iup.SetClass(handle, "iup handle")
- local object = iupGetWidget(handle)
+ local object = iup.GetWidget(handle)
if not object then
local class = iup[string.upper(typename)]
@@ -148,8 +149,8 @@ function RegisterHandle(handle, typename)
end
local object = { parent=class, handle=handle }
- iupSetClass(object, "iup widget")
- iupSetWidget(handle, object)
+ iup.SetClass(object, "iup widget")
+ iup.SetWidget(handle, object)
end
return handle
@@ -159,39 +160,39 @@ end
-- Widget class (top class)
------------------------------------------------------------------------------
-WIDGET = {
+iup.WIDGET = {
callback = {}
}
-function WIDGET.show(object)
- Show(object.handle)
+function iup.WIDGET.show(object)
+ iup.Show(object.handle)
end
-function WIDGET.hide(object)
- Hide(object.handle)
+function iup.WIDGET.hide(object)
+ iup.Hide(object.handle)
end
-function WIDGET.map(object)
- Map(object.handle)
+function iup.WIDGET.map(object)
+ iup.Map(object.handle)
end
-function WIDGET.constructor(class, arg)
- local handle = class:createElement(arg)
+function iup.WIDGET.constructor(class, param)
+ local handle = class:createElement(param)
local object = {
parent = class,
handle = handle
}
- iupSetClass(handle, "iup handle")
- iupSetClass(object, "iup widget")
- iupSetWidget(handle, object)
- object:setAttributes(arg)
+ iup.SetClass(handle, "iup handle")
+ iup.SetClass(object, "iup widget")
+ iup.SetWidget(handle, object)
+ object:setAttributes(param)
return handle
end
-function WIDGET.setAttributes(object, arg)
+function iup.WIDGET.setAttributes(object, param)
local handle = object.handle
- for i,v in pairs(arg) do
- if type(i) == "number" and iupGetClass(v) == "iup handle" then
+ for i,v in pairs(param) do
+ if type(i) == "number" and iup.GetClass(v) == "iup handle" then
-- We should not set this or other elements (such as iuptext)
-- will erroneosly inherit it
rawset(object, i, v)
@@ -204,63 +205,63 @@ end
-- all the objects in the hierarchy must be "iup widget"
-- Must repeat this call for every new widget
-iupSetClass(WIDGET, "iup widget")
+iup.SetClass(iup.WIDGET, "iup widget")
------------------------------------------------------------------------------
-- Box class (inherits from WIDGET)
------------------------------------------------------------------------------
-BOX = {
- parent = WIDGET
+iup.BOX = {
+ parent = iup.WIDGET
}
-function BOX.setAttributes(object, arg)
+function iup.BOX.setAttributes(object, param)
local handle = rawget(object, "handle")
- local n = #arg
+ local n = #param
for i = 1, n do
- if iupGetClass(arg[i]) == "iup handle" then
- Append(handle, arg[i])
+ if iup.GetClass(param[i]) == "iup handle" then
+ iup.Append(handle, param[i])
end
end
- WIDGET.setAttributes(object, arg)
+ iup.WIDGET.setAttributes(object, param)
end
-iupSetClass(BOX, "iup widget")
+iup.SetClass(iup.BOX, "iup widget")
------------------------------------------------------------------------------
-- Compatibility functions.
------------------------------------------------------------------------------
-error_message_popup = nil
+iup.error_message_popup = nil
-function _ERRORMESSAGE(err,traceback)
+function iup._ERRORMESSAGE(err,traceback)
err = err..(traceback or "")
- if (error_message_popup) then
- error_message_popup.value = err
+ if (iup.error_message_popup) then
+ iup.error_message_popup.value = err
else
- local bt = button{title="Ok", size="60", action="error_message_popup = nil; return iup.CLOSE"}
- local ml = multiline{expand="YES", readonly="YES", value=err, size="300x150"}
- local vb = vbox{ml, bt; alignment="ACENTER", margin="10x10", gap="10"}
- local dg = dialog{vb; title="Error Message",defaultesc=bt,defaultenter=bt,startfocus=bt}
- error_message_popup = ml
+ local bt = iup.button{title="Ok", size="60", action="iup.error_message_popup = nil; return iup.CLOSE"}
+ local ml = iup.multiline{expand="YES", readonly="YES", value=err, size="300x150"}
+ local vb = iup.vbox{ml, bt; alignment="ACENTER", margin="10x10", gap="10"}
+ local dg = iup.dialog{vb; title="Error Message",defaultesc=bt,defaultenter=bt,startfocus=bt}
+ iup.error_message_popup = ml
dg:popup(CENTER, CENTER)
dg:destroy()
- error_message_popup = nil
+ iup.error_message_popup = nil
end
end
-pack = function (...) return {...} end
+iup.pack = function (...) return arg end
-function protectedcall_(f, err)
+function iup.protectedcall_(f, err)
if not f then
- _ERRORMESSAGE(err)
+ iup._ERRORMESSAGE(err)
return
end
- local ret = pack(pcall(f))
+ local ret = iup.pack(pcall(f))
if not ret[1] then
- _ERRORMESSAGE(ret[2])
+ iup._ERRORMESSAGE(ret[2])
return
else
table.remove(ret, 1)
@@ -268,10 +269,10 @@ function protectedcall_(f, err)
end
end
-function dostring(s) return protectedcall_(loadstring(s)) end
-function dofile(f) return protectedcall_(loadfile(f)) end
+function iup.dostring(s) return iup.protectedcall_(loadstring(s)) end
+function iup.dofile(f) return iup.protectedcall_(loadfile(f)) end
-function RGB(r, g, b)
+function iup.RGB(r, g, b)
return string.format("%d %d %d", 255*r, 255*g, 255*b)
end
diff --git a/iup/srclua5/iuplua5.def b/iup/srclua5/iuplua5.def
index 78b2a6f..667f81d 100755
--- a/iup/srclua5/iuplua5.def
+++ b/iup/srclua5/iuplua5.def
@@ -8,13 +8,12 @@ EXPORTS
iuplua_call
iuplua_call_rs
iuplua_call_raw
+ iuplua_get_env
iuplua_pushihandle
iuplua_pushihandle_raw
iuplua_dofile
iuplua_dostring
iupkey_open
- iuplua_returnEnv
- iuplua_changeEnv
iuplua_opencall_internal
luaopen_iuplua
luaopen_iuplua51
diff --git a/iup/srclua5/iuplua_api.c b/iup/srclua5/iuplua_api.c
index 8673442..adf5383 100755
--- a/iup/srclua5/iuplua_api.c
+++ b/iup/srclua5/iuplua_api.c
@@ -99,7 +99,7 @@ static int GetAttribute (lua_State *L)
Ihandle *ih = iuplua_checkihandle(L,1);
const char *name = luaL_checkstring(L,2);
const char *value = IupGetAttribute(ih, name);
- if (!value || iupAttribIsInternal(name))
+ if (!value || iupATTRIB_ISINTERNAL(name))
lua_pushnil(L);
else
{
@@ -313,6 +313,12 @@ static int LoopStep(lua_State *L)
return 1;
}
+static int LoopStepWait(lua_State *L)
+{
+ lua_pushnumber(L,IupLoopStepWait());
+ return 1;
+}
+
static int ExitLoop(lua_State *L)
{
(void)L;
@@ -774,7 +780,7 @@ static int UnMapFont (lua_State *L)
****************************************************************************/
-int iupluaapi_open(lua_State * L)
+void iupluaapi_open(lua_State * L)
{
struct luaL_reg funcs[] = {
{"Append", Append},
@@ -806,6 +812,7 @@ int iupluaapi_open(lua_State * L)
{"Load", Load},
{"LoadBuffer", LoadBuffer},
{"LoopStep", LoopStep},
+ {"LoopStepWait", LoopStepWait},
{"ExitLoop", ExitLoop},
{"MainLoop", MainLoop},
{"MainLoopLevel", MainLoopLevel},
@@ -867,8 +874,6 @@ int iupluaapi_open(lua_State * L)
{NULL, NULL},
};
- /* Registers functions in iup namespace */
- luaL_openlib(L, NULL, funcs, 0);
-
- return 0; /* nothing in stack */
+ /* "iup" table is at the top of the stack */
+ luaL_register(L, NULL, funcs);
}
diff --git a/iup/srclua5/iuplua_controls.c b/iup/srclua5/iuplua_controls.c
index bd961bf..22992f4 100755
--- a/iup/srclua5/iuplua_controls.c
+++ b/iup/srclua5/iuplua_controls.c
@@ -20,7 +20,7 @@ int iupcontrolslua_open(lua_State * L)
if (iuplua_opencall_internal(L))
IupControlsOpen();
- iuplua_changeEnv(L);
+ iuplua_get_env(L);
iupgaugelua_open(L);
iupmatrixlua_open(L);
@@ -30,8 +30,6 @@ int iupcontrolslua_open(lua_State * L)
iupcellslua_open(L);
iupcolorbarlua_open(L);
- iuplua_returnEnv(L);
-
return 0;
}
diff --git a/iup/srclua5/iuplua_glcanvas.c b/iup/srclua5/iuplua_glcanvas.c
index c50ba8f..8a13616 100755
--- a/iup/srclua5/iuplua_glcanvas.c
+++ b/iup/srclua5/iuplua_glcanvas.c
@@ -29,11 +29,10 @@ static int GLMakeCurrent(lua_State *L)
{
IupGLMakeCurrent(iuplua_checkihandle(L,1));
- iuplua_changeEnv(L);
+ iuplua_get_env(L);
iuplua_regstring(L, (const char*)glGetString(GL_VENDOR), "GL_VENDOR");
iuplua_regstring(L, (const char*)glGetString(GL_RENDERER), "GL_RENDERER");
iuplua_regstring(L, (const char*)glGetString(GL_VERSION), "GL_VERSION");
- iuplua_returnEnv(L);
return 0;
}
diff --git a/iup/srclua5/iuplua_im.c b/iup/srclua5/iuplua_im.c
index b700e1a..0d9005d 100755
--- a/iup/srclua5/iuplua_im.c
+++ b/iup/srclua5/iuplua_im.c
@@ -34,10 +34,9 @@ static int LoadImage(lua_State *L)
int iupimlua_open(lua_State *L)
{
- iuplua_changeEnv(L);
+ iuplua_get_env(L);
iuplua_register(L, LoadImage, "LoadImage");
iuplua_register(L, SaveImage, "SaveImage");
- iuplua_returnEnv(L);
return 0; /* nothing in stack */
}
diff --git a/iup/srclua5/iuplua_imglib.c b/iup/srclua5/iuplua_imglib.c
index bece6d5..9eb1123 100755
--- a/iup/srclua5/iuplua_imglib.c
+++ b/iup/srclua5/iuplua_imglib.c
@@ -27,9 +27,8 @@ static int iupluaimglib_open (lua_State *L)
{
IupImageLibOpen();
- iuplua_changeEnv(L);
+ iuplua_get_env(L);
iuplua_register(L, imagelibopen, "ImageLibOpen");
- iuplua_returnEnv(L);
return 0; /* nothing in stack */
}
diff --git a/iup/srclua5/iuplua_pplot.c b/iup/srclua5/iuplua_pplot.c
index 08b04bd..21b5090 100755
--- a/iup/srclua5/iuplua_pplot.c
+++ b/iup/srclua5/iuplua_pplot.c
@@ -140,9 +140,8 @@ int iup_pplotlua_open(lua_State * L)
if (iuplua_opencall_internal(L))
IupPPlotOpen();
- iuplua_changeEnv(L);
+ iuplua_get_env(L);
iuppplotlua_open(L);
- iuplua_returnEnv(L);
return 0;
}
diff --git a/iup/srclua5/label.lua b/iup/srclua5/label.lua
index 11894a6..a62165c 100755
--- a/iup/srclua5/label.lua
+++ b/iup/srclua5/label.lua
@@ -3,14 +3,14 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "label",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "S",
callback = {}
}
-function ctrl.createElement(class, arg)
- return Label(arg.title)
+function ctrl.createElement(class, param)
+ return iup.Label(param.title)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/list.lua b/iup/srclua5/list.lua
index 5c927f2..f0dcc2a 100755
--- a/iup/srclua5/list.lua
+++ b/iup/srclua5/list.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "list",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "-",
callback = {
action = "snn",
@@ -14,9 +14,9 @@ local ctrl = {
}
}
-function ctrl.createElement(class, arg)
- return List()
+function ctrl.createElement(class, param)
+ return iup.List()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/matrix.lua b/iup/srclua5/matrix.lua
index 81aa732..ca52048 100755
--- a/iup/srclua5/matrix.lua
+++ b/iup/srclua5/matrix.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "matrix",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "-",
callback = {
action_cb = "nnnns",
@@ -30,17 +30,17 @@ local ctrl = {
extrafuncs = 1,
}
-function ctrl.createElement(class, arg)
- return Matrix(arg.action)
+function ctrl.createElement(class, param)
+ return iup.Matrix(param.action)
end
function ctrl.setcell(handle, l, c, val)
- SetAttribute(handle,l..":"..c,val)
+ iup.SetAttribute(handle,l..":"..c,val)
end
function ctrl.getcell(handle, l, c)
- return GetAttribute(handle,l..":"..c)
+ return iup.GetAttribute(handle,l..":"..c)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/menu.lua b/iup/srclua5/menu.lua
index 89cd241..70be236 100755
--- a/iup/srclua5/menu.lua
+++ b/iup/srclua5/menu.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "menu",
- parent = BOX,
+ parent = iup.BOX,
creation = "-",
callback = {
open_cb = "",
@@ -12,44 +12,44 @@ local ctrl = {
}
function ctrl.popup(handle, x, y)
- Popup(handle, x, y)
+ iup.Popup(handle, x, y)
end
function ctrl.append(handle, elem)
- Append(handle, elem)
+ iup.Append(handle, elem)
end
-function ctrl.createElement(class, arg)
- local n = #arg
+function ctrl.createElement(class, param)
+ local n = #param
for i=1,n do
- if type(arg[i]) == "table" then
- itemarg = {}
- for u,v in pairs(arg[i]) do
+ if type(param[i]) == "table" then
+ local itemarg = {}
+ for u,v in pairs(param[i]) do
if type(u) ~= "number" then
itemarg[u] = v
end
end
- if type(arg[i][1]) == "string" and (type(arg[i][2]) == "function" or type(arg[i][2]) == "string") then
- itemarg.title = arg[i][1]
- itemarg.action = arg[i][2]
- arg[i] = item(itemarg)
- elseif type(arg[i][1]) == "string" and type(arg[i][2]) == "userdata" then
- itemarg[1] = arg[i][2]
- itemarg.title = arg[i][1]
- arg[i] = submenu(itemarg)
+ if type(param[i][1]) == "string" and (type(param[i][2]) == "function" or type(param[i][2]) == "string") then
+ itemarg.title = param[i][1]
+ itemarg.action = param[i][2]
+ param[i] = iup.item(itemarg)
+ elseif type(param[i][1]) == "string" and type(param[i][2]) == "userdata" then
+ itemarg[1] = param[i][2]
+ itemarg.title = param[i][1]
+ param[i] = iup.submenu(itemarg)
end
end
end
- return Menu()
+ return iup.Menu()
end
function ctrl.showxy(handle, x, y)
- return ShowXY(handle, x, y)
+ return iup.ShowXY(handle, x, y)
end
function ctrl.destroy(handle)
- return Destroy(handle)
+ return iup.Destroy(handle)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/messagedlg.lua b/iup/srclua5/messagedlg.lua
index e81eede..2dcb73d 100755
--- a/iup/srclua5/messagedlg.lua
+++ b/iup/srclua5/messagedlg.lua
@@ -3,24 +3,24 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "messagedlg",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
funcname = "MessageDlg",
callback = {}
}
function ctrl.popup(handle, x, y)
- Popup(handle,x,y)
+ iup.Popup(handle,x,y)
end
function ctrl.destroy(handle)
- return Destroy(handle)
+ return iup.Destroy(handle)
end
-function ctrl.createElement(class, arg)
- return MessageDlg()
+function ctrl.createElement(class, param)
+ return iup.MessageDlg()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/multiline.lua b/iup/srclua5/multiline.lua
index 9ae766e..a20ba83 100755
--- a/iup/srclua5/multiline.lua
+++ b/iup/srclua5/multiline.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "multiline",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "-",
callback = {
action = "ns",
@@ -11,9 +11,9 @@ local ctrl = {
funcname = "MultiLine",
}
-function ctrl.createElement(class, arg)
- return MultiLine()
+function ctrl.createElement(class, param)
+ return iup.MultiLine()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/normalizer.lua b/iup/srclua5/normalizer.lua
index 201aab0..293e460 100755
--- a/iup/srclua5/normalizer.lua
+++ b/iup/srclua5/normalizer.lua
@@ -4,25 +4,25 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "normalizer",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "-",
callback = {}
}
-function ctrl.setAttributes(object, arg)
+function ctrl.setAttributes(object, param)
local handle = rawget(object, "handle")
- local n = #arg
+ local n = #param
for i = 1, n do
- if iupGetClass(arg[i]) == "iup handle" then
- object.addcontrol = arg[i]
+ if iup.GetClass(param[i]) == "iup handle" then
+ object.addcontrol = param[i]
end
end
- WIDGET.setAttributes(object, arg)
+ iup.WIDGET.setAttributes(object, param)
end
-function ctrl.createElement(class, arg)
- return Normalizer()
+function ctrl.createElement(class, param)
+ return iup.Normalizer()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/olecontrol.lua b/iup/srclua5/olecontrol.lua
index 902977b..ab7afd5 100755
--- a/iup/srclua5/olecontrol.lua
+++ b/iup/srclua5/olecontrol.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "olecontrol",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "s",
funcname = "OleControl",
callback = {},
@@ -14,9 +14,8 @@ int iupolelua_open(lua_State* L)
if (iuplua_opencall_internal(L))
IupOleControlOpen();
- iuplua_changeEnv(L);
+ iuplua_get_env(L);
iupolecontrollua_open(L);
- iuplua_returnEnv(L);
return 0;
}
@@ -35,8 +34,8 @@ int luaopen_iupluaole51(lua_State* L)
]]
}
-function ctrl.createElement(class, arg)
- return OleControl(arg[1])
+function ctrl.createElement(class, param)
+ return iup.OleControl(param[1])
end
function ctrl.CreateLuaCOM(handle)
@@ -50,5 +49,5 @@ function ctrl.CreateLuaCOM(handle)
end
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/pplot.lua b/iup/srclua5/pplot.lua
index 5d6a2f4..eb79876 100755
--- a/iup/srclua5/pplot.lua
+++ b/iup/srclua5/pplot.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "pplot",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
funcname = "PPlot",
callback = {
@@ -23,9 +23,9 @@ local ctrl = {
extrafuncs = 1,
}
-function ctrl.createElement(class, arg)
- return PPlot(arg.action)
+function ctrl.createElement(class, param)
+ return iup.PPlot(param.action)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/progressbar.lua b/iup/srclua5/progressbar.lua
index 16b4a09..e591e49 100755
--- a/iup/srclua5/progressbar.lua
+++ b/iup/srclua5/progressbar.lua
@@ -3,15 +3,15 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "progressbar",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
funcname = "ProgressBar",
callback = {}
}
-function ctrl.createElement(class, arg)
- return ProgressBar()
+function ctrl.createElement(class, param)
+ return iup.ProgressBar()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/radio.lua b/iup/srclua5/radio.lua
index 1cdd3a6..7af6540 100755
--- a/iup/srclua5/radio.lua
+++ b/iup/srclua5/radio.lua
@@ -3,31 +3,31 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "radio",
- parent = WIDGET,
- creation = "i",
+ parent = iup.WIDGET,
+ creation = "I",
callback = {}
}
-function ctrl.CreateChildrenNames(obj)
+function ctrl.SetChildrenNames(obj)
if obj then
- if obj.parent.parent == BOX then
+ if obj.parent.parent == iup.BOX then
local i = 1
while obj[i] do
- ctrl.CreateChildrenNames (obj[i])
+ ctrl.SetChildrenNames (obj[i])
i = i+1
end
- elseif obj.parent == IUPFRAME then
- ctrl.CreateChildrenNames (obj[1])
+ elseif obj.parent == iup.FRAME then
+ ctrl.SetChildrenNames (obj[1])
else
- ihandle_setname(obj)
+ iup.SetHandleName(obj)
end
end
end
-function ctrl.createElement(class, arg)
- ctrl.CreateChildrenNames(arg[1])
- return Radio(arg[1])
+function ctrl.createElement(class, param)
+ ctrl.SetChildrenNames(param[1])
+ return iup.Radio(param[1])
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/sbox.lua b/iup/srclua5/sbox.lua
index 9ee63ba..7bc7bb1 100755
--- a/iup/srclua5/sbox.lua
+++ b/iup/srclua5/sbox.lua
@@ -2,15 +2,15 @@
-- Sbox class
------------------------------------------------------------------------------
local ctrl = {
- nick = "sbox",
- parent = WIDGET,
- creation = "i",
+ nick = "sbox",
+ parent = iup.WIDGET,
+ creation = "I",
callback = {}
}
-function ctrl.createElement(class, arg)
- return Sbox(arg[1])
+function ctrl.createElement(class, param)
+ return iup.Sbox(param[1])
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/separator.lua b/iup/srclua5/separator.lua
index 1841d6a..bc86422 100755
--- a/iup/srclua5/separator.lua
+++ b/iup/srclua5/separator.lua
@@ -3,14 +3,14 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "separator",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
callback = {}
}
-function ctrl.createElement(class, arg)
- return Separator()
+function ctrl.createElement(class, param)
+ return iup.Separator()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/spin.lua b/iup/srclua5/spin.lua
index b6e2044..5118a0e 100755
--- a/iup/srclua5/spin.lua
+++ b/iup/srclua5/spin.lua
@@ -3,16 +3,16 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "spin",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
callback = {
spin_cb = "n",
},
}
-function ctrl.createElement(class, arg)
- return Spin(arg.action)
+function ctrl.createElement(class, param)
+ return iup.Spin(param.action)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/spinbox.lua b/iup/srclua5/spinbox.lua
index c671e6a..3b6c7f1 100755
--- a/iup/srclua5/spinbox.lua
+++ b/iup/srclua5/spinbox.lua
@@ -3,16 +3,16 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "spinbox",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "i",
callback = {
spin_cb = "n",
},
}
-function ctrl.createElement(class, arg)
- return Spinbox(arg[1])
+function ctrl.createElement(class, param)
+ return iup.Spinbox(param[1])
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/split.lua b/iup/srclua5/split.lua
new file mode 100644
index 0000000..7b1bc2b
--- /dev/null
+++ b/iup/srclua5/split.lua
@@ -0,0 +1,16 @@
+------------------------------------------------------------------------------
+-- Split class
+------------------------------------------------------------------------------
+local ctrl = {
+ nick = "split",
+ parent = iup.WIDGET,
+ creation = "II",
+ callback = {}
+}
+
+function ctrl.createElement(class, param)
+ return iup.Split(param[1], param[2])
+end
+
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/submenu.lua b/iup/srclua5/submenu.lua
index 5dc76d4..faba80e 100755
--- a/iup/srclua5/submenu.lua
+++ b/iup/srclua5/submenu.lua
@@ -3,17 +3,17 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "submenu",
- parent = WIDGET,
- creation = "Si",
+ parent = iup.WIDGET,
+ creation = "SI",
callback = {
-- open_cb = "", -- already registered by the menu
-- menuclose_cb = "", -- already registered by the menu
}
}
-function ctrl.createElement(class, arg)
- return Submenu(arg.title, arg[1])
+function ctrl.createElement(class, param)
+ return iup.Submenu(param.title, param[1])
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/tabs.lua b/iup/srclua5/tabs.lua
index 3dc69bb..249caa9 100755
--- a/iup/srclua5/tabs.lua
+++ b/iup/srclua5/tabs.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "tabs",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "v",
callback = {
tabchange_cb = "ii",
@@ -23,9 +23,9 @@ static int Tabsv(lua_State *L)
]],
}
-function ctrl.createElement(class, arg)
- return Tabsv(arg)
+function ctrl.createElement(class, param)
+ return iup.Tabsv(param)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/text.lua b/iup/srclua5/text.lua
index e01dab5..5064e07 100755
--- a/iup/srclua5/text.lua
+++ b/iup/srclua5/text.lua
@@ -3,7 +3,7 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "text",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "-",
callback = {
action = "ns",
@@ -12,9 +12,9 @@ local ctrl = {
}
}
-function ctrl.createElement(class, arg)
- return Text()
+function ctrl.createElement(class, param)
+ return iup.Text()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/timer.lua b/iup/srclua5/timer.lua
index 53cda70..d9e3914 100755
--- a/iup/srclua5/timer.lua
+++ b/iup/srclua5/timer.lua
@@ -3,16 +3,16 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "timer",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
callback = {
action_cb = "",
},
}
-function ctrl.createElement(class, arg)
- return Timer()
+function ctrl.createElement(class, param)
+ return iup.Timer()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/toggle.lua b/iup/srclua5/toggle.lua
index da9380b..7f65c74 100755
--- a/iup/srclua5/toggle.lua
+++ b/iup/srclua5/toggle.lua
@@ -3,16 +3,16 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "toggle",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "S-",
callback = {
action = "n",
}
}
-function ctrl.createElement(class, arg)
- return Toggle(arg.title)
+function ctrl.createElement(class, param)
+ return iup.Toggle(param.title)
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/tree.lua b/iup/srclua5/tree.lua
index bd8daf7..5bd21c4 100755
--- a/iup/srclua5/tree.lua
+++ b/iup/srclua5/tree.lua
@@ -3,16 +3,16 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "tree",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
callback = {
selection_cb = "nn",
multiselection_cb = "nn", -- fake definition to be replaced by treefuncs module
+ multiunselection_cb = "nn", -- fake definition to be replaced by treefuncs module
branchopen_cb = "n",
branchclose_cb = "n",
executeleaf_cb = "n",
- renamenode_cb = "ns",
- noderemoved_cb = "ns", -- fake definition to be replaced by treefuncs module
+ noderemoved_cb = "s", -- fake definition to be replaced by treefuncs module
rename_cb = "ns",
showrename_cb = "n",
rightclick_cb = "n",
@@ -21,56 +21,95 @@ local ctrl = {
extrafuncs = 1,
}
-local function TreeSetAttributeHandle(handle, name, value)
- if iupGetClass(value) == "iup handle" then value = ihandle_setname(value) end
- SetAttribute(handle, name, value)
+function iup.TreeSetNodeAttributes(handle, id, attrs)
+ for attr, val in pairs(attrs) do
+ handle[attr..id] = val
+ end
+end
+
+function iup.TreeSetAncestorsAttributes(handle, ini, attrs)
+ ini = handle["parent"..ini]
+ local stack = {}
+ while ini do
+ table.insert(stack, 1, ini)
+ ini = handle["parent"..ini]
+ end
+ for i = 1, #stack do
+ iup.TreeSetNodeAttributes(handle, stack[i], attrs)
+ end
+end
+
+function iup.TreeSetDescentsAttributes(handle, ini, attrs)
+ local id = ini
+ for i = 1, handle["childcount"..ini] do
+ id = id+1
+ iup.TreeSetNodeAttributes(handle, id, attrs)
+ if handle["kind"..id] == "BRANCH" then
+ id = iup.TreeSetDescentsAttributes(handle, id, attrs)
+ end
+ end
+ return id
+end
+
+function iup.TreeSetAttributeHandle(handle, name, value)
+ if iup.GetClass(value) == "iup handle" then value = iup.SetHandleName(value) end
+ iup.SetAttribute(handle, name, value)
end
-function TreeSetNodeAttrib(handle, node, id)
- if node.color then SetAttribute(handle, "COLOR"..id, node.color) end
- if node.state then SetAttribute(handle, "STATE"..id, node.state) end
- if node.titlefont then SetAttribute(handle, "TITLEFONT"..id, node.titlefont) end
- if node.marked then SetAttribute(handle, "MARKED"..id, node.marked) end
- if node.image then TreeSetAttributeHandle(handle, "IMAGE"..id, node.image) end
- if node.imageexpanded then TreeSetAttributeHandle(handle, "IMAGEEXPANDED"..id, node.imageexpanded) end
- if node.userid then TreeSetUserId(handle, id, node.userid) end
+-- must be after the branch has nodes
+function iup.TreeSetState(handle, tnode, id)
+ if tnode.state then iup.SetAttribute(handle, "STATE"..id, tnode.state) end
end
-function TreeSetValueRec(handle, t, id)
+function iup.TreeSetNodeAttrib(handle, tnode, id)
+ if tnode.color then iup.SetAttribute(handle, "COLOR"..id, tnode.color) end
+ if tnode.titlefont then iup.SetAttribute(handle, "TITLEFONT"..id, tnode.titlefont) end
+ if tnode.marked then iup.SetAttribute(handle, "MARKED"..id, tnode.marked) end
+ if tnode.image then iup.TreeSetAttributeHandle(handle, "IMAGE"..id, tnode.image) end
+ if tnode.imageexpanded then iup.TreeSetAttributeHandle(handle, "IMAGEEXPANDED"..id, tnode.imageexpanded) end
+ if tnode.userid then iup.TreeSetUserId(handle, id, tnode.userid) end
+end
+
+function iup.TreeAddNodesRec(handle, t, id)
if t == nil then return end
local cont = #t
while cont >= 0 do
- local node = t[cont]
- if type(node) == "table" then
- if node.branchname then
- SetAttribute(handle, "ADDBRANCH"..id, node.branchname)
- TreeSetNodeAttrib(handle, node, id+1)
- TreeSetValueRec(handle, node, id+1)
- elseif node.leafname then
- SetAttribute(handle, "ADDLEAF"..id, node.leafname)
- TreeSetNodeAttrib(handle, node, id+1)
+ local tnode = t[cont]
+ if type(tnode) == "table" then
+ if tnode.branchname then
+ iup.SetAttribute(handle, "ADDBRANCH"..id, tnode.branchname)
+ iup.TreeSetNodeAttrib(handle, tnode, id+1)
+ iup.TreeAddNodesRec(handle, tnode, id+1)
+ iup.TreeSetState(handle, tnode, id+1)
+ elseif tnode.leafname then
+ iup.SetAttribute(handle, "ADDLEAF"..id, tnode.leafname)
+ iup.TreeSetNodeAttrib(handle, tnode, id+1)
end
else
- if node then
- SetAttribute(handle, "ADDLEAF"..id, node)
+ if tnode then
+ iup.SetAttribute(handle, "ADDLEAF"..id, tnode)
end
end
cont = cont - 1
end
end
-function TreeSetValue(handle, t, id)
+function iup.TreeAddNodes(handle, t, id)
if (not id) then
id = 0 -- default is the root
- if t.branchname then SetAttribute(handle, "TITLE0", t.branchname) end
- TreeSetNodeAttrib(handle, t, 0)
+ if t.branchname then iup.SetAttribute(handle, "TITLE0", t.branchname) end
+ iup.TreeSetNodeAttrib(handle, t, 0)
end
- TreeSetValueRec(handle, t, id)
+ iup.TreeAddNodesRec(handle, t, id)
+ if (id == 0) then iup.TreeSetState(handle, t, 0) end
end
-function ctrl.createElement(class, arg)
- return Tree()
+-- backward compatibility
+iup.TreeSetValue = iup.TreeAddNodes
+
+function ctrl.createElement(class, param)
+ return iup.Tree()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/user.lua b/iup/srclua5/user.lua
index c202be3..18ed950 100755
--- a/iup/srclua5/user.lua
+++ b/iup/srclua5/user.lua
@@ -4,14 +4,14 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "user",
- parent = WIDGET,
+ parent = iup.WIDGET,
creation = "",
callback = {}
}
-function ctrl.createElement(class, arg)
- return User()
+function ctrl.createElement(class, param)
+ return iup.User()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/val.lua b/iup/srclua5/val.lua
index ba94255..cd22c6d 100755
--- a/iup/srclua5/val.lua
+++ b/iup/srclua5/val.lua
@@ -3,8 +3,8 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "val",
- parent = WIDGET,
- creation = "s",
+ parent = iup.WIDGET,
+ creation = "S",
callback = {
mousemove_cb = "d",
button_press_cb = "d",
@@ -12,9 +12,9 @@ local ctrl = {
},
}
-function ctrl.createElement(class, arg)
- return Val(arg[1])
+function ctrl.createElement(class, param)
+ return iup.Val(param[1])
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/vbox.lua b/iup/srclua5/vbox.lua
index b98984c..da578d9 100755
--- a/iup/srclua5/vbox.lua
+++ b/iup/srclua5/vbox.lua
@@ -3,18 +3,18 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "vbox",
- parent = BOX,
+ parent = iup.BOX,
creation = "-",
callback = {}
}
function ctrl.append (handle, elem)
- Append(handle, elem)
+ iup.Append(handle, elem)
end
-function ctrl.createElement(class, arg)
- return Vbox()
+function ctrl.createElement(class, param)
+ return iup.Vbox()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srclua5/zbox.lua b/iup/srclua5/zbox.lua
index 579c00b..7b0a348 100755
--- a/iup/srclua5/zbox.lua
+++ b/iup/srclua5/zbox.lua
@@ -3,30 +3,30 @@
------------------------------------------------------------------------------
local ctrl = {
nick = "zbox",
- parent = BOX,
+ parent = iup.BOX,
creation = "-",
callback = {}
}
function ctrl.append (handle, elem)
- ihandle_setname(elem)
- Append(handle, elem)
+ iup.SetHandleName(elem)
+ iup.Append(handle, elem)
end
function ctrl.SetChildrenNames(obj)
if obj then
local i = 1
while obj[i] do
- ihandle_setname(obj[i])
+ iup.SetHandleName(obj[i])
i = i+1
end
end
end
-function ctrl.createElement(class, arg)
- ctrl.SetChildrenNames(arg)
- return Zbox()
+function ctrl.createElement(class, param)
+ ctrl.SetChildrenNames(param)
+ return iup.Zbox()
end
-iupRegisterWidget(ctrl)
-iupSetClass(ctrl, "iup widget")
+iup.RegisterWidget(ctrl)
+iup.SetClass(ctrl, "iup widget")
diff --git a/iup/srcole/config.mak b/iup/srcole/config.mak
index af0ef50..b1f223e 100755
--- a/iup/srcole/config.mak
+++ b/iup/srcole/config.mak
@@ -15,3 +15,8 @@ SRC = iup_olecontrol.cpp \
tOleHandler.cpp \
tOleInPlaceFrame.cpp \
tOleInPlaceSite.cpp
+
+
+ifneq ($(findstring cygw, $(TEC_UNAME)), )
+ LIBS += uuid ole32 gdi32 oleaut32
+endif
diff --git a/iup/srcole/tLegacy.h b/iup/srcole/tLegacy.h
index 3294e20..1cd9cfc 100755
--- a/iup/srcole/tLegacy.h
+++ b/iup/srcole/tLegacy.h
@@ -53,7 +53,7 @@
#endif
#ifdef WIN32
-#include <tchar.h>
+//#include <tchar.h>
#ifdef UNICODE
#include <wchar.h>
#endif
diff --git a/iup/srcole/tOleInPlaceSite.cpp b/iup/srcole/tOleInPlaceSite.cpp
index 977777c..de55653 100755
--- a/iup/srcole/tOleInPlaceSite.cpp
+++ b/iup/srcole/tOleInPlaceSite.cpp
@@ -477,7 +477,17 @@ STDMETHODIMP tOleInPlaceSite::Scroll(SIZE sz)
STDMETHODIMP tOleInPlaceSite::OnPosRectChange(LPCRECT prcPos)
{
if (NULL!=prcPos)
+ {
+ // This change was necessary because some controls were not working, and being positioned in a wrong place.
+ // Contribution by Kommit
+ LPRECT pPos = (LPRECT)prcPos; // convert the const pointer to non-const pointer to modify it's member values.
+ pPos->right -= pPos->left;
+ pPos->bottom -= pPos->top;
+ pPos->left = 0;
+ pPos->top = 0;
+
m_pTen->m_rcPos=*prcPos;
+ }
m_pTen->UpdateInPlaceObjectRects(prcPos, FALSE);
return NOERROR;
diff --git a/iup/srcpplot/Makefile b/iup/srcpplot/Makefile
index e10ef19..b73d532 100755
--- a/iup/srcpplot/Makefile
+++ b/iup/srcpplot/Makefile
@@ -3,4 +3,4 @@
do_all: iup_pplot
iup_pplot:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
+ @$(MAKE) --no-print-directory -f ../tecmake.mak
diff --git a/iup/srcpplot/iupPPlot.cpp b/iup/srcpplot/iupPPlot.cpp
index c0d07c9..c0658bc 100755
--- a/iup/srcpplot/iupPPlot.cpp
+++ b/iup/srcpplot/iupPPlot.cpp
@@ -942,7 +942,7 @@ PPlot::PPlot ():
mHasAnyModifyingCalculatorBeenActive (false)
{
mMargins = kDefaultMargins;
- mYAxisSetup.mAscending = false;
+ mYAxisSetup.mAscending = false; /* default inverted for Y */
}
PPlot::~PPlot () {
diff --git a/iup/srcpplot/iup_pplot.cpp b/iup/srcpplot/iup_pplot.cpp
index 6f5c93a..f111d10 100755
--- a/iup/srcpplot/iup_pplot.cpp
+++ b/iup/srcpplot/iup_pplot.cpp
@@ -544,9 +544,6 @@ PPainterIup::PPainterIup(Ihandle *ih) :
PPainterIup::~PPainterIup()
{
- if (_cddbuffer != NULL)
- cdKillCanvas(_cddbuffer);
-
delete _InteractionContainer;
} /* d-tor */
@@ -741,9 +738,9 @@ static int iPPlotSetLegendPosAttrib(Ihandle* ih, const char* value)
{
if (iupStrEqualNoCase(value, "TOPLEFT"))
ih->data->plt->_plot.mLegendPos = PPLOT_TOPLEFT;
- if (iupStrEqualNoCase(value, "BOTTOMLEFT"))
+ else if (iupStrEqualNoCase(value, "BOTTOMLEFT"))
ih->data->plt->_plot.mLegendPos = PPLOT_BOTTOMLEFT;
- if (iupStrEqualNoCase(value, "BOTTOMRIGHT"))
+ else if (iupStrEqualNoCase(value, "BOTTOMRIGHT"))
ih->data->plt->_plot.mLegendPos = PPLOT_BOTTOMRIGHT;
else
ih->data->plt->_plot.mLegendPos = PPLOT_TOPRIGHT;
@@ -1380,7 +1377,7 @@ static int iPPlotSetDSRemoveAttrib(Ihandle* ih, const char* value)
/* ========== */
/* axis title */
-static int iPPlotSetAXSXLabelAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXLabelAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -1393,7 +1390,7 @@ static int iPPlotSetAXSXLabelAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYLabelAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYLabelAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -1406,7 +1403,7 @@ static int iPPlotSetAXSYLabelAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXLabelAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXLabelAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
char* att_buffer = iupStrGetMemory(256);
@@ -1415,7 +1412,7 @@ static char* iPPlotGetAXSXLabelAttrib(Ihandle* ih)
return att_buffer;
}
-static char* iPPlotGetAXSYLabelAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYLabelAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
char* att_buffer = iupStrGetMemory(256);
@@ -1425,7 +1422,7 @@ static char* iPPlotGetAXSYLabelAttrib(Ihandle* ih)
}
/* axis title position */
-static int iPPlotSetAXSXLabelCenteredAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXLabelCenteredAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -1438,7 +1435,7 @@ static int iPPlotSetAXSXLabelCenteredAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYLabelCenteredAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYLabelCenteredAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -1451,7 +1448,7 @@ static int iPPlotSetAXSYLabelCenteredAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXLabelCenteredAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXLabelCenteredAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -1461,7 +1458,7 @@ static char* iPPlotGetAXSXLabelCenteredAttrib(Ihandle* ih)
return "NO";
}
-static char* iPPlotGetAXSYLabelCenteredAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYLabelCenteredAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -1472,7 +1469,7 @@ static char* iPPlotGetAXSYLabelCenteredAttrib(Ihandle* ih)
}
/* axis, ticks and label color */
-static int iPPlotSetAXSXColorAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXColorAttrib(Ihandle* ih, const char* value)
{
unsigned char rr, gg, bb;
if (iupStrToRGB(value, &rr, &gg, &bb))
@@ -1484,7 +1481,7 @@ static int iPPlotSetAXSXColorAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYColorAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYColorAttrib(Ihandle* ih, const char* value)
{
unsigned char rr, gg, bb;
if (iupStrToRGB(value, &rr, &gg, &bb))
@@ -1496,7 +1493,7 @@ static int iPPlotSetAXSYColorAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXColorAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXColorAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -1507,7 +1504,7 @@ static char* iPPlotGetAXSXColorAttrib(Ihandle* ih)
return att_buffer;
}
-static char* iPPlotGetAXSYColorAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYColorAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -1519,7 +1516,7 @@ static char* iPPlotGetAXSYColorAttrib(Ihandle* ih)
}
/* autoscaling */
-static int iPPlotSetAXSXAutoMinAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXAutoMinAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -1532,7 +1529,7 @@ static int iPPlotSetAXSXAutoMinAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYAutoMinAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYAutoMinAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -1545,7 +1542,7 @@ static int iPPlotSetAXSYAutoMinAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXAutoMinAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXAutoMinAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -1555,7 +1552,7 @@ static char* iPPlotGetAXSXAutoMinAttrib(Ihandle* ih)
return "NO";
}
-static char* iPPlotGetAXSYAutoMinAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYAutoMinAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -1566,7 +1563,7 @@ static char* iPPlotGetAXSYAutoMinAttrib(Ihandle* ih)
}
/* autoscaling */
-static int iPPlotSetAXSXAutoMaxAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXAutoMaxAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -1579,7 +1576,7 @@ static int iPPlotSetAXSXAutoMaxAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYAutoMaxAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYAutoMaxAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -1592,7 +1589,7 @@ static int iPPlotSetAXSYAutoMaxAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXAutoMaxAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXAutoMaxAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -1602,7 +1599,7 @@ static char* iPPlotGetAXSXAutoMaxAttrib(Ihandle* ih)
return "NO";
}
-static char* iPPlotGetAXSYAutoMaxAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYAutoMaxAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -1613,7 +1610,7 @@ static char* iPPlotGetAXSYAutoMaxAttrib(Ihandle* ih)
}
/* min visible val */
-static int iPPlotSetAXSXMinAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXMinAttrib(Ihandle* ih, const char* value)
{
float xx;
if (iupStrToFloat(value, &xx))
@@ -1625,7 +1622,7 @@ static int iPPlotSetAXSXMinAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYMinAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYMinAttrib(Ihandle* ih, const char* value)
{
float xx;
if (iupStrToFloat(value, &xx))
@@ -1637,7 +1634,7 @@ static int iPPlotSetAXSYMinAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXMinAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXMinAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -1645,7 +1642,7 @@ static char* iPPlotGetAXSXMinAttrib(Ihandle* ih)
return att_buffer;
}
-static char* iPPlotGetAXSYMinAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYMinAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -1654,7 +1651,7 @@ static char* iPPlotGetAXSYMinAttrib(Ihandle* ih)
}
/* max visible val */
-static int iPPlotSetAXSXMaxAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXMaxAttrib(Ihandle* ih, const char* value)
{
float xx;
if (iupStrToFloat(value, &xx))
@@ -1666,7 +1663,7 @@ static int iPPlotSetAXSXMaxAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYMaxAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYMaxAttrib(Ihandle* ih, const char* value)
{
float xx;
if (iupStrToFloat(value, &xx))
@@ -1678,7 +1675,7 @@ static int iPPlotSetAXSYMaxAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXMaxAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXMaxAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -1686,7 +1683,7 @@ static char* iPPlotGetAXSXMaxAttrib(Ihandle* ih)
return att_buffer;
}
-static char* iPPlotGetAXSYMaxAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYMaxAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -1695,12 +1692,12 @@ static char* iPPlotGetAXSYMaxAttrib(Ihandle* ih)
}
/* values from left/top to right/bottom */
-static int iPPlotSetAXSXReverseAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXReverseAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
if(iupStrEqualNoCase(value, "YES") || iupStrEqualNoCase(value, "ON"))
- axis->mAscending = false; // inverted
+ axis->mAscending = false; // inverted for X
else
axis->mAscending = true;
@@ -1708,41 +1705,41 @@ static int iPPlotSetAXSXReverseAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYReverseAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYReverseAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
if(iupStrEqualNoCase(value, "YES") || iupStrEqualNoCase(value, "ON"))
- axis->mAscending = false; // inverted
+ axis->mAscending = true; // NOT inverted for Y
else
- axis->mAscending = true;
+ axis->mAscending = false;
ih->data->plt->_redraw = 1;
return 0;
}
-static char* iPPlotGetAXSXReverseAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXReverseAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
if (axis->mAscending)
- return "NO"; /* inverted */
+ return "NO"; /* inverted for X */
else
return "YES";
}
-static char* iPPlotGetAXSYReverseAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYReverseAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
if (axis->mAscending)
- return "NO"; /* inverted */
+ return "YES"; /* NOT inverted for Y */
else
- return "YES";
+ return "NO";
}
/* axis mode */
-static int iPPlotSetAXSXCrossOriginAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXCrossOriginAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -1755,7 +1752,7 @@ static int iPPlotSetAXSXCrossOriginAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYCrossOriginAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYCrossOriginAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -1768,7 +1765,7 @@ static int iPPlotSetAXSYCrossOriginAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXCrossOriginAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXCrossOriginAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -1778,7 +1775,7 @@ static char* iPPlotGetAXSXCrossOriginAttrib(Ihandle* ih)
return "NO";
}
-static char* iPPlotGetAXSYCrossOriginAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYCrossOriginAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -1789,7 +1786,7 @@ static char* iPPlotGetAXSYCrossOriginAttrib(Ihandle* ih)
}
/* log/lin scale */
-static int iPPlotSetAXSXScaleAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXScaleAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -1817,7 +1814,7 @@ static int iPPlotSetAXSXScaleAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYScaleAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYScaleAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -1845,7 +1842,7 @@ static int iPPlotSetAXSYScaleAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXScaleAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXScaleAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -1865,7 +1862,7 @@ static char* iPPlotGetAXSXScaleAttrib(Ihandle* ih)
return att_buffer;
}
-static char* iPPlotGetAXSYScaleAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYScaleAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -1886,7 +1883,7 @@ static char* iPPlotGetAXSYScaleAttrib(Ihandle* ih)
}
/* axis label font size */
-static int iPPlotSetAXSXFontSizeAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXFontSizeAttrib(Ihandle* ih, const char* value)
{
int ii;
if (iupStrToInt(value, &ii))
@@ -1898,7 +1895,7 @@ static int iPPlotSetAXSXFontSizeAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYFontSizeAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYFontSizeAttrib(Ihandle* ih, const char* value)
{
int ii;
if (iupStrToInt(value, &ii))
@@ -1910,20 +1907,20 @@ static int iPPlotSetAXSYFontSizeAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXFontSizeAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXFontSizeAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
return iPPlotGetPlotFontSize(axis->mStyle.mFontSize);
}
-static char* iPPlotGetAXSYFontSizeAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYFontSizeAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
return iPPlotGetPlotFontSize(axis->mStyle.mFontSize);
}
/* axis label font style */
-static int iPPlotSetAXSXFontStyleAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXFontStyleAttrib(Ihandle* ih, const char* value)
{
int style = iPPlotGetCDFontStyle(value);
if (style != -1)
@@ -1935,7 +1932,7 @@ static int iPPlotSetAXSXFontStyleAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYFontStyleAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYFontStyleAttrib(Ihandle* ih, const char* value)
{
int style = iPPlotGetCDFontStyle(value);
if (style != -1)
@@ -1947,20 +1944,20 @@ static int iPPlotSetAXSYFontStyleAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXFontStyleAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXFontStyleAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
return iPPlotGetPlotFontStyle(axis->mStyle.mFontStyle);
}
-static char* iPPlotGetAXSYFontStyleAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYFontStyleAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
return iPPlotGetPlotFontStyle(axis->mStyle.mFontStyle);
}
/* automatic tick size */
-static int iPPlotSetAXSXAutoTickSizeAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXAutoTickSizeAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -1973,7 +1970,7 @@ static int iPPlotSetAXSXAutoTickSizeAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYAutoTickSizeAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYAutoTickSizeAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -1986,7 +1983,7 @@ static int iPPlotSetAXSYAutoTickSizeAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXAutoTickSizeAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXAutoTickSizeAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -1996,7 +1993,7 @@ static char* iPPlotGetAXSXAutoTickSizeAttrib(Ihandle* ih)
return "NO";
}
-static char* iPPlotGetAXSYAutoTickSizeAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYAutoTickSizeAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -2007,7 +2004,7 @@ static char* iPPlotGetAXSYAutoTickSizeAttrib(Ihandle* ih)
}
/* size of ticks (in pixels) */
-static int iPPlotSetAXSXTickSizeAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXTickSizeAttrib(Ihandle* ih, const char* value)
{
int ii;
if (iupStrToInt(value, &ii))
@@ -2019,7 +2016,7 @@ static int iPPlotSetAXSXTickSizeAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYTickSizeAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYTickSizeAttrib(Ihandle* ih, const char* value)
{
int ii;
if (iupStrToInt(value, &ii))
@@ -2031,7 +2028,7 @@ static int iPPlotSetAXSYTickSizeAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXTickSizeAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXTickSizeAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -2039,7 +2036,7 @@ static char* iPPlotGetAXSXTickSizeAttrib(Ihandle* ih)
return att_buffer;
}
-static char* iPPlotGetAXSYTickSizeAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYTickSizeAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -2048,7 +2045,7 @@ static char* iPPlotGetAXSYTickSizeAttrib(Ihandle* ih)
}
/* size of major ticks (in pixels) */
-static int iPPlotSetAXSXTickMajorSizeAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXTickMajorSizeAttrib(Ihandle* ih, const char* value)
{
int ii;
if (iupStrToInt(value, &ii))
@@ -2060,7 +2057,7 @@ static int iPPlotSetAXSXTickMajorSizeAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYTickMajorSizeAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYTickMajorSizeAttrib(Ihandle* ih, const char* value)
{
int ii;
if (iupStrToInt(value, &ii))
@@ -2072,7 +2069,7 @@ static int iPPlotSetAXSYTickMajorSizeAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXTickMajorSizeAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXTickMajorSizeAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -2080,7 +2077,7 @@ static char* iPPlotGetAXSXTickMajorSizeAttrib(Ihandle* ih)
return att_buffer;
}
-static char* iPPlotGetAXSYTickMajorSizeAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYTickMajorSizeAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -2089,7 +2086,7 @@ static char* iPPlotGetAXSYTickMajorSizeAttrib(Ihandle* ih)
}
/* axis ticks font size */
-static int iPPlotSetAXSXTickFontSizeAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXTickFontSizeAttrib(Ihandle* ih, const char* value)
{
int ii;
if (iupStrToInt(value, &ii))
@@ -2101,7 +2098,7 @@ static int iPPlotSetAXSXTickFontSizeAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYTickFontSizeAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYTickFontSizeAttrib(Ihandle* ih, const char* value)
{
int ii;
if (iupStrToInt(value, &ii))
@@ -2113,14 +2110,14 @@ static int iPPlotSetAXSYTickFontSizeAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXTickFontSizeAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXTickFontSizeAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
return iPPlotGetPlotFontSize(axis->mTickInfo.mStyle.mFontSize);
}
-static char* iPPlotGetAXSYTickFontSizeAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYTickFontSizeAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -2128,7 +2125,7 @@ static char* iPPlotGetAXSYTickFontSizeAttrib(Ihandle* ih)
}
/* axis ticks number font style */
-static int iPPlotSetAXSXTickFontStyleAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXTickFontStyleAttrib(Ihandle* ih, const char* value)
{
int style = iPPlotGetCDFontStyle(value);
if (style != -1)
@@ -2140,7 +2137,7 @@ static int iPPlotSetAXSXTickFontStyleAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYTickFontStyleAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYTickFontStyleAttrib(Ihandle* ih, const char* value)
{
int style = iPPlotGetCDFontStyle(value);
if (style != -1)
@@ -2152,14 +2149,14 @@ static int iPPlotSetAXSYTickFontStyleAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXTickFontStyleAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXTickFontStyleAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
return iPPlotGetPlotFontSize(axis->mTickInfo.mStyle.mFontStyle);
}
-static char* iPPlotGetAXSYTickFontStyleAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYTickFontStyleAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -2167,7 +2164,7 @@ static char* iPPlotGetAXSYTickFontStyleAttrib(Ihandle* ih)
}
/* axis ticks number format */
-static int iPPlotSetAXSXTickFormatAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXTickFormatAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -2180,7 +2177,7 @@ static int iPPlotSetAXSXTickFormatAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYTickFormatAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYTickFormatAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -2193,7 +2190,7 @@ static int iPPlotSetAXSYTickFormatAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXTickFormatAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXTickFormatAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
char* att_buffer = iupStrGetMemory(256);
@@ -2202,7 +2199,7 @@ static char* iPPlotGetAXSXTickFormatAttrib(Ihandle* ih)
return att_buffer;
}
-static char* iPPlotGetAXSYTickFormatAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYTickFormatAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
char* att_buffer = iupStrGetMemory(256);
@@ -2212,7 +2209,7 @@ static char* iPPlotGetAXSYTickFormatAttrib(Ihandle* ih)
}
/* axis ticks */
-static int iPPlotSetAXSXTickAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXTickAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -2225,7 +2222,7 @@ static int iPPlotSetAXSXTickAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYTickAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYTickAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -2238,7 +2235,7 @@ static int iPPlotSetAXSYTickAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXTickAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXTickAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -2248,7 +2245,7 @@ static char* iPPlotGetAXSXTickAttrib(Ihandle* ih)
return "NO";
}
-static char* iPPlotGetAXSYTickAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYTickAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -2259,7 +2256,7 @@ static char* iPPlotGetAXSYTickAttrib(Ihandle* ih)
}
/* major tick spacing */
-static int iPPlotSetAXSXTickMajorSpanAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXTickMajorSpanAttrib(Ihandle* ih, const char* value)
{
float xx;
if (iupStrToFloat(value, &xx))
@@ -2271,7 +2268,7 @@ static int iPPlotSetAXSXTickMajorSpanAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYTickMajorSpanAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYTickMajorSpanAttrib(Ihandle* ih, const char* value)
{
float xx;
if (iupStrToFloat(value, &xx))
@@ -2283,7 +2280,7 @@ static int iPPlotSetAXSYTickMajorSpanAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXTickMajorSpanAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXTickMajorSpanAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -2291,7 +2288,7 @@ static char* iPPlotGetAXSXTickMajorSpanAttrib(Ihandle* ih)
return att_buffer;
}
-static char* iPPlotGetAXSYTickMajorSpanAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYTickMajorSpanAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -2300,7 +2297,7 @@ static char* iPPlotGetAXSYTickMajorSpanAttrib(Ihandle* ih)
}
/* number of ticks between major ticks */
-static int iPPlotSetAXSXTickDivisionAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXTickDivisionAttrib(Ihandle* ih, const char* value)
{
int ii;
if (iupStrToInt(value, &ii))
@@ -2312,7 +2309,7 @@ static int iPPlotSetAXSXTickDivisionAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYTickDivisionAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYTickDivisionAttrib(Ihandle* ih, const char* value)
{
int ii;
if (iupStrToInt(value, &ii))
@@ -2324,7 +2321,7 @@ static int iPPlotSetAXSYTickDivisionAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXTickDivisionAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXTickDivisionAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -2332,7 +2329,7 @@ static char* iPPlotGetAXSXTickDivisionAttrib(Ihandle* ih)
return att_buffer;
}
-static char* iPPlotGetAXSYTickDivisionAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYTickDivisionAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
char* att_buffer = iupStrGetMemory(30);
@@ -2341,7 +2338,7 @@ static char* iPPlotGetAXSYTickDivisionAttrib(Ihandle* ih)
}
/* auto tick spacing */
-static int iPPlotSetAXSXAutoTickAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisXAutoTickAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -2354,7 +2351,7 @@ static int iPPlotSetAXSXAutoTickAttrib(Ihandle* ih, const char* value)
return 0;
}
-static int iPPlotSetAXSYAutoTickAttrib(Ihandle* ih, const char* value)
+static int iPPlotSetAxisYAutoTickAttrib(Ihandle* ih, const char* value)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -2367,7 +2364,7 @@ static int iPPlotSetAXSYAutoTickAttrib(Ihandle* ih, const char* value)
return 0;
}
-static char* iPPlotGetAXSXAutoTickAttrib(Ihandle* ih)
+static char* iPPlotGetAxisXAutoTickAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup;
@@ -2377,7 +2374,7 @@ static char* iPPlotGetAXSXAutoTickAttrib(Ihandle* ih)
return "NO";
}
-static char* iPPlotGetAXSYAutoTickAttrib(Ihandle* ih)
+static char* iPPlotGetAxisYAutoTickAttrib(Ihandle* ih)
{
AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup;
@@ -2775,7 +2772,7 @@ void PPainterIup::SetStyle(const PStyle &inStyle)
cdCanvasMarkSize(_cddbuffer, inStyle.mMarkSize);
}
-int iPPlotMapMethod(Ihandle* ih)
+static int iPPlotMapMethod(Ihandle* ih)
{
int old_gdi = 0;
@@ -2800,12 +2797,27 @@ int iPPlotMapMethod(Ihandle* ih)
return IUP_NOERROR;
}
-void iPPlotDestroyMethod(Ihandle* ih)
+static void iPPlotUnMapMethod(Ihandle* ih)
+{
+ if (ih->data->plt->_cddbuffer != NULL)
+ {
+ cdKillCanvas(ih->data->plt->_cddbuffer);
+ ih->data->plt->_cddbuffer = NULL;
+ }
+
+ if (ih->data->plt->_cdcanvas != NULL)
+ {
+ cdKillCanvas(ih->data->plt->_cdcanvas);
+ ih->data->plt->_cdcanvas = NULL;
+ }
+}
+
+static void iPPlotDestroyMethod(Ihandle* ih)
{
delete ih->data->plt;
}
-int iPPlotCreateMethod(Ihandle* ih, void **params)
+static int iPPlotCreateMethod(Ihandle* ih, void **params)
{
(void)params;
@@ -2841,6 +2853,7 @@ static Iclass* iupPPlotGetClass(void)
ic->Create = iPPlotCreateMethod;
ic->Destroy = iPPlotDestroyMethod;
ic->Map = iPPlotMapMethod;
+ ic->UnMap = iPPlotUnMapMethod;
/* IupPPlot Callbacks */
iupClassRegisterCallback(ic, "POSTDRAW_CB", "v");
@@ -2888,52 +2901,52 @@ static Iclass* iupPPlotGetClass(void)
iupClassRegisterAttribute(ic, "DS_EDIT", iPPlotGetDSEditAttrib, iPPlotSetDSEditAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "DS_REMOVE", NULL, iPPlotSetDSRemoveAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XLABEL", iPPlotGetAXSXLabelAttrib, iPPlotSetAXSXLabelAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YLABEL", iPPlotGetAXSYLabelAttrib, iPPlotSetAXSYLabelAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XLABELCENTERED", iPPlotGetAXSXLabelCenteredAttrib, iPPlotSetAXSXLabelCenteredAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YLABELCENTERED", iPPlotGetAXSYLabelCenteredAttrib, iPPlotSetAXSYLabelCenteredAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XCOLOR", iPPlotGetAXSXColorAttrib, iPPlotSetAXSXColorAttrib, IUPAF_SAMEASSYSTEM, "0 0 0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YCOLOR", iPPlotGetAXSYColorAttrib, iPPlotSetAXSYColorAttrib, IUPAF_SAMEASSYSTEM, "0 0 0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XAUTOMIN", iPPlotGetAXSXAutoMinAttrib, iPPlotSetAXSXAutoMinAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YAUTOMIN", iPPlotGetAXSYAutoMinAttrib, iPPlotSetAXSYAutoMinAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XAUTOMAX", iPPlotGetAXSXAutoMaxAttrib, iPPlotSetAXSXAutoMaxAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YAUTOMAX", iPPlotGetAXSYAutoMaxAttrib, iPPlotSetAXSYAutoMaxAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XMIN", iPPlotGetAXSXMinAttrib, iPPlotSetAXSXMinAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YMIN", iPPlotGetAXSYMinAttrib, iPPlotSetAXSYMinAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XMAX", iPPlotGetAXSXMaxAttrib, iPPlotSetAXSXMaxAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YMAX", iPPlotGetAXSYMaxAttrib, iPPlotSetAXSYMaxAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XREVERSE", iPPlotGetAXSXReverseAttrib, iPPlotSetAXSXReverseAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YREVERSE", iPPlotGetAXSYReverseAttrib, iPPlotSetAXSYReverseAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XCROSSORIGIN", iPPlotGetAXSXCrossOriginAttrib, iPPlotSetAXSXCrossOriginAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YCROSSORIGIN", iPPlotGetAXSYCrossOriginAttrib, iPPlotSetAXSYCrossOriginAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XSCALE", iPPlotGetAXSXScaleAttrib, iPPlotSetAXSXScaleAttrib, IUPAF_SAMEASSYSTEM, "LIN", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YSCALE", iPPlotGetAXSYScaleAttrib, iPPlotSetAXSYScaleAttrib, IUPAF_SAMEASSYSTEM, "LIN", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XFONTSIZE", iPPlotGetAXSXFontSizeAttrib, iPPlotSetAXSXFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YFONTSIZE", iPPlotGetAXSYFontSizeAttrib, iPPlotSetAXSYFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XFONTSTYLE", iPPlotGetAXSXFontStyleAttrib, iPPlotSetAXSXFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YFONTSTYLE", iPPlotGetAXSYFontStyleAttrib, iPPlotSetAXSYFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XTICK", iPPlotGetAXSXTickAttrib, iPPlotSetAXSXTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YTICK", iPPlotGetAXSYTickAttrib, iPPlotSetAXSYTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XTICKSIZE", iPPlotGetAXSXTickSizeAttrib, iPPlotSetAXSXTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YTICKSIZE", iPPlotGetAXSYTickSizeAttrib, iPPlotSetAXSYTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XTICKFORMAT", iPPlotGetAXSXTickFormatAttrib, iPPlotSetAXSXTickFormatAttrib, IUPAF_SAMEASSYSTEM, "%.0f", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YTICKFORMAT", iPPlotGetAXSYTickFormatAttrib, iPPlotSetAXSYTickFormatAttrib, IUPAF_SAMEASSYSTEM, "%.0f", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XTICKFONTSIZE", iPPlotGetAXSXTickFontSizeAttrib, iPPlotSetAXSXTickFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YTICKFONTSIZE", iPPlotGetAXSYTickFontSizeAttrib, iPPlotSetAXSYTickFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XTICKFONTSTYLE", iPPlotGetAXSXTickFontStyleAttrib, iPPlotSetAXSXTickFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YTICKFONTSTYLE", iPPlotGetAXSYTickFontStyleAttrib, iPPlotSetAXSYTickFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XAUTOTICK", iPPlotGetAXSXAutoTickAttrib, iPPlotSetAXSXAutoTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YAUTOTICK", iPPlotGetAXSYAutoTickAttrib, iPPlotSetAXSYAutoTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XAUTOTICKSIZE", iPPlotGetAXSXAutoTickSizeAttrib, iPPlotSetAXSXAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YAUTOTICKSIZE", iPPlotGetAXSYAutoTickSizeAttrib, iPPlotSetAXSYAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XTICKMAJORSPAN", iPPlotGetAXSXTickMajorSpanAttrib, iPPlotSetAXSXTickMajorSpanAttrib, IUPAF_SAMEASSYSTEM, "1", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YTICKMAJORSPAN", iPPlotGetAXSYTickMajorSpanAttrib, iPPlotSetAXSYTickMajorSpanAttrib, IUPAF_SAMEASSYSTEM, "1", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XTICKDIVISION", iPPlotGetAXSXTickDivisionAttrib, iPPlotSetAXSXTickDivisionAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YTICKDIVISION", iPPlotGetAXSYTickDivisionAttrib, iPPlotSetAXSYTickDivisionAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XAUTOTICKSIZE", iPPlotGetAXSXAutoTickSizeAttrib, iPPlotSetAXSXAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YAUTOTICKSIZE", iPPlotGetAXSYAutoTickSizeAttrib, iPPlotSetAXSYAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_XTICKMAJORSIZE", iPPlotGetAXSXTickMajorSizeAttrib, iPPlotSetAXSXTickMajorSizeAttrib, IUPAF_SAMEASSYSTEM, "8", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
- iupClassRegisterAttribute(ic, "AXS_YTICKMAJORSIZE", iPPlotGetAXSYTickMajorSizeAttrib, iPPlotSetAXSYTickMajorSizeAttrib, IUPAF_SAMEASSYSTEM, "8", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XLABEL", iPPlotGetAxisXLabelAttrib, iPPlotSetAxisXLabelAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YLABEL", iPPlotGetAxisYLabelAttrib, iPPlotSetAxisYLabelAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XLABELCENTERED", iPPlotGetAxisXLabelCenteredAttrib, iPPlotSetAxisXLabelCenteredAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YLABELCENTERED", iPPlotGetAxisYLabelCenteredAttrib, iPPlotSetAxisYLabelCenteredAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XCOLOR", iPPlotGetAxisXColorAttrib, iPPlotSetAxisXColorAttrib, IUPAF_SAMEASSYSTEM, "0 0 0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YCOLOR", iPPlotGetAxisYColorAttrib, iPPlotSetAxisYColorAttrib, IUPAF_SAMEASSYSTEM, "0 0 0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XAUTOMIN", iPPlotGetAxisXAutoMinAttrib, iPPlotSetAxisXAutoMinAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YAUTOMIN", iPPlotGetAxisYAutoMinAttrib, iPPlotSetAxisYAutoMinAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XAUTOMAX", iPPlotGetAxisXAutoMaxAttrib, iPPlotSetAxisXAutoMaxAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YAUTOMAX", iPPlotGetAxisYAutoMaxAttrib, iPPlotSetAxisYAutoMaxAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XMIN", iPPlotGetAxisXMinAttrib, iPPlotSetAxisXMinAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YMIN", iPPlotGetAxisYMinAttrib, iPPlotSetAxisYMinAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XMAX", iPPlotGetAxisXMaxAttrib, iPPlotSetAxisXMaxAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YMAX", iPPlotGetAxisYMaxAttrib, iPPlotSetAxisYMaxAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XREVERSE", iPPlotGetAxisXReverseAttrib, iPPlotSetAxisXReverseAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YREVERSE", iPPlotGetAxisYReverseAttrib, iPPlotSetAxisYReverseAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XCROSSORIGIN", iPPlotGetAxisXCrossOriginAttrib, iPPlotSetAxisXCrossOriginAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YCROSSORIGIN", iPPlotGetAxisYCrossOriginAttrib, iPPlotSetAxisYCrossOriginAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XSCALE", iPPlotGetAxisXScaleAttrib, iPPlotSetAxisXScaleAttrib, IUPAF_SAMEASSYSTEM, "LIN", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YSCALE", iPPlotGetAxisYScaleAttrib, iPPlotSetAxisYScaleAttrib, IUPAF_SAMEASSYSTEM, "LIN", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XFONTSIZE", iPPlotGetAxisXFontSizeAttrib, iPPlotSetAxisXFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YFONTSIZE", iPPlotGetAxisYFontSizeAttrib, iPPlotSetAxisYFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XFONTSTYLE", iPPlotGetAxisXFontStyleAttrib, iPPlotSetAxisXFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YFONTSTYLE", iPPlotGetAxisYFontStyleAttrib, iPPlotSetAxisYFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XTICK", iPPlotGetAxisXTickAttrib, iPPlotSetAxisXTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YTICK", iPPlotGetAxisYTickAttrib, iPPlotSetAxisYTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XTICKSIZE", iPPlotGetAxisXTickSizeAttrib, iPPlotSetAxisXTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YTICKSIZE", iPPlotGetAxisYTickSizeAttrib, iPPlotSetAxisYTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XTICKFORMAT", iPPlotGetAxisXTickFormatAttrib, iPPlotSetAxisXTickFormatAttrib, IUPAF_SAMEASSYSTEM, "%.0f", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YTICKFORMAT", iPPlotGetAxisYTickFormatAttrib, iPPlotSetAxisYTickFormatAttrib, IUPAF_SAMEASSYSTEM, "%.0f", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XTICKFONTSIZE", iPPlotGetAxisXTickFontSizeAttrib, iPPlotSetAxisXTickFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YTICKFONTSIZE", iPPlotGetAxisYTickFontSizeAttrib, iPPlotSetAxisYTickFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XTICKFONTSTYLE", iPPlotGetAxisXTickFontStyleAttrib, iPPlotSetAxisXTickFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YTICKFONTSTYLE", iPPlotGetAxisYTickFontStyleAttrib, iPPlotSetAxisYTickFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XAUTOTICK", iPPlotGetAxisXAutoTickAttrib, iPPlotSetAxisXAutoTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YAUTOTICK", iPPlotGetAxisYAutoTickAttrib, iPPlotSetAxisYAutoTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XAUTOTICKSIZE", iPPlotGetAxisXAutoTickSizeAttrib, iPPlotSetAxisXAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YAUTOTICKSIZE", iPPlotGetAxisYAutoTickSizeAttrib, iPPlotSetAxisYAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XTICKMAJORSPAN", iPPlotGetAxisXTickMajorSpanAttrib, iPPlotSetAxisXTickMajorSpanAttrib, IUPAF_SAMEASSYSTEM, "1", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YTICKMAJORSPAN", iPPlotGetAxisYTickMajorSpanAttrib, iPPlotSetAxisYTickMajorSpanAttrib, IUPAF_SAMEASSYSTEM, "1", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XTICKDIVISION", iPPlotGetAxisXTickDivisionAttrib, iPPlotSetAxisXTickDivisionAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YTICKDIVISION", iPPlotGetAxisYTickDivisionAttrib, iPPlotSetAxisYTickDivisionAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XAUTOTICKSIZE", iPPlotGetAxisXAutoTickSizeAttrib, iPPlotSetAxisXAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YAUTOTICKSIZE", iPPlotGetAxisYAutoTickSizeAttrib, iPPlotSetAxisYAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_XTICKMAJORSIZE", iPPlotGetAxisXTickMajorSizeAttrib, iPPlotSetAxisXTickMajorSizeAttrib, IUPAF_SAMEASSYSTEM, "8", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "AXS_YTICKMAJORSIZE", iPPlotGetAxisYTickMajorSizeAttrib, iPPlotSetAxisYTickMajorSizeAttrib, IUPAF_SAMEASSYSTEM, "8", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "REMOVE", NULL, iPPlotSetRemoveAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
iupClassRegisterAttribute(ic, "CLEAR", NULL, iPPlotSetClearAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
diff --git a/iup/srcview/Makefile b/iup/srcview/Makefile
index 1779960..e49c397 100755
--- a/iup/srcview/Makefile
+++ b/iup/srcview/Makefile
@@ -3,7 +3,7 @@
do_all: iupview
iupview:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
+ @$(MAKE) --no-print-directory -f ../tecmake.mak
iupviewgtk:
- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak USE_GTK=Yes
+ @$(MAKE) --no-print-directory -f ../tecmake.mak USE_GTK=Yes
diff --git a/iup/srcview/config.mak b/iup/srcview/config.mak
index 4967582..9d03f3e 100755
--- a/iup/srcview/config.mak
+++ b/iup/srcview/config.mak
@@ -12,18 +12,17 @@ USE_CD = Yes
USE_IUPCONTROLS = Yes
USE_IUP3 = Yes
-# ifdef USE_GTK
-# ifndef GTK_DEFAULT
-# # Build GTK version in IRIX,SunOS,AIX,Win32
-# APPNAME = iupviewgtk
-# endif
-# else
-# ifdef GTK_DEFAULT
-# # Build Motif version in Linux,Darwin,FreeBSD
-# USE_MOTIF = Yes
-# APPNAME = iupviewmot
-# endif
-# endif
+ifdef GTK_DEFAULT
+ ifdef USE_MOTIF
+ # Build Motif version in Linux,Darwin,FreeBSD
+ APPNAME = iupviewmot
+ endif
+else
+ ifdef USE_GTK
+ # Build GTK version in IRIX,SunOS,AIX,Win32
+ APPNAME = iupviewgtk
+ endif
+endif
ifeq "$(TEC_UNAME)" "SunOS510x86"
DEFINES = USE_NO_OPENGL
@@ -37,7 +36,11 @@ ifdef USE_IM
ifneq ($(findstring Win, $(TEC_SYSNAME)), )
LIBS = iupim iupimglib
else
- IUPLIB = $(IUP)/lib/$(TEC_UNAME)
+ ifdef DBG_DIR
+ IUPLIB = $(IUP)/lib/$(TEC_UNAME)d
+ else
+ IUPLIB = $(IUP)/lib/$(TEC_UNAME)
+ endif
SLIB = $(IUPLIB)/libiupim.a $(IUPLIB)/libiupimglib.a
endif
endif
diff --git a/iup/srcview/iup_view.c b/iup/srcview/iup_view.c
index f6d400b..b2c877b 100755
--- a/iup/srcview/iup_view.c
+++ b/iup/srcview/iup_view.c
@@ -7,10 +7,12 @@
#include "iup.h"
#include "iupcontrols.h"
#include "iupgl.h"
+
#include "iup_str.h"
+#include "iup_object.h"
-#define MAX_NAMES 500
+#define MAX_NAMES 5000
#ifdef USE_IM
#include "iupim.h"
@@ -234,8 +236,13 @@ static int saveallimages_cb(void)
if (!IupSaveImageAsText(elem, file_name, imgtype, names[i]))
{
#ifdef USE_IM
- if (!IupSaveImage(elem, file_name, StrUpper(imgtype))) /* already displayed an error message */
+ if (!IupSaveImage(elem, file_name, StrUpper(imgtype)))
+ {
+ char* err_msg = IupGetGlobal("IUPIM_LASTERROR");
+ if (err_msg)
+ IupMessage("Error", err_msg);
return IUP_DEFAULT;
+ }
#else
IupMessage("Error", "Failed to save the image.");
return IUP_DEFAULT;
@@ -434,11 +441,19 @@ static int saveimage_cb(Ihandle* self)
if (GetSaveAsFile(file_name, imgtype) != -1)
{
if (!IupSaveImageAsText(elem, file_name, imgtype, name))
+ {
#ifdef USE_IM
- IupSaveImage(elem, file_name, StrUpper(imgtype)); /* already displayed an error message */
+ if (!IupSaveImage(elem, file_name, StrUpper(imgtype)))
+ {
+ char* err_msg = IupGetGlobal("IUPIM_LASTERROR");
+ if (err_msg)
+ IupMessage("Error", err_msg);
+ return IUP_DEFAULT;
+ }
#else
IupMessage("Error", "Failed to save the image.");
#endif
+ }
}
}
else
@@ -544,16 +559,44 @@ static void mainUpdateInternals(void)
}
}
+static int checkArray(Ihandle* *ih_array, int count, Ihandle* ih)
+{
+ int i;
+ for (i = 0; i < count; i++)
+ {
+ if (ih_array[i] == ih)
+ return 0;
+ }
+ return 1;
+}
+
static int destroyall_cb(Ihandle* self)
{
char *names[MAX_NAMES];
+ Ihandle* ih;
+ Ihandle* ih_names[MAX_NAMES];
Ihandle* list = (Ihandle*)IupGetAttribute(self, "mainList");
- int i, num_names = IupGetAllNames(names, MAX_NAMES);
+ int i, j=0, num_names = IupGetAllNames(names, MAX_NAMES);
for (i = 0; i < num_names; i++)
{
- Ihandle* elem = IupGetHandle(names[i]);
+ ih = IupGetHandle(names[i]);
+ if (iupObjectCheck(ih) && IupGetInt(ih, "_INTERNAL") == 0)
+ {
+ ih = IupGetDialog(ih);
+ if (checkArray(ih_names, j, ih))
+ {
+ ih_names[j] = ih;
+ j++;
+ }
+ }
+ }
+ num_names = j;
+
+ for (i = 0; i < num_names; i++)
+ {
+ Ihandle* elem = ih_names[i];
- if (elem && IupGetInt(elem, "_INTERNAL") == 0)
+ if (iupObjectCheck(elem))
{
char* type = IupGetClassName(elem);
@@ -567,6 +610,7 @@ static int destroyall_cb(Ihandle* self)
}
}
}
+
IupSetAttribute(list, "1", NULL);
IupSetAttribute(list, "VALUE", "1");
return IUP_DEFAULT;
@@ -689,6 +733,12 @@ static void LoadImageFile(Ihandle* self, const char* file_name)
free(file_title);
mainUpdateList(self, file_name);
}
+ else
+ {
+ char* err_msg = IupGetGlobal("IUPIM_LASTERROR");
+ if (err_msg)
+ IupMessage("Error", err_msg);
+ }
}
static int GetOpenFileName(char* file)
@@ -803,6 +853,7 @@ static Ihandle* mainDialog(void)
IupFrame(label = IupLabel("")),
NULL);
IupSetAttribute(box, "MARGIN", "10x10");
+ IupSetAttribute(list, "SORT", "YES");
IupSetCallback(list, "ACTION", (Icallback)list_cb);
IupSetCallback(list, "DBLCLICK_CB", (Icallback)list_dbclick_cb);
@@ -817,6 +868,7 @@ static Ihandle* mainDialog(void)
IupSetAttribute(main_dialog, "mainLabel", (char*)label);
IupSetCallback(main_dialog, "CLOSE_CB", (Icallback)close_cb);
IupSetCallback(main_dialog, "DROPFILES_CB", (Icallback)dropfile_cb);
+ IupSetAttribute(main_dialog, "_INTERNAL", "YES");
IupSetAttribute(menu, "mainList", (char*)list);
IupSetAttribute(menu, "mainLabel", (char*)label);
@@ -841,8 +893,6 @@ int main (int argc, char **argv)
IupShow(main_dialog);
IupMainLoop();
- destroyall_cb(main_dialog);
- IupDestroy(main_dialog);
IupControlsClose();
IupClose();
diff --git a/iup/srcview/make_uname.bat b/iup/srcview/make_uname.bat
index ab63bd3..1a98efe 100755
--- a/iup/srcview/make_uname.bat
+++ b/iup/srcview/make_uname.bat
@@ -8,19 +8,19 @@ goto end
:iupexe32
call tecmake vc8 relink %2 %3 %4 %5 %6 %7
-#call tecmake vc8 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7
+REM call tecmake vc8 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7
goto end
:iupexe64
call tecmake vc8_64 relink %2 %3 %4 %5 %6 %7
-#call tecmake vc8_64 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7
+REM call tecmake vc8_64 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7
goto end
:iupexe
call tecmake vc8 relink %2 %3 %4 %5 %6 %7
-#call tecmake vc8 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7
+REM call tecmake vc8 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7
call tecmake vc8_64 relink %2 %3 %4 %5 %6 %7
-#call tecmake vc8_64 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7
+REM call tecmake vc8_64 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7
goto end
:end
diff --git a/iup/tecmake_compact.mak b/iup/tecmake_compact.mak
deleted file mode 100755
index 08e642e..0000000
--- a/iup/tecmake_compact.mak
+++ /dev/null
@@ -1,1172 +0,0 @@
-#-------------------------------------------------------------------------#
-#- Tecmake (Compact Version) -#
-#- Generic Makefile to build applications and libraries at TeCGraf -#
-#- The user makefile usually has the name "config.mak". -#
-#-------------------------------------------------------------------------#
-
-# Tecmake Version
-VERSION = 3.19
-
-# First target
-.PHONY: build
-build: tecmake
-
-
-#---------------------------------#
-# System Variables Definitions
-
-# Base Defintions
-TEC_SYSNAME:=$(shell uname -s)
-TEC_SYSVERSION:=$(shell uname -r|cut -f1 -d.)
-TEC_SYSMINOR:=$(shell uname -r|cut -f2 -d.)
-TEC_SYSARCH:=$(shell uname -m)
-
-# Fixes
-ifeq ($(TEC_SYSNAME), SunOS)
- TEC_SYSARCH:=$(shell uname -p)
-endif
-ifeq ($(TEC_SYSNAME), IRIX)
- TEC_SYSARCH:=$(shell uname -p)
-endif
-ifeq ($(TEC_SYSNAME), FreeBSD)
- TEC_SYSMINOR:=$(shell uname -r|cut -f2 -d.|cut -f1 -d-)
-endif
-ifeq ($(TEC_SYSNAME), AIX)
- TEC_SYSVERSION:=$(shell uname -v)
- TEC_SYSMINOR:=$(shell uname -r)
- TEC_SYSARCH:=ppc
-endif
-ifeq ($(TEC_SYSNAME), Darwin)
- TEC_SYSARCH:=$(shell uname -p)
-endif
-
-ifeq ($(TEC_SYSARCH), powerpc)
- TEC_SYSARCH:=ppc
-endif
-ifeq ($(TEC_SYSARCH), i686)
- TEC_SYSARCH:=x86
-endif
-ifeq ($(TEC_SYSARCH), i386)
- TEC_SYSARCH:=x86
-endif
-ifeq ($(TEC_SYSARCH), x86_64)
- TEC_SYSARCH:=x64
-endif
-
-# Compose
-TEC_SYSRELEASE:=$(TEC_SYSVERSION).$(TEC_SYSMINOR)
-TEC_UNAME:=$(TEC_SYSNAME)$(TEC_SYSVERSION)$(TEC_SYSMINOR)
-
-# Linux 2.4 and GCC 3.x
-ifeq ($(TEC_UNAME), Linux24)
- GCCVER:=$(shell gcc -dumpversion|cut -f1 -d.)
- ifeq ($(GCCVER), 3)
- TEC_UNAME:=$(TEC_UNAME)g3
- endif
-endif
-
-# Linux 2.6 and GCC 4.x
-ifeq ($(TEC_UNAME), Linux26)
- GCCVER:=$(shell gcc -dumpversion|cut -f1 -d.)
- ifeq ($(GCCVER), 4)
- TEC_UNAME:=$(TEC_UNAME)g4
- endif
-endif
-
-# Linux and PowerPC
-ifeq ($(TEC_SYSNAME), Linux)
- ifeq ($(TEC_SYSARCH), ppc)
- TEC_UNAME:=$(TEC_UNAME)ppc
- endif
-endif
-
-# 64-bits Linux
-ifeq ($(TEC_SYSARCH), x64)
- BUILD_64=Yes
- TEC_UNAME:=$(TEC_UNAME)_64
-endif
-
-ifeq ($(TEC_SYSARCH), ia64)
- BUILD_64=Yes
- TEC_UNAME:=$(TEC_UNAME)_ia64
-endif
-
-# Solaris and Intel
-ifeq ($(TEC_SYSNAME), SunOS)
- ifeq ($(TEC_SYSARCH) , x86)
- TEC_UNAME:=$(TEC_UNAME)x86
- endif
-endif
-
-# Darwin and Intel
-ifeq ($(TEC_SYSNAME), Darwin)
-ifeq ($(TEC_SYSARCH), x86)
- TEC_UNAME:=$(TEC_UNAME)x86
- endif
-endif
-
-# System Info
-.PHONY: sysinfo
-sysinfo:
- @echo ''; echo 'Tecmake - System Info'
- @echo 'TEC_SYSNAME = $(TEC_SYSNAME)'
- @echo 'TEC_SYSVERSION = $(TEC_SYSVERSION)'
- @echo 'TEC_SYSMINOR = $(TEC_SYSMINOR)'
- @echo 'TEC_SYSARCH = $(TEC_SYSARCH)'
- @echo 'TEC_UNAME = $(TEC_UNAME)'; echo ''
-
-#---------------------------------#
-# Directories Definitions
-PROJDIR = ..
-SRCDIR = .
-OBJROOT = $(PROJDIR)/obj
-
-
-#---------------------------------#
-# Byte Order and Word Size
-
-ifneq ($(findstring x86, $(TEC_SYSARCH)), )
- TEC_BYTEORDER = TEC_LITTLEENDIAN
-else
-ifeq ($(TEC_SYSARCH), arm)
- TEC_BYTEORDER = TEC_LITTLEENDIAN
-else
- TEC_BYTEORDER = TEC_LITTLEENDIAN
-endif
-endif
-
-ifeq ($(TEC_SYSARCH), x64)
- TEC_WORDSIZE = TEC_64
-else
-ifdef BUILD_64
- TEC_WORDSIZE = TEC_64
-else
- TEC_WORDSIZE = TEC_32
-endif
-endif
-
-# Itanium Exception
-ifeq ($(TEC_SYSARCH), ia64)
- TEC_BYTEORDER = TEC_LITTLEENDIAN
- TEC_WORDSIZE = TEC_64
-endif
-
-
-#---------------------------------#
-# Compilation Flags
-STDFLAGS := -Wall
-STDDEFS := -DTEC_UNAME=$(TEC_UNAME) -DTEC_SYSNAME=$(TEC_SYSNAME) -D$(TEC_SYSNAME)=$(TEC_SYSRELEASE) -D$(TEC_BYTEORDER) -D$(TEC_WORDSIZE) -DFUNCPROTO=15
-STDINCS :=
-OPTFLAGS := -O3
-STDLFLAGS := r
-DEBUGFLAGS := -g
-STDLDFLAGS := -shared
-DLIBEXT := so
-
-ifneq ($(findstring Linux, $(TEC_UNAME)), )
- GTK_DEFAULT :=
-endif
-ifneq ($(findstring Darwin, $(TEC_UNAME)), )
- GTK_DEFAULT :=
-endif
-ifneq ($(findstring FreeBSD, $(TEC_UNAME)), )
- GTK_DEFAULT :=
-endif
-ifneq ($(findstring Linux24, $(TEC_UNAME)), )
- GTK_DEFAULT :=
-endif
-
-#---------------------------------#
-# Build Tools
-
-CC := $(TEC_TOOLCHAIN)gcc
-CPPC := $(TEC_TOOLCHAIN)g++
-FF := $(TEC_TOOLCHAIN)g77
-RANLIB := $(TEC_TOOLCHAIN)ranlib
-AR := $(TEC_TOOLCHAIN)ar
-DEBUGGER := $(TEC_TOOLCHAIN)gdb
-RCC := $(TEC_TOOLCHAIN)windres
-LD := $(TEC_TOOLCHAIN)gcc
-
-ifeq ($(TEC_UNAME), gcc2)
- ifdef USE_GCC_2
- CC := $(CC)-2
- CPPC := $(CPPC)-2
- FF := $(FF)-2
- endif
-endif
-
-
-#---------------------------------#
-# User Configuration File
-
-MAKENAME = config.mak
-
-ifdef MF
- MAKENAME = $(MF).mak
-endif
-
-###################
-include $(MAKENAME)
-###################
-
-
-#---------------------------------#
-# Definitions of public variables
-
-ifdef LIBNAME
- TARGETNAME = $(LIBNAME)
- MAKETYPE = LIB
-else
- TARGETNAME = $(APPNAME)
- MAKETYPE = APP
-endif
-
-ifndef TARGETNAME
- $(error LIBNAME nor APPNAME defined in $(MAKENAME))
-endif
-
-PROJNAME ?= $(TARGETNAME)
-
-DEPEND := $(TARGETNAME).dep
-
-ifdef DEPENDDIR
- DEPEND := $(DEPENDDIR)/$(TARGETNAME).dep.$(TEC_UNAME)
-endif
-
-SRCLUADIR ?= $(SRCDIR)
-LOHDIR ?= $(SRCLUADIR)
-
-ifeq ($(MAKETYPE), APP)
- TARGETROOT ?= $(PROJDIR)/bin
-else
- TARGETROOT ?= $(PROJDIR)/lib
-endif
-
-ifneq ($(PROJNAME), $(TARGETNAME))
- OBJROOT := $(OBJROOT)/$(TARGETNAME)
-endif
-
-ifdef DBG
- STDFLAGS += $(DEBUGFLAGS)
- STDDEFS += -DDEBUG
-else
- STDDEFS += -DNDEBUG
- ifdef OPT
- STDFLAGS += $(OPTFLAGS)
- ifeq ($(findstring gcc, $(TEC_UNAME)), )
- STRIP ?= Yes
- endif
- endif
-endif
-
-ifdef BUILD_64
- ifneq ($(findstring SunOS, $(TEC_UNAME)), )
- USE_CC = Yes
- BUILD_64_DIR = Yes
- endif
- ifneq ($(findstring AIX, $(TEC_UNAME)), )
- USE_CC = Yes
- BUILD_64_DIR = Yes
- endif
- ifneq ($(findstring IRIX, $(TEC_UNAME)), )
- USE_CC = Yes
- BUILD_64_DIR = Yes
- endif
-endif
-
-ifdef USE_CC
- CC := cc
- CPPC := CC
- STDFLAGS =
- ifdef USE_CC_DIR
- TEC_UNAME := $(TEC_UNAME)cc
- endif
-endif
-
-ifdef BUILD_64
- ifdef BUILD_64_DIR
- TEC_UNAME := $(TEC_UNAME)_64
- endif
-endif
-
-ifneq ($(findstring gcc, $(TEC_UNAME)), )
- ifeq ($(MAKETYPE), APP)
- TEC_UNAME_DIR ?= $(TEC_SYSNAME)
- endif
-endif
-
-TEC_UNAME_DIR ?= $(TEC_UNAME)
-ifdef DBG
- ifdef DBG_DIR
- TEC_UNAME_DIR := $(TEC_UNAME_DIR)d
- endif
-endif
-
-OBJDIR := $(OBJROOT)/$(TEC_UNAME_DIR)
-TARGETDIR := $(TARGETROOT)/$(TEC_UNAME_DIR)
-
-# Change linker if any C++ source
-ifndef LINKER
- ifneq "$(findstring .cpp, $(SRC))" ""
- LINKER := $(CPPC)
- else
- LINKER := $(CC)
- endif
-endif
-
-
-#---------------------------------#
-# LO and LOH Suffix
-
-ifeq ($(TEC_BYTEORDER), TEC_BIGENDIAN)
- ifeq ($(TEC_WORDSIZE), TEC_64)
- LO_SUFFIX ?= _be64
- else
- LO_SUFFIX ?= _be32
- endif
-else
- ifeq ($(TEC_WORDSIZE), TEC_64)
- LO_SUFFIX ?= _le64
- else
- LO_SUFFIX ?=
- endif
-endif
-
-
-#---------------------------------#
-# Platform specific variables
-
-# Definicoes para o X11
-X11_LIBS := Xmu Xt Xext X11
-#X11_LIB :=
-#X11_INC := #include <X11/X.h>
-
-# Definicoes para o OpenGL
-OPENGL_LIBS := GLU GL
-#OPENGL_LIB :=
-#OPENGL_INC := #include <GL/gl.h> and possibly
-MOTIFGL_LIB := GLw #include <GL/GLwMDrawA.h>
-
-# Definicoes para o Motif
-#MOTIF_LIB :=
-#MOTIF_INC := #include <Xm/Xm.h>
-
-# Definicoes para o GLUT
-#GLUT_LIB :=
-#GLUT_INC :=
-
-
-ifneq ($(findstring cygw, $(TEC_UNAME)), )
- NO_DYNAMIC ?= Yes
- ifdef BUILD_64
- X11_LIB := /usr/X11R6/lib64
- else
- X11_LIB := /usr/X11R6/lib
- endif
- X11_INC := /usr/X11R6/include
- MOTIFGL_LIB :=
-endif
-
-ifneq ($(findstring Linux, $(TEC_UNAME)), )
- ifdef BUILD_64
- ifeq ($(TEC_SYSARCH), ia64)
- STDFLAGS += -fPIC
- X11_LIB := /usr/X11R6/lib
- else
- STDFLAGS += -m64 -fPIC
- X11_LIB := /usr/X11R6/lib64
- endif
- else
- X11_LIB := /usr/X11R6/lib
- endif
- X11_INC := /usr/X11R6/include
- MOTIFGL_LIB :=
-endif
-
-ifneq ($(findstring IRIX, $(TEC_UNAME)), ) # any IRIX
- LD = ld
- STDLDFLAGS := -elf -shared -rdata_shared -soname lib$(TARGETNAME).so
- RANLIB := /bin/true
- X11_LIBS := Xmu Xt X11
- ifdef BUILD_64
- ifdef USE_CC
- STDFLAGS += -64 -KPIC
- STDLDFLAGS += -64
- LINKER += -64
- endif
- X11_LIB := /usr/lib64
- MOTIF_LIB := /usr/Motif-2.1/lib64
- else
- X11_LIB := /usr/lib32
- MOTIF_LIB := /usr/Motif-2.1/lib32
- endif
- MOTIF_INC = /usr/Motif-2.1/include
-endif
-
-ifneq ($(findstring AIX, $(TEC_UNAME)), )
- NO_DYNAMIC ?= Yes
- ifdef BUILD_64
- ifdef USE_CC
- STDFLAGS += -q64 # to compilers C and C++
- STDLFLAGS := -X64 $(STDLFLAGS) # to librarian
- STDLDFLAGS += -64
- LINKER += -q64 # to linker
- endif
- endif
-endif
-
-ifneq ($(findstring HP-UX, $(TEC_UNAME)), )
- NO_DYNAMIC ?= Yes
- MOTIF_INC := /usr/include/Motif2.1
- X11_LIBS := Xt Xext X11
- OPENGL_LIB := /opt/graphics/OpenGL/lib
- OPENGL_INC := /opt/graphics/OpenGL/include
- STDDEFS := -DTEC_UNAME=$(TEC_UNAME) -DTEC_SYSNAME=$(TEC_SYSNAME) -D$(TEC_BYTEORDER) -D$(TEC_WORDSIZE) -DFUNCPROTO=15
- CC := aCC
- CPPC := aCC
- LINKER := aCC
-endif
-
-ifneq ($(findstring SunOS, $(TEC_UNAME)), )
- LD = ld
- STDLDFLAGS := -G
- X11_INC := /usr/openwin/share/include
- X11_LIB := /usr/openwin/lib
- MOTIF_INC := /usr/dt/share/include
- MOTIF_LIB := /usr/dt/lib
- OPENGL_INC := /usr/openwin/share/include/X11
- GLUT_LIB := /usr/local/glut-3.7/lib/glut
- GLUT_INC := /usr/local/glut-3.7/include
- ifdef BUILD_64
- ifdef USE_CC
- STDFLAGS += -xarch=v9 -KPIC
- # have to force these PATHs because of a conflict with standard PATHs
- STDLDFLAGS += -64 -L/usr/lib/64 -L/usr/ucblib/sparcv9
- LINKER += -xarch=v9
- endif
- endif
-endif
-
-ifneq ($(findstring Darwin, $(TEC_UNAME)), )
- X11_LIBS := Xmu Xp Xt Xext X11
- X11_LIB := /usr/X11R6/lib
- X11_INC := /usr/X11R6/include
- MOTIF_INC := /usr/OpenMotif/include
- MOTIF_LIB := /usr/OpenMotif/lib
- ifdef BUILD_DYLIB
- STDLDFLAGS := -dynamiclib -install_name lib$(TARGETNAME).dylib
- DLIBEXT := dylib
- else
- STDLDFLAGS := -bundle -undefined dynamic_lookup
- endif
-endif
-
-ifneq ($(findstring FreeBSD, $(TEC_UNAME)), )
- X11_LIB := /usr/X11R6/lib
- X11_INC := /usr/X11R6/include
-endif
-
-
-################################
-# Allows an extra configuration file.
-ifdef EXTRA_CONFIG
-include $(EXTRA_CONFIG)
-endif
-################################
-
-
-#---------------------------------#
-# Tecgraf Libraries Location
-TECTOOLS_HOME ?= ../..
-
-IUP ?= $(TECTOOLS_HOME)/iup
-CD ?= $(TECTOOLS_HOME)/cd
-IM ?= $(TECTOOLS_HOME)/im
-LUA ?= $(TECTOOLS_HOME)/lua
-LUA51 ?= $(TECTOOLS_HOME)/lua5.1
-
-
-#---------------------------------#
-# Pre-defined libraries
-
-# Library order:
-# user + iupcd + cd + iup + motif + X
-# Library path order is the oposite
-
-USE_MOTIF = Yes
-
-ifdef USE_LUA
- LUASUFX :=
- LIBLUASUFX := 3
-endif
-
-ifdef USE_LUA4
- LUASUFX := 4
- LIBLUASUFX := 4
- override USE_LUA = Yes
- LUA := $(LUA4)
-endif
-
-ifdef USE_LUA5
- LUASUFX := 5
- LIBLUASUFX := 5
- override USE_LUA = Yes
- LUA := $(LUA5)
-endif
-
-ifdef USE_LUA50
- LUASUFX := 50
- LIBLUASUFX := 5
- override USE_LUA = Yes
- LUA := $(LUA50)
- NO_LUALIB := Yes
-endif
-
-ifdef USE_LUA51
- LUASUFX := 5.1
- LIBLUASUFX := 51
- override USE_LUA = Yes
- LUA := $(LUA51)
- NO_LUALIB := Yes
-endif
-
-ifdef USE_IUP3
- override USE_IUP = Yes
-endif
-
-ifdef USE_IUP3BETA
- IUP := $(IUP)3
-endif
-
-ifdef USE_IUPBETA
- IUP := $(IUP)/beta
-endif
-
-ifdef USE_CDBETA
- CD := $(CD)/beta
-endif
-
-ifdef USE_IMBETA
- IM := $(IM)/beta
-endif
-
-ifdef USE_GLUT
- override USE_OPENGL = Yes
-endif
-
-ifdef USE_IUPCONTROLS
- override USE_CD = Yes
- override USE_IUP = Yes
- ifdef USE_IUPLUA
- ifdef USE_STATIC
- SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupluacontrols$(LIBLUASUFX).a
- else
- LIBS += iupluacontrols$(LIBLUASUFX)
- endif
- override USE_CDLUA = Yes
- endif
- ifdef USE_STATIC
- SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupcontrols.a
- else
- LIBS += iupcontrols
- endif
-endif
-
-ifdef USE_IMLUA
- override USE_IM = Yes
- ifdef USE_STATIC
- SLIB += $(IM)/lib/$(TEC_UNAME)/libimlua$(LIBLUASUFX).a
- else
- LIBS += imlua$(LIBLUASUFX)
- endif
-endif
-
-ifdef USE_CDLUA
- override USE_CD = Yes
- ifdef USE_STATIC
- ifdef USE_IUP
- ifdef USE_OLDNAMES
- SLIB += $(CD)/lib/$(TEC_UNAME)/libcdluaiup$(LIBLUASUFX).a
- endif
- endif
- SLIB += $(CD)/lib/$(TEC_UNAME)/libcdlua$(LIBLUASUFX).a
- else
- ifdef USE_IUP
- ifdef USE_OLDNAMES
- LIBS += cdluaiup$(LIBLUASUFX)
- endif
- endif
- LIBS += cdlua$(LIBLUASUFX)
- endif
-endif
-
-ifdef USE_IUPLUA
- override USE_IUP = Yes
- ifdef USE_STATIC
- ifdef USE_CD
- ifndef USE_OLDNAMES
- SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupluacd$(LIBLUASUFX).a
- endif
- endif
- ifdef USE_OPENGL
- SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupluagl$(LIBLUASUFX).a
- endif
- SLIB += $(IUP)/lib/$(TEC_UNAME)/libiuplua$(LIBLUASUFX).a
- else
- ifdef USE_CD
- ifndef USE_OLDNAMES
- LIBS += iupluacd$(LIBLUASUFX)
- endif
- endif
- ifdef USE_OPENGL
- LIBS += iupluagl$(LIBLUASUFX)
- endif
- LIBS += iuplua$(LIBLUASUFX)
- endif
-endif
-
-ifdef USE_LUA
- LUA_LIB ?= $(LUA)/lib/$(TEC_UNAME)
- ifdef USE_STATIC
- ifndef NO_LUALIB
- SLIB += $(LUA_LIB)/liblualib$(LUASUFX).a
- endif
- SLIB += $(LUA_LIB)/liblua$(LUASUFX).a
- else
- ifndef NO_LUALIB
- LIBS += lualib$(LUASUFX)
- endif
- ifndef NO_LUALINK
- LIBS += lua$(LUASUFX)
- LDIR += $(LUA_LIB)
- endif
- endif
-
- LUA_INC ?= $(LUA)/include
- INCLUDES += $(LUA_INC)
-
- LUA_BIN ?= $(LUA)/bin/$(TEC_UNAME)
- BIN2C := $(LUA_BIN)/bin2c$(LUASUFX)
- LUAC := $(LUA_BIN)/luac$(LUASUFX)
- LUABIN := $(LUA_BIN)/lua$(LUASUFX)
-endif
-
-ifdef USE_IUP
- IUPSUFX :=
- ifdef USE_IUP3
- ifdef GTK_DEFAULT
- ifdef USE_MOTIF
- IUPSUFX := mot
- else
- override USE_GTK = Yes
- endif
- else
- ifdef USE_GTK
- IUPSUFX := gtk
- else
- override USE_MOTIF = Yes
- endif
- endif
- else
- override USE_MOTIF = Yes
- endif
- ifdef USE_STATIC
- ifdef USE_CD
- ifndef USE_OLDNAMES
- SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupcd.a
- endif
- endif
- ifdef USE_OPENGL
- SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupgl.a
- endif
- SLIB += $(IUP)/lib/$(TEC_UNAME)/libiup$(IUPSUFX).a
- else
- ifdef USE_CD
- ifndef USE_OLDNAMES
- LIBS += iupcd
- endif
- endif
- ifdef USE_OPENGL
- LIBS += iupgl
- endif
- LIBS += iup$(IUPSUFX)
- LDIR += $(IUP)/lib/$(TEC_UNAME)
- endif
- INCLUDES += $(IUP)/include
-endif
-
-ifdef USE_CD
- override USE_X11 = Yes
- ifdef USE_STATIC
- ifdef USE_IUP
- ifdef USE_OLDNAMES
- SLIB += $(CD)/lib/$(TEC_UNAME)/libcdiup.a
- endif
- endif
- ifdef USE_XRENDER
- ifdef USE_OLDNAMES
- SLIB += $(CD)/lib/$(TEC_UNAME)/libcdxrender.a
- else
- SLIB += $(CD)/lib/$(TEC_UNAME)/libcdcontextplus.a
- endif
- endif
- SLIB += $(CD)/lib/$(TEC_UNAME)/libcd.a
- ifdef USE_XRENDER
- LIBS += Xrender Xft
- else
- ifndef USE_GTK
- ifndef USE_OLDNAMES
- # Freetype is included in GTK
-# SLIB += $(CD)/lib/$(TEC_UNAME)/libfreetype.a
- endif
- endif
- endif
- else
- ifdef USE_XRENDER
- ifdef USE_OLDNAMES
- LIBS += cdxrender
- else
- LIBS += cdcontextplus
- endif
- endif
- LIBS += cd
- LDIR += $(CD)/lib/$(TEC_UNAME)
- ifdef USE_XRENDER
- LIBS += Xrender Xft
- else
- ifndef USE_GTK
- ifndef USE_OLDNAMES
- # Freetype is included in GTK
- LIBS += freetype
- endif
- endif
- endif
- endif
- INCLUDES += $(CD)/include
-endif
-
-ifdef USE_IM
- ifdef USE_STATIC
- SLIB += $(IM)/lib/$(TEC_UNAME)/libim.a
- else
- LIBS += im
- LDIR += $(IM)/lib/$(TEC_UNAME)
- endif
- INCLUDES += $(IM)/include
-endif
-
-# All except gcc in Windows (Cygwin)
-ifeq ($(findstring gcc, $(TEC_UNAME)), )
-
-ifdef USE_GLUT
- LIBS += glut
- LDIR += $(GLUT_LIB)
- STDINCS += $(GLUT_INC)
-endif
-
-ifdef USE_OPENGL
- override USE_X11 = Yes
- ifdef USE_MOTIF
- LIBS += $(MOTIFGL_LIB)
- endif
- LIBS += $(OPENGL_LIBS)
- LDIR += $(OPENGL_LIB)
- STDINCS += $(OPENGL_INC)
-endif
-
-ifdef USE_MOTIF
- override USE_X11 = Yes
- LIBS += Xm
- LDIR += $(MOTIF_LIB)
- STDINCS += $(MOTIF_INC)
- ifneq ($(findstring Linux, $(TEC_UNAME)), )
- X11_LIBS := Xpm $(X11_LIBS)
- endif
- ifneq ($(findstring cygw, $(TEC_UNAME)), )
- X11_LIBS := Xpm $(X11_LIBS)
- endif
-endif
-
-ifdef USE_GTK
-# ifneq ($(findstring Darwin, $(TEC_UNAME)), )
-# STDINCS += /Library/Frameworks/Gtk.framework/Headers
-# STDINCS += /Library/Frameworks/GLib.framework/Headers
-# STDINCS += /Library/Frameworks/Cairo.framework/Headers
-# LFLAGS += -framework Gtk
-# else
- ifneq ($(findstring Darwin, $(TEC_UNAME)), )
- GTK_BASE := /sw
- LDIR += /sw/lib
- LIBS += freetype
- else
- GTK_BASE := /usr
- endif
- override USE_X11 = Yes
- LIBS += gtk-x11-2.0 gdk-x11-2.0 gdk_pixbuf-2.0 pango-1.0 pangox-1.0 gobject-2.0 gmodule-2.0 glib-2.0
- STDINCS += $(GTK_BASE)/include/atk-1.0 $(GTK_BASE)/include/gtk-2.0 $(GTK_BASE)/include/cairo $(GTK_BASE)/include/pango-1.0 $(GTK_BASE)/include/glib-2.0
- ifeq ($(TEC_SYSARCH), x64)
- STDINCS += $(GTK_BASE)/lib64/glib-2.0/include $(GTK_BASE)/lib64/gtk-2.0/include
- else
- ifeq ($(TEC_SYSARCH), ia64)
- STDINCS += $(GTK_BASE)/lib64/glib-2.0/include $(GTK_BASE)/lib64/gtk-2.0/include
- else
- STDINCS += $(GTK_BASE)/lib/glib-2.0/include $(GTK_BASE)/lib/gtk-2.0/include
- endif
- endif
- ifneq ($(findstring FreeBSD, $(TEC_UNAME)), )
- STDINCS += /lib/X11R6/include/gtk-2.0
- endif
-# endif
-endif
-
-ifdef USE_QT
- override USE_X11 = Yes
- LIBS += QtGui QtCore
- QT_BASE_INC := /usr/include/qt4
- STDINCS += $(QT_BASE_INC) $(QT_BASE_INC)/QtCore $(QT_BASE_INC)/QtGui
- STDDEFS += -DQT_DLL -DQT_QT3SUPPORT_LIB -DQT3_SUPPORT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT
-endif
-
-ifdef USE_X11
- LIBS += $(X11_LIBS)
- LDIR += $(X11_LIB)
- STDINCS += $(X11_INC)
-endif
-
-LIBS += m
-
-else
- # gcc in Windows
- NO_DYNAMIC ?= Yes
- STDDEFS += -DWIN32
-
- ifdef USE_NOCYGWIN
- STDFLAGS += -mno-cygwin
- endif
-
- ifdef USE_GLUT
- LIBS += glut32
- endif
-
- ifdef USE_OPENGL
- LIBS += opengl32 glu32 glaux
- endif
-
- LIBS += gdi32 winspool comdlg32 comctl32 ole32
-
- ifdef USE_GTK
- LIBS += gtk-win32-2.0 gdk-win32-2.0 gdk_pixbuf-2.0 pango-1.0 pangowin32-1.0 gobject-2.0 gmodule-2.0 glib-2.0
- #LDIR += $(GTK)/lib
- GTK_INC = /usr
- STDINCS += $(GTK_INC)/include/atk-1.0 $(GTK_INC)/include/gtk-2.0 $(GTK_INC)/include/cairo $(GTK_INC)/include/pango-1.0 $(GTK_INC)/include/glib-2.0 $(GTK_INC)/lib/glib-2.0/include $(GTK_INC)/lib/gtk-2.0/include
- endif
-
- APPTYPE ?= windows
-
- ifeq ($(APPTYPE), windows)
- LFLAGS += -mwindows
-
- ifdef USE_NOCYGWIN
- LFLAGS += -mno-cygwin
- endif
- endif
-endif
-
-
-#---------------------------------#
-# Building compilation flags that are sets
-
-INCLUDES := $(addprefix -I, $(INCLUDES))
-STDINCS := $(addprefix -I, $(STDINCS))
-EXTRAINCS := $(addprefix -I, $(EXTRAINCS))
-DEFINES := $(addprefix -D, $(DEFINES))
-
-LIBS := $(addprefix -l, $(LIBS))
-ifdef LDIR
- LDIR := $(addprefix -L, $(LDIR))
-endif
-
-
-#---------------------------------#
-# Definitions of private variables
-
-# Library flags for application and dynamic library linker
-LFLAGS += $(LDIR) $(LIBS)
-# C compiler flags
-CFLAGS = $(FLAGS) $(STDFLAGS) $(INCLUDES) $(STDINCS) $(EXTRAINCS) $(DEFINES) $(STDDEFS)
-# C++ compiler flags
-CXXFLAGS = $(CPPFLAGS) $(STDFLAGS) $(INCLUDES) $(STDINCS) $(EXTRAINCS) $(DEFINES) $(STDDEFS)
-
-# Sources with relative path
-SOURCES := $(addprefix $(SRCDIR)/, $(SRC))
-
-# Target for applications or libraries
-ifeq ($(MAKETYPE), APP)
- TARGET := $(TARGETDIR)/$(TARGETNAME)
-else
- ifeq ($(NO_DYNAMIC), Yes)
- TARGET := $(TARGETDIR)/lib$(TARGETNAME).a
- else
- TARGET := $(TARGETDIR)/lib$(TARGETNAME).a $(TARGETDIR)/lib$(TARGETNAME).$(DLIBEXT)
- endif
-endif
-
-# OBJ: list of .o, without path
-# OBJS: list of .o with relative path
-OBJ = $(notdir $(SRC))
-OBJ := $(OBJ:.c=.o)
-OBJ := $(OBJ:.cpp=.o)
-OBJ := $(OBJ:.cxx=.o)
-OBJ := $(OBJ:.cc=.o)
-OBJ := $(OBJ:.f=.o)
-OBJ := $(OBJ:.for=.o)
-OBJ := $(OBJ:.rc=.ro)
-OBJS = $(addprefix $(OBJDIR)/, $(OBJ))
-
-# LOH: list of .loh, without path
-# LOHS: list of .loh, with relative path
-LO = $(notdir $(SRCLUA))
-LO := $(LO:.lua=$(LO_SUFFIX).lo)
-LOS = $(addprefix $(OBJROOT)/, $(LO))
-
-LOH = $(notdir $(SRCLUA))
-LOH := $(LOH:.lua=$(LO_SUFFIX).loh)
-LOHS = $(addprefix $(LOHDIR)/, $(LOH))
-
-# Construct VPATH variable
-P-SRC = $(dir $(SRC))
-P-SRC += $(dir $(SRCLUA))
-VPATH = .:$(foreach dir,$(P-SRC),$(if $(dir)="./",:$(dir)))
-
-
-#---------------------------------#
-# Main Rule - Build Everything that it is necessary
-
-.PHONY: tecmake
-ifeq ($(MAKETYPE), APP)
- tecmake: print-start directories application scripts
-else
- ifeq ($(NO_DYNAMIC), Yes)
- tecmake: print-start directories static-lib
- else
- tecmake: print-start directories static-lib dynamic-lib
- endif
-endif
-
-.PHONY: print-start
-print-start:
- @echo ''; echo 'Tecmake - Starting [ $(TARGETNAME):$(TEC_UNAME) ]'
-
-
-#---------------------------------#
-# Dynamic Library Build
-
-.PHONY: dynamic-lib
-dynamic-lib: $(TARGETDIR)/lib$(TARGETNAME).$(DLIBEXT)
-
-$(TARGETDIR)/lib$(TARGETNAME).$(DLIBEXT) : $(LOHS) $(OBJS) $(EXTRADEPS)
- $(LD) $(STDLDFLAGS) -o $@ $(OBJS) $(SLIB) $(LFLAGS)
- @echo 'Tecmake - Dynamic Library ($@) Done.'; echo ''
-
-
-#---------------------------------#
-# Static Library Build
-
-.PHONY: static-lib
-static-lib: $(TARGETDIR)/lib$(TARGETNAME).a
-
-$(TARGETDIR)/lib$(TARGETNAME).a : $(LOHS) $(OBJS) $(EXTRADEPS)
- $(AR) $(STDLFLAGS) $@ $(OBJS) $(SLIB) $(LCFLAGS)
- -$(RANLIB) $@
- @echo 'Tecmake - Static Library ($@) Done.'; echo ''
-
-
-#---------------------------------#
-# Application Build
-
-.PHONY: application
-application: $(TARGETDIR)/$(TARGETNAME)
-
-$(TARGETDIR)/$(TARGETNAME) : $(LOHS) $(OBJS) $(EXTRADEPS)
- $(LINKER) -o $@ $(OBJS) $(SLIB) $(LFLAGS)
- @if [ ! -z "$(STRIP)" ]; then \
- echo "Striping debug information" ;\
- strip $@ ;\
- fi
- @echo 'Tecmake - Application ($@) Done.'; echo ''
-
-
-#---------------------------------#
-# Application Scripts
-
-# Script name
-SRELEASE := $(SRCDIR)/$(TARGETNAME)
-
-.PHONY: scripts
-ifdef NO_SCRIPTS
- scripts: ;
-else
- scripts: $(SRELEASE) ;
-endif
-
-$(SRELEASE): $(MAKENAME)
- @echo 'Building script $(@F)'
- @echo "#!/bin/csh" > $@
- @echo "# Script generated automatically by tecmake v$(VERSION)" >> $@
- @echo "# Remove the comment bellow to set the LD_LIBRARY_PATH if needed." >> $@
- @echo '#setenv LD_LIBRARY_PATH $(MYLIB1)/lib/$${TEC_UNAME}:$(MYLIB2)/lib/$${TEC_UNAME}:$$LD_LIBRARY_PATH' >> $@
- @echo 'if ( -r app.env ) source app.env' >> $@
- @echo 'exec $(TARGETROOT)/$$TEC_UNAME/$(TARGETNAME) $$*' >> $@
- @chmod a+x $@
-
-
-#---------------------------------#
-# Directories Creation
-
-.PHONY: directories
-directories: $(OBJDIR) $(TARGETDIR) $(EXTRADIR) $(LOHDIR)
-
-$(OBJDIR) $(TARGETDIR):
- if [ ! -d $@ ] ; then mkdir -p $@ ; fi
-
-ifdef EXTRADIR
- $(EXTRADIR):
- if [ ! -d $@ ] ; then mkdir -p $@ ; fi
-else
- $(EXTRADIR): ;
-endif
-
-ifdef LOHDIR
- $(LOHDIR):
- if [ ! -d $@ ] ; then mkdir -p $@ ; fi
-else
- $(LOHDIR): ;
-endif
-
-
-#---------------------------------#
-# Compilation Rules
-
-$(OBJDIR)/%.o: $(SRCDIR)/%.c
- @echo Compiling $(<F)...
- $(CC) -c $(CFLAGS) -o $@ $<
-
-$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
- @echo Compiling $(<F)...
- $(CPPC) -c $(CXXFLAGS) -o $@ $<
-
-$(OBJDIR)/%.o: $(SRCDIR)/%.cxx
- @echo Compiling $(<F)...
- $(CPPC) -c $(CXXFLAGS) -o $@ $<
-
-$(OBJDIR)/%.o: $(SRCDIR)/%.cc
- @echo Compiling $(<F)...
- $(CPPC) -c $(CXXFLAGS) -o $@ $<
-
-$(OBJDIR)/%.o: $(SRCDIR)/%.f
- @echo Compiling $(<F)...
- $(FC) -c $(FFLAGS) -o $@ $<
-
-$(OBJDIR)/%.o: $(SRCDIR)/%.for
- @echo Compiling $(<F)...
- $(FC) -c $(FFLAGS) -o $@ $<
-
-$(OBJDIR)/%.ro: $(SRCDIR)/%.rc
- @echo Compiling $(<F)...
- $(RCC) $(RCFLAGS) -O coff -o $@ $<
-
-$(LOHDIR)/%.loh: $(OBJROOT)/%.lo
- @echo Generating $(<F)...
- $(BIN2C) $< > $@
-
-$(OBJROOT)/%$(LO_SUFFIX).lo: $(SRCLUADIR)/%.lua
- @echo Compiling $(<F)...
- $(LUAC) -o $@ $<
-
-
-#---------------------------------#
-# Dependencies
-
-# make depend
-# Build dependencies
-.PHONY: depend
-depend: $(DEPEND)
-
-$(DEPEND): $(MAKENAME)
- ifdef SRC
- @echo "" > $(DEPEND)
- @which $(CPPC) 2> /dev/null 1>&2 ;\
- if [ $$? -eq 0 ]; then \
- echo "Building dependencies... (can be slow)" ;\
- $(CPPC) $(INCLUDES) $(DEFINES) $(STDDEFS) -MM $(SOURCES) | \
- sed -e '1,$$s/^\([^ ]\)/$$(OBJDIR)\/\1/' > $(DEPEND) ;\
- else \
- echo "" ;\
- echo "$(CPPC) not found. Dependencies can not be built." ;\
- echo "Must set USE_NODEPEND=Yes." ;\
- echo "" ;\
- exit 1 ;\
- fi
- endif
-
-###################
-ifndef USE_NODEPEND
-include $(DEPEND)
-endif
-###################
-
-
-#---------------------------------#
-# Management Rules
-
-# make clean-extra
-# Remove extra files
-.PHONY: clean-extra
-clean-extra:
- rm -f $(DEPEND) $(SRELEASE) so_locations
-
-# make clean-lohs
-# Remove Lua object inclusion files
-.PHONY: clean-lohs
-clean-lohs:
- rm -f $(LOS) $(LOHS)
-
-# make clean-obj
-# Remove object files
-.PHONY: clean-obj
-clean-obj:
- rm -f $(OBJS)
-
-# make clean-target
-# Remove target
-.PHONY: clean-target
-clean-target:
- rm -f $(TARGET)
-
-# make clean
-# Remove target and object files
-.PHONY: clean
-clean: clean-target clean-obj
-
-# make rebuild
-# Remove symbols from executables
-.PHONY: strip
-strip:
- test -r $(TARGETDIR)/$(TARGETNAME) && strip $(TARGETDIR)/$(TARGETNAME)
-
-# make rebuild
-# Rebuild target and object files
-.PHONY: rebuild
-rebuild: clean-extra clean-lohs clean-obj clean-target tecmake
-
-# make relink
-# Rebuild target without rebuilding object files
-.PHONY: relink
-relink: clean-target tecmake
-
-.PHONY: version
-version:
- @echo "Tecmake Compact Version $(VERSION)"
-
-#---------------------------------#
diff --git a/iup/test/bigtest.c b/iup/test/bigtest.c
index 713e752..84905e6 100755
--- a/iup/test/bigtest.c
+++ b/iup/test/bigtest.c
@@ -62,6 +62,7 @@ void ConfTest(void);
void ZboxTest(void);
void ScanfTest(void);
void SboxTest(void);
+void SplitTest(void);
void ClipboardTest(void);
void HelpTest(void)
@@ -115,6 +116,7 @@ static TestItems test_list[] = {
{"Progressbar", ProgressbarTest},
{"Sample", SampleTest},
{"Sbox", SboxTest},
+ {"Split", SplitTest},
{"Scanf", ScanfTest},
{"Spin", SpinTest},
{"SysInfo", SysInfoTest},
@@ -164,8 +166,6 @@ int main(int argc, char* argv[])
IupOpen(&argc, &argv);
IupControlsOpen();
-// IupOldValOpen();
-// IupOldTabsOpen();
dlg = IupDialog(IupVbox(list = IupList(NULL), NULL));
IupSetAttribute(dlg, "MARGIN", "10x10");
diff --git a/iup/test/button.c b/iup/test/button.c
index da2906d..f04f082 100755
--- a/iup/test/button.c
+++ b/iup/test/button.c
@@ -346,13 +346,13 @@ void ButtonTest(void)
// IupSetAttribute(button, "ALIGNMENT", "ALEFT:ATOP");
// IupSetAttribute(button, "RASTERSIZE", "200x100");
// IupSetAttribute(button, "IMAGEPOSITION", "BOTTOM");
- IupSetAttribute(button, "PADDING", "5x5");
+// IupSetAttribute(button, "PADDING", "5x5");
// IupSetAttribute(button, "TITLE", "Text1");
- IupSetAttribute(button, "FONT", "Helvetica, 14");
+// IupSetAttribute(button, "FONT", "Helvetica, 14");
// IupSetAttribute(button, "IMAGE", "IUP_Tecgraf");
IupSetAttributeHandle(button, "IMAGE", image1);
// IupSetAttributeHandle(button, "IMINACTIVE", image1i);
-// IupSetAttributeHandle(button, "XXX__IMPRESS", image1p);
+ IupSetAttributeHandle(button, "IMPRESS", image1p);
IupSetAttribute(button, "TIP", "Image Label");
IupSetAttribute(button, "NAME", "button4");
set_callbacks(button);
@@ -360,13 +360,15 @@ void ButtonTest(void)
button = IupButton(NULL, NULL);
IupSetAttributeHandle(button, "IMAGE", image2);
- IupSetAttribute(button, "TITLE", "Text2");
+// IupSetAttribute(button, "TITLE", "Text2");
// IupSetAttribute(button, "IMAGEPOSITION", "TOP");
// IupSetAttribute(button, "SPACING", "30");
// IupSetAttribute(button, "ALIGNMENT", "ALEFT");
// IupSetAttribute(button, "RASTERSIZE", "200x100");
IupSetAttribute(button, "FLAT", "YES");
- IupSetAttribute(button, "FOCUSONCLICK", "NO");
+// IupSetAttributeHandle(button, "IMPRESS", image2);
+// IupSetAttribute(button, "FOCUSONCLICK", "NO");
+// IupSetAttribute(button, "RASTERSIZE", "15x15");
IupSetAttribute(button, "NAME", "button5");
set_callbacks(button);
IupAppend(box2, button);
@@ -382,12 +384,18 @@ void ButtonTest(void)
label = IupLabel(NULL);
IupSetAttribute(label, "SEPARATOR", "VERTICAL");
+ IupSetHandle("teste1", label);
+ IupSetHandle("xxxx", label);
+ IupSetHandle("teste2", label);
+ IupSetHandle("yyy", label);
+ IupSetHandle("dasdasdas", label);
+ IupSetHandle("label", label);
dlg = IupDialog(IupHbox(box1, label, box2, NULL));
IupSetAttribute(dlg, "TITLE", "IupButton Test");
// IupSetAttribute(box1, "BGCOLOR", "128 0 0");
// IupSetAttribute(dlg, "BGCOLOR", "0 128 0");
-// IupSetAttribute(dlg, "BACKGROUND", "0 0 128");
+ IupSetAttribute(dlg, "BACKGROUND", "255 128 128");
// IupSetAttributeHandle(dlg, "BACKGROUND", image2);
IupSetAttributeHandle(dlg, "STARTFOCUS", button);
diff --git a/iup/test/canvas.c b/iup/test/canvas.c
index d13945c..b01e5a6 100755
--- a/iup/test/canvas.c
+++ b/iup/test/canvas.c
@@ -58,19 +58,31 @@ static unsigned char pixmap_cursor [ ] =
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
} ;
-//#define USE_GTK
+//#define USE_GDK
/* draw a rectangle that has w=600 always, white background and a red X */
-#ifdef USE_GTK
+#ifdef USE_GDK
#include <gtk/gtk.h>
static void drawTest(Ihandle *ih, int posx)
{
GtkWidget* widget = (GtkWidget*)IupGetAttribute(ih, "WID");
- gdk_draw_arc (widget->window,
- widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
- TRUE,
- 0, 0, widget->allocation.width, widget->allocation.height,
- 0, 64 * 360);
+ GdkGC* gc = widget->style->fg_gc[GTK_WIDGET_STATE(widget)];
+ int w, h;
+ GdkColor color;
+
+ IupGetIntInt(ih, "DRAWSIZE", &w, &h);
+
+ /* white background */
+ color.red = 65535; color.green = 65535; color.blue = 65535;
+ gdk_gc_set_rgb_fg_color(gc, &color);
+ gdk_draw_rectangle(widget->window, gc, TRUE, 0, 0, w, h);
+
+ /* red X */
+ w = 600; /* virtual size */
+ color.red = 65535; color.green = 0; color.blue = 0;
+ gdk_gc_set_rgb_fg_color(gc, &color);
+ gdk_draw_line(widget->window, gc, -posx, 0, w-posx, h);
+ gdk_draw_line(widget->window, gc, -posx, h, w-posx, 0);
}
#else
#ifdef WIN32
@@ -232,6 +244,18 @@ static int wheel_cb(Ihandle *ih,float delta,int x,int y,char* status)
static int motion_cb(Ihandle *ih,int x,int y,char* status)
{
printf("MOTION_CB(x=%d, y=%d [%s])\n",x,y, status);
+
+ {
+ static int count=0;
+#ifdef WIN32
+ Sleep(1000);
+#else
+ sleep(1); //or do anything that takes some time
+#endif
+ count++;
+ printf("count(%d)\n",count);
+ }
+
return IUP_DEFAULT;
}
@@ -295,7 +319,7 @@ void CanvasTest(void)
IupSetCallback(canvas, "MAP_CB", (Icallback)map_cb);
IupSetCallback(canvas, "KEYPRESS_CB", (Icallback)keypress_cb);
- IupSetCallback(canvas, "K_ANY", (Icallback)k_any);
+// IupSetCallback(canvas, "K_ANY", (Icallback)k_any);
IupSetCallback(canvas, "HELP_CB", (Icallback)help_cb);
IupSetCallback(canvas, "GETFOCUS_CB", (Icallback)getfocus_cb);
diff --git a/iup/test/config.mak b/iup/test/config.mak
index 2764e6c..b97ae83 100755
--- a/iup/test/config.mak
+++ b/iup/test/config.mak
@@ -1,27 +1,38 @@
+PROJNAME = iup
APPNAME = iuptest
APPTYPE = CONSOLE
-INCLUDES = ../include
-
-ifdef USE_GTK
- ifndef GTK_DEFAULT
- # Build GTK version in IRIX,SunOS,AIX,Win32
- APPNAME = iuptestgtk
- endif
-else
- ifdef GTK_DEFAULT
+ifdef GTK_DEFAULT
+ ifdef USE_MOTIF
# Build Motif version in Linux,Darwin,FreeBSD
- USE_MOTIF = Yes
APPNAME = iuptestmot
endif
+else
+ ifdef USE_GTK
+ # Build GTK version in IRIX,SunOS,AIX,Win32
+ APPNAME = iuptestgtk
+ endif
+endif
+
+ifdef USE_GDK
+ APPNAME = iuptestgdk
endif
+INCLUDES = ../include
+
USE_IUP3 = Yes
USE_STATIC = Yes
IUP = ..
-#TEC_UNAME_DIR = Win32.$(TEC_UNAME)
-#DBG = Yes
+ifdef DBG_DIR
+ IUPLIB = $(IUP)/lib/$(TEC_UNAME)d
+ CDLIB = $(CD)/lib/$(TEC_UNAME)d
+ IMLIB = $(IM)/lib/$(TEC_UNAME)d
+else
+ IUPLIB = $(IUP)/lib/$(TEC_UNAME)
+ CDLIB = $(CD)/lib/$(TEC_UNAME)
+ IMLIB = $(IM)/lib/$(TEC_UNAME)
+endif
# Must uncomment all SRC lines
DEFINES = BIG_TEST
@@ -58,12 +69,13 @@ SRC += zbox.c
SRC += scanf.c
SRC += sbox.c
SRC += clipboard.c
+SRC += split.c
#ifneq ($(findstring Win, $(TEC_SYSNAME)), )
# LIBS += iupimglib
#else
-# SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupimglib.a
+# SLIB += $(IUPLIB)/libiupimglib.a
#endif
USE_CD = Yes
@@ -96,8 +108,8 @@ ifneq ($(findstring Win, $(TEC_SYSNAME)), )
# LIBS += cdpdflib
# LDIR += $(IUP)/lib/$(TEC_UNAME)
else
- SLIB += $(IUP)/lib/$(TEC_UNAME)/libiup_pplot.a
-# SLIB += $(CD)/lib/$(TEC_UNAME)/libcdpdflib.a
+ SLIB += $(IUPLIB)/libiup_pplot.a
+# SLIB += $(CDLIB)/libcdpdflib.a
endif
ifneq ($(findstring Win, $(TEC_SYSNAME)), )
diff --git a/iup/test/dialog.c b/iup/test/dialog.c
index f8097c9..334b1cc 100755
--- a/iup/test/dialog.c
+++ b/iup/test/dialog.c
@@ -338,7 +338,7 @@ static void new_dialog(int test, char* tip)
// Windows and GTK Only
IupSetCallback(dlg, "DROPFILES_CB", (Icallback)dropfiles_cb);
-
+
if (test == 0 || test == 1)
IupShow(dlg);
else if (test == 3)
diff --git a/iup/test/frame.c b/iup/test/frame.c
index 2bcd128..5262c3f 100755
--- a/iup/test/frame.c
+++ b/iup/test/frame.c
@@ -29,11 +29,10 @@ void FrameTest(void)
);
IupSetAttribute(frame1, "TITLE", "Title Text");
+ IupSetAttribute(frame1, "MARGIN", "0x0");
// IupSetAttribute(frame1, "FGCOLOR", "255 0 0");
-// IupSetAttribute(frame1, "BGCOLOR", "0 128 0");
- IupSetAttribute(frame2, "SUNKEN", "YES");
+// IupSetAttribute(frame2, "SUNKEN", "YES");
- IupSetAttribute(frame1, "MARGIN", "0x0");
IupSetAttribute(frame2, "MARGIN", "0x0");
// IupSetAttribute(frame2, "BGCOLOR", "0 128 0");
dlg = IupDialog(IupHbox(frame1, frame2, NULL));
@@ -43,7 +42,7 @@ void FrameTest(void)
IupSetAttribute(dlg, "GAP", "5");
IupSetAttribute(dlg, "FONTSIZE", "14");
// IupSetAttribute(dlg, "RASTERSIZE", "300x200");
-// IupSetAttribute(dlg, "BGCOLOR", "0 128 0");
+// IupSetAttribute(dlg, "BGCOLOR", "128 0 0");
IupShow(dlg);
printf("RASTERSIZE(%s)\n", IupGetAttribute(frame1, "RASTERSIZE"));
diff --git a/iup/test/getparam.c b/iup/test/getparam.c
index fbda6bb..33937da 100755
--- a/iup/test/getparam.c
+++ b/iup/test/getparam.c
@@ -20,6 +20,9 @@ static int param_action(Ihandle* dialog, int param_index, void* user_data)
case -3:
printf("IupGetParam - Cancel\n");
break;
+ case -4:
+ printf("IupGetParam - Help\n");
+ break;
// case 1:
// return 0;
default:
@@ -50,6 +53,7 @@ void GetParamTest(void)
char file_name[500] = "test.jpg";
if (!IupGetParam("Title", param_action, 0,
+ "Bt %u[, MyCancel, Help!]\n"
"Boolean: %b[No,Yes]\n"
"Integer: %i\n"
"Real 1: %r\n"
diff --git a/iup/test/glcanvas_cube.c b/iup/test/glcanvas_cube.c
index 3bd5ec5..da1244d 100755
--- a/iup/test/glcanvas_cube.c
+++ b/iup/test/glcanvas_cube.c
@@ -203,7 +203,7 @@ void GLCanvasCubeTest(void)
dlg = IupDialog(IupSetAttributes(IupFrame(box), "TITLE=Teste"));
IupSetAttribute(dlg, "TITLE", "IupGLCanvas Test");
- IupSetAttribute(dlg, "COMPOSITED", "NO");
+// IupSetAttribute(dlg, "COMPOSITED", "YES");
IupMap(dlg);
diff --git a/iup/test/list.c b/iup/test/list.c
index 5db582b..9555771 100755
--- a/iup/test/list.c
+++ b/iup/test/list.c
@@ -134,6 +134,14 @@ static int insertitem_cb(Ihandle *ih)
return IUP_DEFAULT;
}
+static int setitem_cb(Ihandle *ih)
+{
+ Ihandle *list = (Ihandle*)IupGetAttribute(IupGetDialog(ih), "_ACTIVE_LIST");
+ Ihandle *text = IupGetDialogChild(ih, "text");
+ IupSetAttribute(list, "3", IupGetAttribute(text, "VALUE"));
+ return IUP_DEFAULT;
+}
+
static int appenditem_cb(Ihandle *ih)
{
Ihandle *list = (Ihandle*)IupGetAttribute(IupGetDialog(ih), "_ACTIVE_LIST");
@@ -257,13 +265,13 @@ void ListTest(void)
IupSetAttributes(list1, "1=\"US$ 1000\", 2=\"US$ 2000\", 3=\"US$ 300.000.000\", 4=\"US$ 4000\","
"EDITBOX=YES, DROPDOWN=YES, TIP=Edit+Drop, VALUE=\"Edit Here\", NAME=list1");
IupSetAttributes(list2, "1=\"Banana\", 2=\"Apple\", 3=\"Orange\", 4=\"Strawberry\", 5=\"Grape\","
- "DROPDOWN=YES, NAME=list2, TIP=Drop, VALUE=2, SORT=YES");
+ "DROPDOWN=YES, NAME=list2, TIP=Drop, VALUE=2, XXX_SORT=YES");
IupSetAttributes(list3, "1=\"Char A\", 2=\"Char B\", 3=\"Char CCCCC\", 4=\"Char D\", 5=\"Char E\", 6=\"Char F\","
- "EDITBOX=YES, NAME=list3, TIP=Edit+List, VALUE=\"Edit Here\"");
+ "XXX_EDITBOX=YES, NAME=list3, TIP=Edit+List, VALUE=\"Edit Here\"");
// IupSetAttributes(list4, "1=\"Number 1\", 2=\"Number 2\", 3=\"Number 3\", 4=\"Number 4\", 5=\"Number 5\", 6=\"Number 6\", 7=\"Number 7\","
// "MULTIPLE=YES, NAME=list4, TIP=List, VALUE=+--++--");
IupSetAttributes(list4, "1=\"Number 3\", 2=\"Number 4\", 3=\"Number 2\", 4=\"Number 1\", 5=\"Number 6\", 6=\"Number 5\", 7=\"Number 7\","
- "MULTIPLE=YES, NAME=list4, TIP=List, SORT=YES, VALUE=+--++--");
+ "MULTIPLE=YES, NAME=list4, TIP=List, XXX_SORT=YES, VALUE=+--++--");
set_callbacks(list1);
set_callbacks(list2);
@@ -312,6 +320,7 @@ void ListTest(void)
IupSetCallbacks(IupButton("Get(COUNT)", NULL), "ACTION", getcount_cb, NULL),
NULL);
buttons2 = IupHbox(
+ IupSetCallbacks(IupButton("3", NULL), "ACTION", setitem_cb, NULL),
IupSetCallbacks(IupButton("INSERTITEM3", NULL), "ACTION", insertitem_cb, NULL),
IupSetCallbacks(IupButton("APPENDITEM", NULL), "ACTION", appenditem_cb, NULL),
IupSetCallbacks(IupButton("REMOVEITEM", NULL), "ACTION", removeitem_cb, NULL),
diff --git a/iup/test/make_uname b/iup/test/make_uname
index ae0ab49..1df8629 100755
--- a/iup/test/make_uname
+++ b/iup/test/make_uname
@@ -1,4 +1,5 @@
#This builds all the libraries of the folder for 1 uname
tecmake relink $1 $2 $3 $4 $5 $6 $7
-tecmake USE_GTK=Yes relink $1 $2 $3 $4 $5 $6 $7
+#tecmake USE_GTK=Yes USE_GDK=Yes relink $1 $2 $3 $4 $5 $6 $7
+tecmake USE_MOTIF=Yes relink $1 $2 $3 $4 $5 $6 $7
diff --git a/iup/test/matrix.c b/iup/test/matrix.c
index 280ffdb..48aa474 100755
--- a/iup/test/matrix.c
+++ b/iup/test/matrix.c
@@ -6,6 +6,13 @@
#undef __IUPDEF_H
#include "iup.h"
#include "iupcontrols.h"
+#include "iupcbs.h"
+
+static int mousemove_cb(Ihandle *ih, int lin, int col)
+{
+ printf("mousemove_cb(%d, %d)\n", lin, col);
+ return IUP_DEFAULT;
+}
static int dropcheck_cb(Ihandle *self, int lin, int col)
{
@@ -18,8 +25,9 @@ static Ihandle* create_matrix(void)
{
Ihandle* mat = IupMatrix(NULL);
- IupSetAttribute(mat, "NUMCOL", "15");
+// IupSetAttribute(mat, "NUMCOL", "15");
IupSetAttribute(mat, "NUMLIN", "20");
+ IupSetAttribute(mat, "NUMCOL", "8");
// IupSetAttribute(mat, "NUMCOL", "2");
// IupSetAttribute(mat, "NUMLIN", "3");
@@ -31,18 +39,19 @@ static Ihandle* create_matrix(void)
IupSetAttribute(mat, "0:2", "February 2000");
IupSetAttribute(mat, "1:1", "5.6\n3.33");
IupSetAttribute(mat, "2:1", "2.2");
- IupSetAttribute(mat, "3:1", "7.2");
+ IupSetAttribute(mat, "3:2", "Very Very Very Very Very Large Text");
IupSetAttribute(mat, "1:2", "4.5");
IupSetAttribute(mat, "2:2", "8.1");
- IupSetAttribute(mat, "3:2", "3.4");
+ IupSetAttribute(mat, "3:1", "3.4");
IupSetAttribute(mat, "3:3", "Font Test");
- IupSetAttribute(mat, "WIDTH2", "90");
- IupSetAttribute(mat, "HEIGHT2", "30");
+// IupSetAttribute(mat, "WIDTH2", "90");
+// IupSetAttribute(mat, "HEIGHT2", "30");
IupSetAttribute(mat,"SORTSIGN2","DOWN");
// IupSetAttribute(mat, "WIDTHDEF", "34");
- IupSetAttribute(mat,"MULTILINE", "YES");
+// IupSetAttribute(mat,"MULTILINE", "YES");
IupSetAttribute(mat,"RESIZEMATRIX", "YES");
- IupSetAttribute(mat,"USETITLESIZE", "YES");
+ IupSetAttribute(mat,"HIDDENTEXTMARKS", "YES");
+// IupSetAttribute(mat,"USETITLESIZE", "YES");
//IupSetAttribute(mat,"SCROLLBAR", "NO");
//IupSetAttribute(mat, "BGCOLOR1:2", "255 92 255");
//IupSetAttribute(mat, "BGCOLOR2:*", "92 92 255");
@@ -55,6 +64,8 @@ static Ihandle* create_matrix(void)
//IupSetAttribute(mat, "FONT*:3", "Times, Bold 14");
//IupSetAttribute(mat, "ALIGNMENT2", "ARIGHT");
// IupSetAttribute(mat, "ACTIVE", "NO");
+// IupSetAttribute(mat, "EXPAND", "NO");
+// IupSetAttribute(mat, "ALIGNMENT", "ALEFT");
IupSetAttribute(mat,"MARKMODE","CELL");
// IupSetAttribute(mat,"MARKMODE","LIN");
@@ -65,23 +76,27 @@ static Ihandle* create_matrix(void)
IupSetAttribute(mat,"MARK2:3","YES");
IupSetAttribute(mat,"MARK3:3","YES");
+ IupSetAttribute(mat,"FRAMEVERTCOLOR1:2","BGCOLOR");
+ IupSetAttribute(mat,"FRAMEHORIZCOLOR1:2","0 0 255");
+ IupSetAttribute(mat,"FRAMEHORIZCOLOR1:3","0 255 0");
+ IupSetAttribute(mat,"FRAMEVERTCOLOR2:2","255 255 0");
// IupSetAttribute(mat,"MARKMODE","LINCOL");
//IupSetAttribute(mat, "NUMCOL_VISIBLE_LAST", "YES");
//IupSetAttribute(mat, "NUMLIN_VISIBLE_LAST", "YES");
- IupSetAttribute(mat, "WIDTHDEF", "15");
- IupSetAttribute(mat, "20:15", "The End");
+// IupSetAttribute(mat, "WIDTHDEF", "15");
+ IupSetAttribute(mat, "20:8", "The End");
IupSetAttribute(mat, "10:0", "Middle Line");
IupSetAttribute(mat, "15:0", "Middle Line");
- IupSetAttribute(mat, "0:7", "Middle Column");
- IupSetAttribute(mat, "0:11", "Middle Column");
+ IupSetAttribute(mat, "0:4", "Middle Column");
IupSetAttribute(mat, "20:0", "Line Title Test");
- IupSetAttribute(mat, "0:15", "Column Title Test");
- IupSetAttribute(mat, "NUMCOL_VISIBLE", "6");
+ IupSetAttribute(mat, "0:8", "Column Title Test");
+ IupSetAttribute(mat, "NUMCOL_VISIBLE", "3");
IupSetAttribute(mat, "NUMLIN_VISIBLE", "8");
IupSetCallback(mat, "DROPCHECK_CB", (Icallback)dropcheck_cb);
+// IupSetCallback(mat, "MOUSEMOVE_CB", (Icallback)mousemove_cb);
return mat;
}
diff --git a/iup/test/matrix_cbmode.c b/iup/test/matrix_cbmode.c
index 0d0e17c..99ac21f 100755
--- a/iup/test/matrix_cbmode.c
+++ b/iup/test/matrix_cbmode.c
@@ -5,33 +5,60 @@
#include "iup.h"
#include "iupcontrols.h"
-static char data[3][3][50] =
+//static char data[3][3][50] =
+//{
+// {"1:1", "1:2", "1:3"},
+// {"2:1", "2:2", "2:3"},
+// {"3:1", "3:2", "3:3"},
+//};
+
+
+static int dropcheck_cb(Ihandle *self, int lin, int col)
{
- {"1:1", "1:2", "1:3"},
- {"2:1", "2:2", "2:3"},
- {"3:1", "3:2", "3:3"},
-};
+ if (lin == 3 && col == 1)
+ return IUP_DEFAULT;
+ return IUP_IGNORE;
+}
+static int drop(Ihandle *self, Ihandle *drop, int lin, int col)
+{
+ printf("drop_cb(%d, %d)\n", lin, col);
+ if(lin == 3 && col == 1)
+ {
+ IupSetAttribute(drop, "1", "A - Test of Very Big String for Dropdown!");
+ IupSetAttribute(drop, "2", "B");
+ IupSetAttribute(drop, "3", "C");
+ IupSetAttribute(drop, "4", "XXX");
+ IupSetAttribute(drop, "5", "5");
+ IupSetAttribute(drop, "6", "6");
+ IupSetAttribute(drop, "7", "7");
+ IupSetAttribute(drop, "8", NULL);
+ return IUP_DEFAULT;
+ }
+ return IUP_IGNORE;
+}
static char* value_cb(Ihandle *self, int lin, int col)
{
if (lin == 0 || col == 0)
return "Title";
- return data[lin-1][col-1];
+ return "cell";
+// return data[lin-1][col-1];
}
static int value_edit_cb(Ihandle *self, int lin, int col, char* newvalue)
{
- strcpy(data[lin-1][col-1], newvalue);
+// strcpy(data[lin-1][col-1], newvalue);
return IUP_DEFAULT;
}
static Ihandle* create_matrix(void)
{
Ihandle* mat = IupMatrix(NULL);
+ int lin, col;
- IupSetAttribute(mat, "NUMCOL", "3");
- IupSetAttribute(mat, "NUMLIN", "3");
+ IupSetAttribute(mat, "NUMCOL", "20");
+ IupSetAttribute(mat, "NUMLIN", "5000");
IupSetAttribute(mat, "NUMCOL_VISIBLE", "3");
IupSetAttribute(mat, "NUMLIN_VISIBLE", "3");
@@ -40,19 +67,36 @@ static Ihandle* create_matrix(void)
// IupSetAttribute(mat, "HEIGHT2", "30");
// IupSetAttribute(mat, "WIDTHDEF", "34");
// IupSetAttribute(mat,"RESIZEMATRIX", "YES");
- IupSetAttribute(mat,"SCROLLBAR", "NO");
+ IupSetAttribute(mat,"SCROLLBAR", "YES");
IupSetCallback(mat,"VALUE_CB",(Icallback)value_cb);
- IupSetCallback(mat,"VALUE_EDIT_CB",(Icallback)value_edit_cb);
+// IupSetCallback(mat,"VALUE_EDIT_CB",(Icallback)value_edit_cb);
+// IupSetCallback(mat, "DROPCHECK_CB", (Icallback)dropcheck_cb);
+// IupSetCallback(mat,"DROP_CB",(Icallback)drop);
// IupSetAttribute(mat, "HEIGHT0", "10");
// IupSetAttribute(mat, "WIDTH0", "90");
// IupSetAttribute(mat,"MARKMODE","LIN");
// IupSetAttribute(mat,"MARKMULTIPLE","NO");
+ IupSetAttribute(mat,"MARKMODE","CELL");
+ IupSetAttribute(mat,"MARKMULTIPLE","YES");
+ IupSetAttribute(mat,"USETITLESIZE","YES");
//IupSetAttribute(mat, "NUMCOL_VISIBLE_LAST", "YES");
//IupSetAttribute(mat, "NUMLIN_VISIBLE_LAST", "YES");
// IupSetAttribute(mat, "WIDTHDEF", "15");
+// IupSetAttribute(mat,"FRAMEVERTCOLOR1:2","BGCOLOR");
+// IupSetAttribute(mat,"FRAMEHORIZCOLOR2:1","BGCOLOR");
+
+ for (lin = 0; lin < 3000; lin++)
+ {
+ for (col = 0; col < 20; col++)
+ {
+ IupMatSetAttribute(mat,"BGCOLOR", lin, col, "192 192 192");
+ IupMatSetAttribute(mat,"FGCOLOR", lin, col, "1 1 1");
+ }
+ }
+
return mat;
}
diff --git a/iup/test/matrix_cbs.c b/iup/test/matrix_cbs.c
index 1b7afb9..31d2207 100755
--- a/iup/test/matrix_cbs.c
+++ b/iup/test/matrix_cbs.c
@@ -305,7 +305,7 @@ void MatrixCbsTest(void)
// IupZbox(
IupTabs(
IupSetAttributes(
- IupVbox((create_mat()), bt, IupText(""), IupLabel("Label Text"), IupVal("HORIZONTAL"),
+ IupVbox((create_mat()), bt, IupText(""), IupLabel("Label Text"), IupFrame(IupVal("HORIZONTAL")),
NULL), "MARGIN=10x10, GAP=10, TABTITLE=Test1"),
IupSetAttributes(
IupVbox(IupFrame(create_mat()), IupText(""), IupLabel("Label Text"), IupVal("HORIZONTAL"),
diff --git a/iup/test/pplot.c b/iup/test/pplot.c
index 639aa34..1283179 100755
--- a/iup/test/pplot.c
+++ b/iup/test/pplot.c
@@ -199,6 +199,7 @@ static void InitPlots(void)
}
IupPPlotEnd(plot[2]);
IupSetAttribute(plot[2], "DS_COLOR", "100 100 200");
+ IupSetAttribute(plot[2], "DS_LINESTYLE", "DOTTED");
/* PLOT 3 - MakeExamplePlot5 */
IupSetAttribute(plot[3], "TITLE", "Bar Mode");
@@ -579,8 +580,8 @@ void PPlotTest(void)
boxinfo = IupVbox(lbl1, IupFill(), lbl2, NULL);
boxdial1 = IupHbox(boxinfo, dial1, NULL);
- IupSetAttribute(boxdial1, "ALIGN", "ACENTER");
- IupSetAttribute(boxinfo, "ALIGN", "ACENTER");
+ IupSetAttribute(boxdial1, "ALIGNMENT", "ACENTER");
+ IupSetAttribute(boxinfo, "ALIGNMENT", "ACENTER");
IupSetAttribute(boxinfo, "SIZE", "20x52");
IupSetAttribute(boxinfo, "GAP", "2");
IupSetAttribute(boxinfo, "MARGIN", "4");
@@ -608,8 +609,8 @@ void PPlotTest(void)
boxinfo = IupHbox(lbl1, IupFill(), lbl2, NULL);
boxdial2 = IupVbox(dial2, boxinfo, NULL);
- IupSetAttribute(boxdial2, "ALIGN", "ACENTER");
- IupSetAttribute(boxinfo, "ALIGN", "ACENTER");
+ IupSetAttribute(boxdial2, "ALIGNMENT", "ACENTER");
+ IupSetAttribute(boxinfo, "ALIGNMENT", "ACENTER");
IupSetAttribute(boxinfo, "SIZE", "64x16");
IupSetAttribute(boxinfo, "GAP", "2");
IupSetAttribute(boxinfo, "MARGIN", "4");
diff --git a/iup/test/predialogs.c b/iup/test/predialogs.c
index e7b36ea..570dffd 100755
--- a/iup/test/predialogs.c
+++ b/iup/test/predialogs.c
@@ -6,7 +6,25 @@
#include "iupkey.h"
#include "iupcontrols.h"
+//#define USE_GDK
+#ifdef USE_GDK
+#include <gtk/gtk.h>
+static void drawTest(Ihandle *ih)
+{
+ GtkWidget* widget = (GtkWidget*)IupGetAttribute(ih, "WID");
+ GdkGC* gc = widget->style->fg_gc[GTK_WIDGET_STATE(widget)];
+ int w = IupGetInt(ih, "PREVIEWWIDTH");
+ int h = IupGetInt(ih, "PREVIEWHEIGHT");
+ GdkColor color;
+
+ color.red = 65535; color.green = 0; color.blue = 0;
+ gdk_gc_set_rgb_fg_color(gc, &color);
+
+ gdk_draw_line(widget->window, gc, 0, 0, w-1, h-1);
+ gdk_draw_line(widget->window, gc, 0, h-1, w-1, 0);
+}
+#else
#ifdef WIN32
#undef _WIN32_WINNT
#define _WIN32_WINNT 0x0500
@@ -62,8 +80,12 @@ static void drawTest(Ihandle* ih)
XDrawLine(dpy, wnd, gc, 0, h-1, w-1, 0);
}
#endif
+#endif
#ifdef USE_OPENGL
+#ifdef WIN32
+#include <windows.h>
+#endif
#include <GL/gl.h>
#include "iupgl.h"
@@ -223,12 +245,12 @@ static void new_file(char* dialogtype, int preview)
// IupSetAttributes(dlg, "FILE = \"test.bmp\", DIRECTORY = \"/tecgraf/iup\""); // OK
// IupSetAttributes(dlg, "FILE = \"test.bmp\", DIRECTORY = \"\\tecgraf\\iup\""); // OK
// IupSetAttribute(dlg, "NOCHANGEDIR", "NO");
-// IupSetAttribute(dlg, "MULTIPLEFILES", "YES");
+ IupSetAttribute(dlg, "MULTIPLEFILES", "YES");
+ IupSetCallback(dlg, "FILE_CB", (Icallback)file_cb);
if (preview)
{
IupSetAttribute(dlg, "SHOWPREVIEW", "YES");
- IupSetCallback(dlg, "FILE_CB", (Icallback)file_cb);
#ifdef USE_OPENGL
if (preview==2)
diff --git a/iup/test/sample.c b/iup/test/sample.c
index e99617d..038cffd 100755
--- a/iup/test/sample.c
+++ b/iup/test/sample.c
@@ -185,6 +185,24 @@ static int help_cb(Ihandle* ih)
return IUP_DEFAULT;
}
+static int action1_cb(Ihandle* ih)
+{
+ IupSetAttribute(IupGetDialog(ih), "BACKGROUND", "255 128 128");
+ return IUP_DEFAULT;
+}
+
+static int action2_cb(Ihandle* ih)
+{
+ IupSetAttribute(IupGetDialog(ih), "BGCOLOR", "0 128 0");
+ return IUP_DEFAULT;
+}
+
+static int action3_cb(Ihandle* ih)
+{
+ IupSetAttribute(IupGetChild(IupGetDialog(ih), 0), "BGCOLOR", "128 0 0");
+ return IUP_DEFAULT;
+}
+
static Ihandle* set_callbacks(Ihandle* ih)
{
IupSetCallback(ih, "VALUECHANGED_CB", (Icallback)valuechanged_cb);
@@ -237,9 +255,9 @@ void SampleTest(void)
_frm_1 = IupFrame(
IupVbox(
set_callbacks(IupSetAttributes(IupButton("Button Text", NULL), "PADDING=5x5")),
- set_callbacks(IupSetAttributes(IupButton("Text", NULL), "IMAGE=img1, PADDING=5x5")),
- set_callbacks(IupSetAttributes(IupButton(NULL, NULL), "IMAGE=img1")),
- set_callbacks(IupSetAttributes(IupButton("", NULL), "IMAGE=img1,IMPRESS=img2")),
+ IupSetCallbacks(set_callbacks(IupSetAttributes(IupButton("Text", NULL), "IMAGE=img1, PADDING=5x5")),"ACTION", action1_cb, NULL),
+ IupSetCallbacks(set_callbacks(IupSetAttributes(IupButton(NULL, NULL), "IMAGE=img1")),"ACTION", action2_cb, NULL),
+ IupSetCallbacks(set_callbacks(IupSetAttributes(IupButton("", NULL), "IMAGE=img1,IMPRESS=img2")),"ACTION", action3_cb, NULL),
NULL));
IupSetAttribute(_frm_1,"TITLE","IupButton");
diff --git a/iup/test/split.c b/iup/test/split.c
new file mode 100644
index 0000000..7b3208a
--- /dev/null
+++ b/iup/test/split.c
@@ -0,0 +1,47 @@
+#include <stdio.h>
+#include "iup.h"
+
+void SplitTest(void)
+{
+ Ihandle *dlg, *bt, *split, *ml, *vbox;
+
+ bt = IupButton("Button", NULL);
+ IupSetAttribute(bt, "EXPAND", "YES");
+
+ ml = IupMultiLine(NULL);
+ IupSetAttribute(ml, "EXPAND", "YES");
+ IupSetAttribute(ml, "VISIBLELINES", "5");
+ IupSetAttribute(ml, "VISIBLECOLUMNS", "10");
+
+ split = IupSplit(bt, ml);
+// IupSetAttribute(split, "DIRECTION", "VERTICAL");
+// IupSetAttribute(split, "DIRECTION", "HORIZONTAL");
+// IupSetAttribute(split, "COLOR", "127 127 255");
+// IupSetAttribute(split, "LAYOUTDRAG", "NO");
+// IupSetAttribute(split, "AUTOHIDE", "YES");
+// IupSetAttribute(split, "SHOWGRIP", "NO");
+
+ vbox = IupVbox(split, NULL);
+ IupSetAttribute(vbox, "MARGIN", "10x10");
+ IupSetAttribute(vbox, "GAP", "10");
+
+ dlg = IupDialog(vbox);
+ IupSetAttribute(dlg, "TITLE", "IupSplit Example");
+
+ IupShow(dlg);
+}
+
+#ifndef BIG_TEST
+int main(int argc, char* argv[])
+{
+ IupOpen(&argc, &argv);
+
+ SplitTest();
+
+ IupMainLoop();
+
+ IupClose();
+
+ return EXIT_SUCCESS;
+}
+#endif
diff --git a/iup/test/tabs.c b/iup/test/tabs.c
index a069f01..1efc1a9 100755
--- a/iup/test/tabs.c
+++ b/iup/test/tabs.c
@@ -73,6 +73,7 @@ static int cbValuePos(Ihandle* ih)
{
Ihandle* tabs = (Ihandle*)IupGetAttribute(ih, "APP_TABS");
IupSetAttribute(tabs, "VALUEPOS", "0");
+// IupSetAttribute(tabs, "TABTITLE0", "1asdasd");
// printf("VALUE=%s\n", IupGetAttribute(tabs, "VALUE"));
return IUP_DEFAULT;
}
diff --git a/iup/test/tree.c b/iup/test/tree.c
index 009c97f..ed1f6aa 100755
--- a/iup/test/tree.c
+++ b/iup/test/tree.c
@@ -72,41 +72,49 @@ static Ihandle* load_image_TestImage(void)
static int addleaf(void)
{
- char attr[50];
Ihandle* tree = IupGetHandle("tree");
int id = IupGetInt(tree, "VALUE");
- sprintf(attr, "ADDLEAF%d", id);
- IupSetAttribute(tree, attr, "");
+ IupTreeSetAttribute(tree, "ADDLEAF", id, "");
return IUP_DEFAULT;
}
static int insertleaf(void)
{
- char attr[50];
Ihandle* tree = IupGetHandle("tree");
int id = IupGetInt(tree, "VALUE");
- sprintf(attr, "INSERTLEAF%d", id);
- IupSetAttribute(tree, attr, "");
+ IupTreeSetAttribute(tree, "INSERTLEAF", id, "");
return IUP_DEFAULT;
}
static int addbranch(void)
{
- char attr[50];
Ihandle* tree = IupGetHandle("tree");
int id = IupGetInt(tree, "VALUE");
- sprintf(attr, "ADDBRANCH%d", id);
- IupSetAttribute(tree, attr, "");
+ IupTreeSetAttribute(tree, "ADDBRANCH", id, "");
return IUP_DEFAULT;
}
static int insertbranch(void)
{
- char attr[50];
Ihandle* tree = IupGetHandle("tree");
int id = IupGetInt(tree, "VALUE");
- sprintf(attr, "INSERTBRANCH%d", id);
- IupSetAttribute(tree, attr, "");
+ IupTreeSetAttribute(tree, "INSERTBRANCH", id, "");
+ return IUP_DEFAULT;
+}
+
+static int togglestate(void)
+{
+ char *value;
+ Ihandle* tree = IupGetHandle("tree");
+ int id = IupGetInt(tree, "VALUE");
+ value = IupTreeGetAttribute(tree, "STATE", id);
+ if (value)
+ {
+ if (strcmp(value, "EXPANDED")==0)
+ IupTreeSetAttribute(tree, "STATE", id, "COLLAPSED");
+ else
+ IupTreeSetAttribute(tree, "STATE", id, "EXPANDED");
+ }
return IUP_DEFAULT;
}
@@ -139,6 +147,34 @@ static int removechild(void)
return IUP_DEFAULT;
}
+static int removemarked(void)
+{
+ Ihandle* tree = IupGetHandle("tree");
+ IupSetAttribute(tree, "DELNODE", "MARKED");
+ return IUP_DEFAULT;
+}
+
+static int removeall(void)
+{
+ Ihandle* tree = IupGetHandle("tree");
+ IupSetAttribute(tree, "DELNODE", "ALL");
+ return IUP_DEFAULT;
+}
+
+static int expandall(void)
+{
+ Ihandle* tree = IupGetHandle("tree");
+ IupSetAttribute(tree, "EXPANDALL", "YES");
+ return IUP_DEFAULT;
+}
+
+static int contractall(void)
+{
+ Ihandle* tree = IupGetHandle("tree");
+ IupSetAttribute(tree, "EXPANDALL", "NO");
+ return IUP_DEFAULT;
+}
+
int renamenode(void)
{
Ihandle* tree = IupGetHandle("tree");
@@ -162,6 +198,8 @@ static int showrename_cb(Ihandle* ih, int id)
{
(void)ih;
printf("SHOWRENAME_CB(%d)\n", id);
+ if (id == 6)
+ return IUP_IGNORE;
return IUP_DEFAULT;
}
@@ -183,15 +221,20 @@ static int multiselection_cb(Ihandle *ih, int* ids, int n)
return IUP_DEFAULT;
}
-static int executeleaf_cb(Ihandle* ih, int id)
+static int multiunselection_cb(Ihandle *ih, int* ids, int n)
{
- printf("EXECUTELEAF_CB (%d)\n", id);
+ int i;
+ (void)ih;
+ printf("MULTIUNSELECTION_CB(");
+ for (i = 0; i < n; i++)
+ printf("%d, ", ids[i]);
+ printf("n=%d)\n", n);
return IUP_DEFAULT;
}
-static int renamenode_cb(Ihandle* ih, int id, char* title)
+static int executeleaf_cb(Ihandle* ih, int id)
{
- printf("RENAMENODE_CB (%d=%s)\n", id, title);
+ printf("EXECUTELEAF_CB (%d)\n", id);
return IUP_DEFAULT;
}
@@ -219,6 +262,12 @@ static int branchclose_cb(Ihandle* ih, int id)
return IUP_DEFAULT;
}
+static int noderemoved_cb(Ihandle* ih, void* data)
+{
+ printf("NODEREMOVED_CB(%p)\n", data);
+ return IUP_DEFAULT;
+}
+
static int dragdrop_cb(Ihandle* ih, int drag_id, int drop_id, int shift, int control)
{
printf("DRAGDROP_CB (%d)->(%d)\n", drag_id, drop_id);
@@ -317,6 +366,11 @@ static int rightclick_cb(Ihandle* ih, int id)
IupItem ("Insert Branch","insertbranch"),
IupItem ("Remove Node","removenode"),
IupItem ("Remove Children","removechild"),
+ IupItem ("Remove Marked","removemarked"),
+ IupItem ("Remove All","removeall"),
+ IupItem ("Toggle State","togglestate"),
+ IupItem ("Expand All","expandall"),
+ IupItem ("Contract All","contractall"),
IupSubmenu("Focus", IupMenu(
IupItem ("ROOT", "selectnode"),
IupItem ("LAST", "selectnode"),
@@ -342,7 +396,12 @@ static int rightclick_cb(Ihandle* ih, int id)
IupSetFunction("insertbranch", (Icallback) insertbranch);
IupSetFunction("removenode", (Icallback) removenode);
IupSetFunction("removechild", (Icallback) removechild);
+ IupSetFunction("removemarked", (Icallback) removemarked);
IupSetFunction("renamenode", (Icallback) renamenode);
+ IupSetFunction("togglestate", (Icallback) togglestate);
+ IupSetFunction("removeall", (Icallback) removeall);
+ IupSetFunction("expandall", (Icallback) expandall);
+ IupSetFunction("contractall", (Icallback) contractall);
// sprintf(attr, "%d", id);
// IupSetAttribute(ih, "VALUE", attr);
@@ -374,7 +433,8 @@ static int next(Ihandle *ih)
static int prev(Ihandle *ih)
{
Ihandle* tree = IupGetHandle("tree");
- IupSetAttribute(tree, "VALUE", "PREVIOUS");
+// IupSetAttribute(tree, "VALUE", "PREVIOUS");
+ IupSetAttribute(tree, "STATE2", "COLLAPSED");
return IUP_DEFAULT;
}
@@ -384,7 +444,6 @@ static void init_tree(void)
Ihandle* tree = IupTree();
IupSetCallback(tree, "EXECUTELEAF_CB", (Icallback) executeleaf_cb);
- IupSetCallback(tree, "RENAMENODE_CB", (Icallback) renamenode_cb);
IupSetCallback(tree, "RENAME_CB", (Icallback) rename_cb);
IupSetCallback(tree, "BRANCHCLOSE_CB", (Icallback) branchclose_cb);
IupSetCallback(tree, "BRANCHOPEN_CB", (Icallback) branchopen_cb);
@@ -394,12 +453,14 @@ static void init_tree(void)
IupSetCallback(tree, "SHOWRENAME_CB", (Icallback) showrename_cb);
IupSetCallback(tree, "SELECTION_CB", (Icallback) selection_cb);
IupSetCallback(tree, "MULTISELECTION_CB", (Icallback) multiselection_cb);
+ IupSetCallback(tree, "MULTIUNSELECTION_CB", (Icallback) multiunselection_cb);
IupSetCallback(tree, "GETFOCUS_CB", (Icallback) getfocus_cb);
IupSetCallback(tree, "KILLFOCUS_CB", (Icallback) killfocus_cb);
//IupSetCallback(tree, "ENTERWINDOW_CB", (Icallback) enterwindow_cb);
//IupSetCallback(tree, "LEAVEWINDOW_CB", (Icallback)leavewindow_cb);
//IupSetCallback(tree, "BUTTON_CB", (Icallback)button_cb);
//IupSetCallback(tree, "MOTION_CB", (Icallback)motion_cb);
+ IupSetCallback(tree, "NODEREMOVED_CB", (Icallback)noderemoved_cb);
IupSetCallback(tree, "HELP_CB", (Icallback)help_cb);
@@ -409,11 +470,10 @@ static void init_tree(void)
// IupSetAttribute(tree, "BGCOLOR", "255 255 255");
IupSetAttribute(tree, "MARKMODE", "MULTIPLE");
- //IupSetAttribute(tree, "SHOWDRAGDROP", "YES");
IupSetAttribute(tree, "SHOWRENAME", "YES");
- //IupSetAttribute(tree, "AUTODRAGDROP", "YES"); /* Gtk Only */
+// IupSetAttribute(tree, "SHOWDRAGDROP", "YES");
- //IupSetAttribute(tree, "ADDEXPANDED", "NO");
+ IupSetAttribute(tree, "ADDEXPANDED", "YES");
// IupSetAttribute(tree, "HIDELINES", "YES");
// IupSetAttribute(tree, "HIDEBUTTONS", "YES");
// IupSetAttribute(tree, "INDENTATION", "40");
@@ -457,7 +517,7 @@ static void init_tree_nodes(void)
//IupSetAttribute(tree, "VALUE", "0");
IupSetAttribute(tree, "TITLE", "Figures"); /* title of the root, id=0 */
IupSetAttribute(tree, "ADDBRANCH", "3D"); /* 3D=1 */
- IupSetAttribute(tree, "ADDBRANCH", "2D"); /* add to the root, so it will be before "3D", now 2D=1, 3D=2 */
+ IupSetAttribute(tree, "ADDLEAF", "2D"); /* add to the root, so it will be before "3D", now 2D=1, 3D=2 */
IupSetAttribute(tree, "ADDBRANCH", "parallelogram"); /* id=1 */
IupSetAttribute(tree, "ADDLEAF1", "diamond");
IupSetAttribute(tree, "ADDLEAF1", "square");
@@ -474,14 +534,15 @@ static void init_tree_nodes(void)
IupSetAttribute(tree, "ADDLEAF2", "equilateral"); /* ... */
IupSetAttribute(tree, "ADDLEAF3", "isoceles");
IupSetAttribute(tree, "ADDLEAF4", "scalenus");
+ IupSetAttribute(tree, "STATE2", "collapsed");
IupSetAttribute(tree, "INSERTBRANCH2","parallelogram"); /* same depth as id=2, new id=6 */
IupSetAttribute(tree, "ADDLEAF6", "square");
IupSetAttribute(tree, "ADDLEAF7", "diamond");
- IupSetAttribute(tree, "INSERTBRANCH6","2D"); /* new id=9 */
+ IupSetAttribute(tree, "INSERTLEAF6","2D"); /* new id=9 */
IupSetAttribute(tree, "INSERTBRANCH9","3D");
#endif
- IupSetAttribute(tree, "VALUE", "6");
+ //IupSetAttribute(tree, "VALUE", "6");
IupSetAttribute(tree, "RASTERSIZE", NULL); /* remove the minimum size limitation */
IupSetAttribute(tree, "COLOR8", "92 92 255");
IupSetAttribute(tree, "TITLEFONT8", "Courier, 14");
diff --git a/iup/test/val.c b/iup/test/val.c
index 2f0b500..c1b4724 100755
--- a/iup/test/val.c
+++ b/iup/test/val.c
@@ -118,8 +118,6 @@ void ValTest(void)
{
Ihandle *dlg, *val_h, *val_v;
-// IupOldValOpen();
-
lbl_v = IupLabel("VALUE=");
IupSetAttribute(lbl_v, "SIZE", "70x");
@@ -143,8 +141,8 @@ void ValTest(void)
val_h = IupVal("HORIZONTAL");
IupSetAttribute(val_h, "MAX", "100.0");
- IupSetAttribute(val_h, "SHOWTICKS", "10");
- IupSetAttribute(val_h, "TICKSPOS", "BOTH"); /* Windows Only */
+// IupSetAttribute(val_h, "SHOWTICKS", "10");
+// IupSetAttribute(val_h, "TICKSPOS", "BOTH"); /* Windows Only */
// IupSetAttribute(val_h, "INVERTED", "YES");
IupSetAttribute(val_h, "EXPAND", "HORIZONTAL");
diff --git a/iup/test/vbox.c b/iup/test/vbox.c
index 3040ea6..ac53b6b 100755
--- a/iup/test/vbox.c
+++ b/iup/test/vbox.c
@@ -28,13 +28,17 @@ void VboxTest(void)
IupSetAttribute(fr1, "TITLE", "ALIGNMENT=ALEFT");
IupSetAttribute(btn_11, "SIZE", "20x10");
- IupSetAttribute(btn_12, "SIZE", "30x20");
- IupSetAttribute(btn_13, "SIZE", "40x30");
+// IupSetAttribute(btn_12, "SIZE", "30x20");
+ IupSetAttribute(btn_12, "EXPAND", "VERTICAL");
+ IupSetAttribute(btn_12, "EXPANDWEIGTH", "1.3");
+// IupSetAttribute(btn_13, "SIZE", "40x30");
+ IupSetAttribute(btn_13, "EXPAND", "VERTICAL");
+ IupSetAttribute(btn_13, "EXPANDWEIGTH", "0.7");
IupSetAttribute(vbox_1, "ALIGNMENT", "ALEFT");
// IupSetAttribute(vbox_1, "MARGIN", "20x20");
// IupSetAttribute(vbox_1, "GAP", "10");
- IupSetAttribute(vbox_1, "HOMOGENEOUS", "YES");
- IupSetAttribute(vbox_1, "EXPANDCHILDREN", "YES");
+// IupSetAttribute(vbox_1, "HOMOGENEOUS", "YES");
+// IupSetAttribute(vbox_1, "EXPANDCHILDREN", "YES");
// IupSetAttribute(btn_12, "VISIBLE", "NO");
// IupSetAttribute(btn_12, "FLOATING", "YES");
diff --git a/iup/test/zbox.c b/iup/test/zbox.c
index 0451277..1e8571e 100755
--- a/iup/test/zbox.c
+++ b/iup/test/zbox.c
@@ -29,7 +29,7 @@ void ZboxTest(void)
text = IupText("");
- IupSetAttributes (text, "EXPAND = YES, VALUE = \"Enter your text here\"");
+ IupSetAttributes (text, "EXPAND=YES, VALUE=\"Enter your text here\"");
/* Creates a label */
lbl = IupLabel("This element is a label");
@@ -42,9 +42,10 @@ void ZboxTest(void)
IupSetHandle ("text", text);
IupSetHandle ("lbl", lbl);
IupSetHandle ("btn", btn);
-
+
/* Creates zbox with four elements */
zbox = IupZbox (frame, text, lbl, btn, NULL);
+// zbox = IupZbox (IupZbox(IupSetAttributes(IupCanvas(NULL), "RASTERSIZE=100x100"), NULL), NULL);
/* Associates handle "zbox" with zbox */
IupSetHandle ("zbox", zbox);
diff --git a/rclua5 b/rclua5
new file mode 100644
index 0000000..00d4139
--- /dev/null
+++ b/rclua5
@@ -0,0 +1,19591 @@
+diff --git a/iup/COPYRIGHT b/iup/COPYRIGHT
+index dd31d6c..0061f2d 100755
+--- a/iup/COPYRIGHT
++++ b/iup/COPYRIGHT
+@@ -7,7 +7,7 @@ and commercial purposes at absolutely no cost.
+ 
+ ===============================================================================
+ 
+-Copyright (C) 1994-2009 Tecgraf, PUC-Rio.
++Copyright (C) 1994-2010 Tecgraf, PUC-Rio.
+ 
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+diff --git a/iup/etc/iup.rc b/iup/etc/iup.rc
+index eab8cf5..49c324d 100755
+--- a/iup/etc/iup.rc
++++ b/iup/etc/iup.rc
+@@ -12,7 +12,7 @@ BEGIN
+ VALUE "CompanyName", "Tecgraf/PUC-Rio\0"
+ VALUE "FileDescription", "IUP - Portable User Interface\0"
+ VALUE "FileVersion", "3.0.0\0"
+- VALUE "LegalCopyright", "Copyright © 1994-2009 Tecgraf, PUC-Rio.\0"
++ VALUE "LegalCopyright", "Copyright © 1994-2010 Tecgraf, PUC-Rio.\0"
+ VALUE "OriginalFilename", "iup.dll\0"
+ VALUE "ProductName", "IUP for Windows\0"
+ VALUE "ProductVersion", "3.0.0\0"
+diff --git a/iup/include/iup.h b/iup/include/iup.h
+index 9913329..2d33b98 100755
+--- a/iup/include/iup.h
++++ b/iup/include/iup.h
+@@ -19,11 +19,11 @@ extern "C" {
+ 
+ 
+ #define IUP_NAME "IUP - Portable User Interface"
+-#define IUP_COPYRIGHT "Copyright (C) 1994-2009 Tecgraf, PUC-Rio."
++#define IUP_COPYRIGHT "Copyright (C) 1994-2010 Tecgraf, PUC-Rio."
+ #define IUP_DESCRIPTION "Portable toolkit for building graphical user interfaces."
+-#define IUP_VERSION "3.0" /* bug fixes are reported only by IupVersion functions */
+-#define IUP_VERSION_NUMBER 300000
+-#define IUP_VERSION_DATE "2009/10/02"
++#define IUP_VERSION "3.1" /* bug fixes are reported only by IupVersion functions */
++#define IUP_VERSION_NUMBER 301000
++#define IUP_VERSION_DATE "2010/04/22"
+ 
+ typedef struct Ihandle_ Ihandle;
+ typedef int (*Icallback)(Ihandle*);
+@@ -38,6 +38,7 @@ void IupImageLibOpen (void);
+ 
+ int IupMainLoop (void);
+ int IupLoopStep (void);
++int IupLoopStepWait (void);
+ int IupMainLoopLevel (void);
+ void IupFlush (void);
+ void IupExitLoop (void);
+@@ -148,6 +149,7 @@ Ihandle* IupNormalizerv(Ihandle* *ih_list);
+ Ihandle* IupCbox (Ihandle* child, ...);
+ Ihandle* IupCboxv (Ihandle* *children);
+ Ihandle* IupSbox (Ihandle *child);
++Ihandle* IupSplit (Ihandle* child1, Ihandle* child2);
+ 
+ Ihandle* IupFrame (Ihandle* child);
+ 
+@@ -197,12 +199,13 @@ int IupTreeSetUserId(Ihandle* ih, int id, void* userid);
+ void* IupTreeGetUserId(Ihandle* ih, int id);
+ int IupTreeGetId(Ihandle* ih, void *userid);
+ 
+-void IupTreeSetAttribute (Ihandle* ih, const char* name, int id, char* value);
+-void IupTreeStoreAttribute(Ihandle* ih, const char* name, int id, char* value);
++void IupTreeSetAttribute (Ihandle* ih, const char* name, int id, const char* value);
++void IupTreeStoreAttribute(Ihandle* ih, const char* name, int id, const char* value);
+ char* IupTreeGetAttribute (Ihandle* ih, const char* name, int id);
+ int IupTreeGetInt (Ihandle* ih, const char* name, int id);
+ float IupTreeGetFloat (Ihandle* ih, const char* name, int id);
+-void IupTreeSetfAttribute (Ihandle* ih, const char* name, int id, char* format, ...);
++void IupTreeSetfAttribute (Ihandle* ih, const char* name, int id, const char* format, ...);
++void IupTreeSetAttributeHandle(Ihandle* ih, const char* a, int id, Ihandle* ih_named);
+ 
+ 
+ /************************************************************************/
+@@ -338,7 +341,7 @@ int IupMain (int argc, char** argv); /* In C++ we have to declare the prototype
+ #endif
+ 
+ /******************************************************************************
+-* Copyright (C) 1994-2009 Tecgraf, PUC-Rio.
++* Copyright (C) 1994-2010 Tecgraf, PUC-Rio.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+diff --git a/iup/include/iupcbs.h b/iup/include/iupcbs.h
+index f33166b..70d117f 100755
+--- a/iup/include/iupcbs.h
++++ b/iup/include/iupcbs.h
+@@ -24,7 +24,7 @@ typedef int (*IFnnii)(Ihandle*, Ihandle*, int, int); /* drop_cb */
+ typedef int (*IFnnn)(Ihandle*, Ihandle*, Ihandle*); /* tabchange_cb */
+ typedef int (*IFnss)(Ihandle*, char *, char *); /* file_cb */
+ typedef int (*IFns)(Ihandle*, char *); /* multiselect_cb */
+-typedef int (*IFnis)(Ihandle*, int, char *); /* text_action, multiline_action, edit_cb, renamenode_cb, rename_cb */
++typedef int (*IFnis)(Ihandle*, int, char *); /* text_action, multiline_action, edit_cb, rename_cb */
+ typedef int (*IFnsii)(Ihandle*, char*, int, int); /* list_action */
+ typedef int (*IFnsiii)(Ihandle*, char*, int, int, int); /* dropfiles_cb */
+ typedef int (*IFniis)(Ihandle*, int, int, char*); /* motion_cb, click_cb, value_edit_cb */
+diff --git a/iup/include/iupcontrols.h b/iup/include/iupcontrols.h
+index c7bc566..a30d407 100755
+--- a/iup/include/iupcontrols.h
++++ b/iup/include/iupcontrols.h
+@@ -15,9 +15,6 @@ extern "C" {
+ int IupControlsOpen(void);
+ void IupControlsClose(void); /* for backward compatibility only, does nothing since IUP 3 */
+ 
+-void IupOldValOpen(void);
+-void IupOldTabsOpen(void);
+-
+ Ihandle* IupColorbar(void);
+ Ihandle* IupCells(void);
+ Ihandle *IupColorBrowser(void);
+diff --git a/iup/include/iuplua.h b/iup/include/iuplua.h
+index dc660b5..854a858 100755
+--- a/iup/include/iuplua.h
++++ b/iup/include/iuplua.h
+@@ -23,7 +23,7 @@ int iuplua_dofile (char *filename);
+ 
+ #ifdef LUA_TNONE /* Lua 5 */
+ int iuplua_open(lua_State *L);
+-int iupkey_open(lua_State *L);
++int iupkey_open(lua_State *L); /* does nothing, kept for backward compatibility */
+ int iuplua_close(lua_State * L);
+ 
+ /* utilities */
+diff --git a/iup/mak.vc8/iupgtk.vcproj b/iup/mak.vc8/iupgtk.vcproj
+index 5d0a8e2..9fccbb2 100755
+--- a/iup/mak.vc8/iupgtk.vcproj
++++ b/iup/mak.vc8/iupgtk.vcproj
+@@ -143,6 +143,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\src\gtk\iupgtk_clipboard.c"
++ >
++ </File>
++ <File
+ RelativePath="..\src\gtk\iupgtk_colordlg.c"
+ >
+ </File>
+diff --git a/iup/mak.vc8/iuplua5.vcproj b/iup/mak.vc8/iuplua5.vcproj
+index 0c62f76..1245e86 100755
+--- a/iup/mak.vc8/iuplua5.vcproj
++++ b/iup/mak.vc8/iuplua5.vcproj
+@@ -123,6 +123,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\srclua5\il_clipboard.c"
++ >
++ </File>
++ <File
+ RelativePath="..\srclua5\il_colordlg.c"
+ >
+ </File>
+@@ -307,6 +311,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\srclua5\clipboard.lua"
++ >
++ </File>
++ <File
+ RelativePath="..\srclua5\colordlg.lua"
+ >
+ </File>
+diff --git a/iup/mak.vc8/iupmot.vcproj b/iup/mak.vc8/iupmot.vcproj
+index aedd67e..d2d1780 100755
+--- a/iup/mak.vc8/iupmot.vcproj
++++ b/iup/mak.vc8/iupmot.vcproj
+@@ -161,6 +161,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\src\mot\iupmot_clipboard.c"
++ >
++ </File>
++ <File
+ RelativePath="..\src\mot\iupmot_colordlg.c"
+ >
+ </File>
+diff --git a/iup/mak.vc8/iupsample.vcproj b/iup/mak.vc8/iupsample.vcproj
+index bddc4f6..dde33fd 100755
+--- a/iup/mak.vc8/iupsample.vcproj
++++ b/iup/mak.vc8/iupsample.vcproj
+@@ -616,6 +616,13 @@
+ <File
+ RelativePath="..\html\examples\C\sample.c"
+ >
++ <FileConfiguration
++ Name="Debug|Win32"
++ >
++ <Tool
++ Name="VCCLCompilerTool"
++ />
++ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\html\examples\C\sbox1.c"
+diff --git a/iup/mak.vc8/iupsamplegtk.vcproj b/iup/mak.vc8/iupsamplegtk.vcproj
+index b4792dd..290a86e 100755
+--- a/iup/mak.vc8/iupsamplegtk.vcproj
++++ b/iup/mak.vc8/iupsamplegtk.vcproj
+@@ -435,6 +435,14 @@
+ <File
+ RelativePath="..\html\examples\C\list1.c"
+ >
++ <FileConfiguration
++ Name="Debug|Win32"
++ ExcludedFromBuild="true"
++ >
++ <Tool
++ Name="VCCLCompilerTool"
++ />
++ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\html\examples\C\list2.c"
+@@ -777,7 +785,6 @@
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+- ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+diff --git a/iup/mak.vc8/iuptest.vcproj b/iup/mak.vc8/iuptest.vcproj
+index 375d83f..b539677 100755
+--- a/iup/mak.vc8/iuptest.vcproj
++++ b/iup/mak.vc8/iuptest.vcproj
+@@ -159,6 +159,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\test\clipboard.c"
++ >
++ </File>
++ <File
+ RelativePath="..\test\colorbar.c"
+ >
+ </File>
+@@ -255,6 +259,14 @@
+ >
+ </File>
+ <File
++ RelativePath="..\test\sbox.c"
++ >
++ </File>
++ <File
++ RelativePath="..\test\scanf.c"
++ >
++ </File>
++ <File
+ RelativePath="..\test\spin.c"
+ >
+ </File>
+@@ -298,6 +310,10 @@
+ RelativePath="..\test\vbox.c"
+ >
+ </File>
++ <File
++ RelativePath="..\test\zbox.c"
++ >
++ </File>
+ </Files>
+ <Globals>
+ </Globals>
+diff --git a/iup/mak.vc8/iuptestgtk.vcproj b/iup/mak.vc8/iuptestgtk.vcproj
+index 46d9e49..017bb69 100755
+--- a/iup/mak.vc8/iuptestgtk.vcproj
++++ b/iup/mak.vc8/iuptestgtk.vcproj
+@@ -154,6 +154,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\test\clipboard.c"
++ >
++ </File>
++ <File
+ RelativePath="..\test\colorbar.c"
+ >
+ </File>
+@@ -246,6 +250,14 @@
+ >
+ </File>
+ <File
++ RelativePath="..\test\sbox.c"
++ >
++ </File>
++ <File
++ RelativePath="..\test\scanf.c"
++ >
++ </File>
++ <File
+ RelativePath="..\test\spin.c"
+ >
+ </File>
+@@ -289,6 +301,10 @@
+ RelativePath="..\test\vbox.c"
+ >
+ </File>
++ <File
++ RelativePath="..\test\zbox.c"
++ >
++ </File>
+ </Files>
+ <Globals>
+ </Globals>
+diff --git a/iup/mak.vc8/iupwin.vcproj b/iup/mak.vc8/iupwin.vcproj
+index c1e2434..cf53df8 100755
+--- a/iup/mak.vc8/iupwin.vcproj
++++ b/iup/mak.vc8/iupwin.vcproj
+@@ -176,6 +176,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\src\win\iupwin_clipboard.c"
++ >
++ </File>
++ <File
+ RelativePath="..\src\win\iupwin_colordlg.c"
+ >
+ </File>
+diff --git a/iup/mak.vc9/iup.sln b/iup/mak.vc9/iup.sln
+index 898c75f..47e2076 100755
+--- a/iup/mak.vc9/iup.sln
++++ b/iup/mak.vc9/iup.sln
+@@ -95,6 +95,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iuplua5_exe", "iupluaexe5.v
+ {1EBC7A53-4677-AAAA-1234-49D301F17D85} = {1EBC7A53-4677-AAAA-1234-49D301F17D85}
+ {1EBC7A53-4677-75D7-8D4A-49D301F17D85} = {1EBC7A53-4677-75D7-8D4A-49D301F17D85}
+ {1EBC7A53-4677-ADF1-8D4A-49D301F17D85} = {1EBC7A53-4677-ADF1-8D4A-49D301F17D85}
++ {1EBC7A53-4677-FFFF-1234-49D301F17D85} = {1EBC7A53-4677-FFFF-1234-49D301F17D85}
+ {B4823266-DF8C-4EFB-91C0-C7688C234EAC} = {B4823266-DF8C-4EFB-91C0-C7688C234EAC}
+ {5EEFE977-C56D-462F-BDEE-12A5452EB8CC} = {5EEFE977-C56D-462F-BDEE-12A5452EB8CC}
+ {5EEFE977-C56D-462F-BDEE-12A5452EB8CC} = {5EEFE977-C56D-462F-BDEE-12A5452EB8CC}
+@@ -196,6 +197,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iuplua5gtk_exe", "iupluaexe
+ {E251B4F4-0B0A-482B-BA18-2509ADC4B6AA} = {E251B4F4-0B0A-482B-BA18-2509ADC4B6AA}
+ EndProjectSection
+ EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{B24D8E0A-2EB5-4C49-A146-C0AABEF81788}"
++EndProject
+ Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+@@ -285,7 +288,6 @@ Global
+ {2F92EC58-D94C-40BF-8C82-77607C72E1E3} = {FC52B7B5-744E-45D6-815C-3502F9D965E7}
+ {9462FDEA-3E53-4250-8710-DD50AF48607C} = {FC52B7B5-744E-45D6-815C-3502F9D965E7}
+ {C684B76D-52EC-49CE-84F2-B031509419A5} = {FC52B7B5-744E-45D6-815C-3502F9D965E7}
+- {A60D658D-766C-40DB-BAFF-59AB884D86FB} = {11041D08-354A-4300-9624-41277E67DE34}
+ {1EBC7A53-4677-4C3A-8DFF-269001F17D85} = {11041D08-354A-4300-9624-41277E67DE34}
+ {1EBC7A53-4677-4C3A-8DFF-49DFF4417D85} = {11041D08-354A-4300-9624-41277E67DE34}
+ {1EBC7A53-33FF-4C3A-8DFF-49D301F17D85} = {11041D08-354A-4300-9624-41277E67DE34}
+@@ -293,7 +295,6 @@ Global
+ {1EBC7A53-4677-1234-DDDD-49DFF4417D85} = {11041D08-354A-4300-9624-41277E67DE34}
+ {B4823266-DF8C-4EFB-91C0-C7E78C234EAC} = {11041D08-354A-4300-9624-41277E67DE34}
+ {1EBC7A53-4677-4C3A-8DFF-49D301F17D85} = {11041D08-354A-4300-9624-41277E67DE34}
+- {A60D658D-766C-40DB-BAE4-59AB884D86FB} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
+ {1EBC7A53-4677-ADF1-8D4A-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
+ {1EBC7A53-4677-75D7-8D4A-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
+ {1EBC7A53-4677-4C3A-8D4A-49D301157985} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
+@@ -302,7 +303,12 @@ Global
+ {B4823266-DF8C-4EFB-91C0-C7688C234EAC} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
+ {1EBC7A53-4677-4C3A-8D4A-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
+ {1EBC7A53-4677-FFFF-1234-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
+- {389DF3C9-A628-4F6D-8C52-8924FA01DE66} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}
++ {A60D658D-766C-40DB-BAFF-59AB884D86FB} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}
++ {A60D658D-766C-40DB-BAE4-59AB884D86FB} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}
++ {389DF3C9-A628-4F6D-8C52-8924FA01DE66} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}
++ {2F92EC58-D94C-40BF-4444-77607C72E1E3} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}
++ {E7D19356-B0AB-44AD-ACCB-5FFFCC4837BE} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}
++ {0F789DF8-22CC-4392-98DB-AC3960FAD4EA} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}
+ EndGlobalSection
+ GlobalSection(DevPartner) = postSolution
+ EndGlobalSection
+diff --git a/iup/mak.vc9/iupcontrols.vcproj b/iup/mak.vc9/iupcontrols.vcproj
+index 6a452af..2a7875c 100755
+--- a/iup/mak.vc9/iupcontrols.vcproj
++++ b/iup/mak.vc9/iupcontrols.vcproj
+@@ -311,14 +311,6 @@
+ >
+ </File>
+ <File
+- RelativePath="..\srccontrols\iup_oldtabs.c"
+- >
+- </File>
+- <File
+- RelativePath="..\srccontrols\iup_oldval.c"
+- >
+- </File>
+- <File
+ RelativePath="..\srccontrols\iupcontrols.def"
+ >
+ <FileConfiguration
+diff --git a/iup/mak.vc9/iupcore.vcproj b/iup/mak.vc9/iupcore.vcproj
+index fbe0017..851395e 100755
+--- a/iup/mak.vc9/iupcore.vcproj
++++ b/iup/mak.vc9/iupcore.vcproj
+@@ -475,6 +475,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\src\iup_split.c"
++ >
++ </File>
++ <File
+ RelativePath="..\src\iup_tabs.c"
+ >
+ </File>
+@@ -583,17 +587,6 @@
+ >
+ </File>
+ </Filter>
+- <File
+- RelativePath="..\src\iup.def"
+- >
+- <FileConfiguration
+- Name="Debug|Win32"
+- >
+- <Tool
+- Name="VCCustomBuildTool"
+- />
+- </FileConfiguration>
+- </File>
+ </Files>
+ <Globals>
+ </Globals>
+diff --git a/iup/mak.vc9/iupgtk.vcproj b/iup/mak.vc9/iupgtk.vcproj
+index 17281f1..a84dd4a 100755
+--- a/iup/mak.vc9/iupgtk.vcproj
++++ b/iup/mak.vc9/iupgtk.vcproj
+@@ -95,6 +95,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\src\gtk\iupgtk_draw.c"
++ >
++ </File>
++ <File
+ RelativePath="..\src\gtk\iupgtk_focus.c"
+ >
+ </File>
+diff --git a/iup/mak.vc9/iuplua3.vcproj b/iup/mak.vc9/iuplua3.vcproj
+index 9993c1c..e46f316 100755
+--- a/iup/mak.vc9/iuplua3.vcproj
++++ b/iup/mak.vc9/iuplua3.vcproj
+@@ -116,6 +116,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\srclua3\il_split.c"
++ >
++ </File>
++ <File
+ RelativePath="..\srclua3\il_tabs.c"
+ >
+ </File>
+@@ -164,6 +168,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\srclua3\split.lua"
++ >
++ </File>
++ <File
+ RelativePath="..\srclua3\tabs.lua"
+ >
+ </File>
+diff --git a/iup/mak.vc9/iuplua5.vcproj b/iup/mak.vc9/iuplua5.vcproj
+index 17d9a55..ad13650 100755
+--- a/iup/mak.vc9/iuplua5.vcproj
++++ b/iup/mak.vc9/iuplua5.vcproj
+@@ -231,6 +231,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\srclua5\il_split.c"
++ >
++ </File>
++ <File
+ RelativePath="..\srclua5\il_submenu.c"
+ >
+ </File>
+@@ -407,6 +411,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\srclua5\split.lua"
++ >
++ </File>
++ <File
+ RelativePath="..\srclua5\submenu.lua"
+ >
+ </File>
+diff --git a/iup/mak.vc9/iupluaexe5.vcproj b/iup/mak.vc9/iupluaexe5.vcproj
+index db6804a..39d15f2 100755
+--- a/iup/mak.vc9/iupluaexe5.vcproj
++++ b/iup/mak.vc9/iupluaexe5.vcproj
+@@ -72,7 +72,7 @@
+ OutputFile="$(OutDir)/iuplua51.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+- AdditionalLibraryDirectories="..\..\im\lib;..\..\cd\lib;..\lib;..\..\lua5.1\lib\vc9;..\..\luagl\lib\static"
++ AdditionalLibraryDirectories="..\..\im\lib;..\..\cd\lib;..\lib;..\..\lua5.1\lib\vc9;..\..\luagl\lib\static;..\..\lfs\lib\vc9"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+diff --git a/iup/mak.vc9/iupmot.vcproj b/iup/mak.vc9/iupmot.vcproj
+index 9bbfa5c..5c40695 100755
+--- a/iup/mak.vc9/iupmot.vcproj
++++ b/iup/mak.vc9/iupmot.vcproj
+@@ -109,6 +109,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\src\mot\iupmot_draw.c"
++ >
++ </File>
++ <File
+ RelativePath="..\src\mot\iupmot_focus.c"
+ >
+ </File>
+diff --git a/iup/mak.vc9/iupsample.vcproj b/iup/mak.vc9/iupsample.vcproj
+index 144f3ba..0e10bb6 100755
+--- a/iup/mak.vc9/iupsample.vcproj
++++ b/iup/mak.vc9/iupsample.vcproj
+@@ -45,7 +45,7 @@
+ Optimization="0"
+ AdditionalIncludeDirectories="..\include;..\..\cd\include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WIN32_WINNT=0x0500;_WIN32_IE=0x0500;_CRT_SECURE_NO_DEPRECATE;__IUPDEF_H"
+- ExceptionHandling="0"
++ ExceptionHandling="1"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+diff --git a/iup/mak.vc9/iupsamplegtk.vcproj b/iup/mak.vc9/iupsamplegtk.vcproj
+index 24da672..485b773 100755
+--- a/iup/mak.vc9/iupsamplegtk.vcproj
++++ b/iup/mak.vc9/iupsamplegtk.vcproj
+@@ -617,7 +617,6 @@
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+- ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+@@ -785,6 +784,7 @@
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
++ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+diff --git a/iup/mak.vc9/iuptest.vcproj b/iup/mak.vc9/iuptest.vcproj
+index 213431c..ac8f359 100755
+--- a/iup/mak.vc9/iuptest.vcproj
++++ b/iup/mak.vc9/iuptest.vcproj
+@@ -271,6 +271,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\test\split.c"
++ >
++ </File>
++ <File
+ RelativePath="..\test\sysinfo.c"
+ >
+ </File>
+diff --git a/iup/mak.vc9/iuptestgtk.vcproj b/iup/mak.vc9/iuptestgtk.vcproj
+index 4cbc9da..d8c092c 100755
+--- a/iup/mak.vc9/iuptestgtk.vcproj
++++ b/iup/mak.vc9/iuptestgtk.vcproj
+@@ -73,6 +73,7 @@
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ AdditionalLibraryDirectories="..\lib;d:\lng\gtk\lib;..\..\cd\lib;D:\LNG\vld\lib"
++ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
+ SubSystem="1"
+@@ -262,6 +263,10 @@
+ >
+ </File>
+ <File
++ RelativePath="..\test\split.c"
++ >
++ </File>
++ <File
+ RelativePath="..\test\sysinfo.c"
+ >
+ </File>
+diff --git a/iup/mak.vc9/iupwin.vcproj b/iup/mak.vc9/iupwin.vcproj
+index 15578a9..94ef390 100755
+--- a/iup/mak.vc9/iupwin.vcproj
++++ b/iup/mak.vc9/iupwin.vcproj
+@@ -248,6 +248,10 @@
+ >
+ </File>
+ </Filter>
++ <File
++ RelativePath="..\src\iup.def"
++ >
++ </File>
+ </Files>
+ <Globals>
+ </Globals>
+diff --git a/iup/src/Makefile b/iup/src/Makefile
+index 028047f..e666555 100755
+--- a/iup/src/Makefile
++++ b/iup/src/Makefile
+@@ -1,9 +1,12 @@
+ 
+-.PHONY: do_all iup iupgtk
+-do_all: iup iupgtk
++.PHONY: do_all iup iupgtk iupmot
++do_all: iup
+ 
+ iup:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak 
++ @$(MAKE) --no-print-directory -f ../tecmake.mak 
+ 
+ iupgtk:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak USE_GTK=Yes
++ @$(MAKE) --no-print-directory -f ../tecmake.mak USE_GTK=Yes
++
++iupmot:
++ @$(MAKE) --no-print-directory -f ../tecmake.mak USE_MOTIF=Yes
+diff --git a/iup/src/config.mak b/iup/src/config.mak
+index e857643..82b8452 100755
+--- a/iup/src/config.mak
++++ b/iup/src/config.mak
+@@ -2,9 +2,31 @@ PROJNAME = iup
+ LIBNAME = iup
+ OPT = YES
+ 
+-#ifdef DBG
++ifdef GTK_DEFAULT
++ ifdef USE_MOTIF
++ # Build Motif version in Linux,Darwin,FreeBSD
++ LIBNAME = iupmot
++ else
++ ifeq ($(findstring Win, $(TEC_SYSNAME)), )
++ # Force definition if not in Windows
++ USE_GTK = Yes
++ endif
++ endif
++else 
++ ifdef USE_GTK
++ # Build GTK version in IRIX,SunOS,AIX,Win32
++ LIBNAME = iupgtk
++ else
++ ifeq ($(findstring Win, $(TEC_SYSNAME)), )
++ # Force definition if not in Windows
++ USE_MOTIF = Yes
++ endif
++ endif
++endif
++
++ifdef DBG
+ DEFINES += IUP_ASSERT
+-#endif 
++endif 
+ 
+ INCLUDES = ../include .
+ 
+@@ -17,19 +39,14 @@ SRC = iup_array.c iup_callback.c iup_dlglist.c iup_attrib.c iup_focus.c iup_font
+ iup_user.c iup_button.c iup_radio.c iup_toggle.c iup_progressbar.c iup_text.c iup_val.c \
+ iup_box.c iup_hbox.c iup_vbox.c iup_cbox.c iup_class.c iup_classbase.c iup_maskmatch.c \
+ iup_mask.c iup_maskparse.c iup_tabs.c iup_spin.c iup_list.c iup_getparam.c \
+- iup_sbox.c iup_normalizer.c iup_tree.c
++ iup_sbox.c iup_normalizer.c iup_tree.c iup_split.c
+ 
+ ifdef USE_GTK
+- ifndef GTK_DEFAULT
+- # Build GTK version in IRIX,SunOS,AIX,Win32
+- LIBNAME := iupgtk
+- endif
+-
+ DEFINES += GTK_DISABLE_DEPRECATED
+ INCLUDES += gtk
+ SRC += gtk/iupgtk_common.c gtk/iupgtk_focus.c gtk/iupgtk_font.c gtk/iupgtk_clipboard.c \
+ gtk/iupgtk_globalattrib.c gtk/iupgtk_key.c gtk/iupgtk_tips.c \
+- gtk/iupgtk_loop.c gtk/iupgtk_open.c gtk/iupgtk_messagedlg.c \
++ gtk/iupgtk_loop.c gtk/iupgtk_open.c gtk/iupgtk_messagedlg.c gtk/iupgtk_draw.c \
+ gtk/iupgtk_dialog.c gtk/iupgtk_timer.c gtk/iupgtk_image.c gtk/iupgtk_label.c \
+ gtk/iupgtk_colordlg.c gtk/iupgtk_fontdlg.c gtk/iupgtk_filedlg.c \
+ gtk/iupgtk_button.c gtk/iupgtk_toggle.c gtk/iupgtk_progressbar.c \
+@@ -40,7 +57,11 @@ ifdef USE_GTK
+ DEFINES += _WIN32_WINNT=0x0500 _WIN32_IE=0x0500 WINVER=0x0500 NOTREEVIEW
+ SRC += win/iupwindows_main.c win/iupwindows_help.c win/iupwindows_info.c
+ else
+- SRC += gtk/iupgtk_help.c mot/iupunix_info.c
++ ifdef GTK_MAC
++ SRC += gtk/iupmac_help.c gtk/iupmac_info.c
++ else
++ SRC += gtk/iupgtk_help.c mot/iupunix_info.c
++ endif
+ endif
+ 
+ ifdef USE_HILDON
+@@ -49,42 +70,35 @@ ifdef USE_GTK
+ LIBS += hildon-1
+ endif
+ else
+- ifneq ($(findstring Win, $(TEC_SYSNAME)), )
+- 
+- SRC += win/iupwin_common.c win/iupwin_brush.c win/iupwin_focus.c win/iupwin_font.c \
+- win/iupwin_globalattrib.c win/iupwin_handle.c win/iupwin_key.c \
+- win/iupwin_loop.c win/iupwin_open.c win/iupwin_tips.c win/iupwin_info.c \
+- win/iupwin_dialog.c win/iupwin_messagedlg.c win/iupwin_timer.c \
+- win/iupwin_image.c win/iupwin_label.c win/iupwin_canvas.c win/iupwin_frame.c \
+- win/iupwin_colordlg.c win/iupwin_fontdlg.c win/iupwin_filedlg.c \
+- win/iupwin_button.c win/iupwin_draw.c win/iupwin_toggle.c win/iupwin_clipboard.c \
+- win/iupwin_progressbar.c win/iupwin_text.c win/iupwin_val.c \
+- win/iupwin_tabs.c win/iupwin_menu.c win/iupwin_list.c win/iupwin_tree.c
+- 
+- SRC += win/iupwindows_main.c win/iupwindows_help.c win/iupwindows_info.c
+- 
+- INCLUDES += win
+- DEFINES += _WIN32_WINNT=0x0500 _WIN32_IE=0x0500 WINVER=0x0500 NOTREEVIEW
+- else
+- ifdef GTK_DEFAULT
+- # Build Motif version in Linux,Darwin,FreeBSD
+- LIBNAME := iupmot
+- endif 
+- 
+- SRC += mot/iupmot_common.c mot/iupmot_color.c mot/iupmot_focus.c mot/iupmot_font.c \
+- mot/iupmot_key.c mot/iupmot_loop.c mot/iupmot_open.c mot/iupmot_tips.c \
+- mot/iupmot_globalattrib.c mot/iupmot_dialog.c mot/iupmot_messagedlg.c \
+- mot/iupmot_timer.c mot/iupmot_image.c mot/iupmot_label.c mot/iupmot_canvas.c \
+- mot/iupmot_colordlg.c mot/iupmot_fontdlg.c mot/iupmot_filedlg.c mot/iupmot_frame.c \
+- mot/iupmot_button.c mot/iupmot_toggle.c mot/iupmot_progressbar.c mot/iupmot_clipboard.c \
+- mot/iupmot_text.c mot/iupmot_val.c mot/iupmot_tabs.c mot/iupmot_menu.c \
+- mot/iupmot_list.c mot/iupmot_tree.c
+- 
+- SRC += mot/iupunix_help.c mot/iupunix_info.c
+- 
+- INCLUDES += mot
+- USE_MOTIF=Yes 
+- endif
++ifdef USE_MOTIF
++ SRC += mot/iupmot_common.c mot/iupmot_color.c mot/iupmot_focus.c mot/iupmot_font.c \
++ mot/iupmot_key.c mot/iupmot_loop.c mot/iupmot_open.c mot/iupmot_tips.c \
++ mot/iupmot_globalattrib.c mot/iupmot_dialog.c mot/iupmot_messagedlg.c mot/iupmot_draw.c \
++ mot/iupmot_timer.c mot/iupmot_image.c mot/iupmot_label.c mot/iupmot_canvas.c \
++ mot/iupmot_colordlg.c mot/iupmot_fontdlg.c mot/iupmot_filedlg.c mot/iupmot_frame.c \
++ mot/iupmot_button.c mot/iupmot_toggle.c mot/iupmot_progressbar.c mot/iupmot_clipboard.c \
++ mot/iupmot_text.c mot/iupmot_val.c mot/iupmot_tabs.c mot/iupmot_menu.c \
++ mot/iupmot_list.c mot/iupmot_tree.c
++ 
++ SRC += mot/iupunix_help.c mot/iupunix_info.c
++
++ INCLUDES += mot
++else
++ SRC += win/iupwin_common.c win/iupwin_brush.c win/iupwin_focus.c win/iupwin_font.c \
++ win/iupwin_globalattrib.c win/iupwin_handle.c win/iupwin_key.c \
++ win/iupwin_loop.c win/iupwin_open.c win/iupwin_tips.c win/iupwin_info.c \
++ win/iupwin_dialog.c win/iupwin_messagedlg.c win/iupwin_timer.c \
++ win/iupwin_image.c win/iupwin_label.c win/iupwin_canvas.c win/iupwin_frame.c \
++ win/iupwin_colordlg.c win/iupwin_fontdlg.c win/iupwin_filedlg.c \
++ win/iupwin_button.c win/iupwin_draw.c win/iupwin_toggle.c win/iupwin_clipboard.c \
++ win/iupwin_progressbar.c win/iupwin_text.c win/iupwin_val.c \
++ win/iupwin_tabs.c win/iupwin_menu.c win/iupwin_list.c win/iupwin_tree.c
++ 
++ SRC += win/iupwindows_main.c win/iupwindows_help.c win/iupwindows_info.c
++
++ INCLUDES += win
++ DEFINES += _WIN32_WINNT=0x0500 _WIN32_IE=0x0500 WINVER=0x0500 NOTREEVIEW
++endif
+ endif
+ 
+ ifeq "$(TEC_SYSNAME)" "SunOS"
+@@ -113,6 +127,6 @@ ifeq "$(TEC_UNAME)" "dll"
+ endif
+ 
+ ifeq "$(TEC_UNAME)" "owc1"
+- # Necessary or IUP will not work in Open Watcom
++ # Necessary or IUP 3 will not work in Open Watcom
+ DBG=Yes
+ endif
+diff --git a/iup/src/gtk/iupgtk_button.c b/iup/src/gtk/iupgtk_button.c
+index 18be87c..f8474ae 100755
+--- a/iup/src/gtk/iupgtk_button.c
++++ b/iup/src/gtk/iupgtk_button.c
+@@ -150,8 +150,10 @@ static int gtkButtonSetPaddingAttrib(Ihandle* ih, const char* value)
+ gtk_alignment_set_padding(alignment, ih->data->vert_padding, ih->data->vert_padding, 
+ ih->data->horiz_padding, ih->data->horiz_padding);
+ }
++ return 0;
+ }
+- return 0;
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ #ifdef WIN32
+@@ -366,12 +368,12 @@ static int gtkButtonMapMethod(Ihandle* ih)
+ ih->data->type = IUP_BUTTON_IMAGE;
+ 
+ value = iupAttribGet(ih, "TITLE");
+- if (value)
++ if (value && *value!=0)
+ {
+ GtkSettings* settings = gtk_widget_get_settings(ih->handle);
+ g_object_set(settings, "gtk-button-images", (int)TRUE, NULL);
+ 
+- gtk_button_set_label((GtkButton*)ih->handle, value);
++ gtk_button_set_label((GtkButton*)ih->handle, iupgtkStrConvertToUTF8(value));
+ ih->data->type |= IUP_BUTTON_TEXT;
+ 
+ #if GTK_CHECK_VERSION(2, 10, 0)
+@@ -397,7 +399,7 @@ static int gtkButtonMapMethod(Ihandle* ih)
+ #endif
+ }
+ else
+- gtk_button_set_label((GtkButton*)ih->handle, title);
++ gtk_button_set_label((GtkButton*)ih->handle, iupgtkStrConvertToUTF8(title));
+ ih->data->type = IUP_BUTTON_TEXT;
+ }
+ 
+diff --git a/iup/src/gtk/iupgtk_canvas.c b/iup/src/gtk/iupgtk_canvas.c
+index daae4ad..3af48a4 100755
+--- a/iup/src/gtk/iupgtk_canvas.c
++++ b/iup/src/gtk/iupgtk_canvas.c
+@@ -537,8 +537,8 @@ static int gtkCanvasMapMethod(Ihandle* ih)
+ 
+ /* To receive mouse events on a drawing area, you will need to enable them. */
+ gtk_widget_add_events(ih->handle, GDK_EXPOSURE_MASK|
+- GDK_POINTER_MOTION_MASK|GDK_BUTTON_MOTION_MASK|
+- GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK|
++ GDK_POINTER_MOTION_MASK|GDK_POINTER_MOTION_HINT_MASK|
++ GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK|GDK_BUTTON_MOTION_MASK|
+ GDK_KEY_PRESS_MASK|GDK_KEY_RELEASE_MASK|
+ GDK_ENTER_NOTIFY_MASK|GDK_LEAVE_NOTIFY_MASK|
+ GDK_FOCUS_CHANGE_MASK|GDK_STRUCTURE_MASK);
+@@ -611,14 +611,15 @@ void iupdrvCanvasInitClass(Iclass* ic)
+ iupClassRegisterAttribute(ic, "YAUTOHIDE", NULL, gtkCanvasSetYAutoHideAttrib, "YES", NULL, IUPAF_DEFAULT); /* force new default value */
+ 
+ iupClassRegisterAttribute(ic, "DRAWABLE", gtkCanvasGetDrawableAttrib, NULL, NULL, NULL, IUPAF_NO_STRING);
+- //iupClassRegisterAttribute(ic, "CD_GDK", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);
+ 
+ /* IupCanvas Windows or X only */
+-#ifdef WIN32 
+- iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
+-#else
+- iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING);
+- iupClassRegisterAttribute(ic, "XDISPLAY", (IattribGetFunc)iupdrvGetDisplay, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);
++#ifndef GTK_MAC
++ #ifdef WIN32 
++ iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
++ #else
++ iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING);
++ iupClassRegisterAttribute(ic, "XDISPLAY", (IattribGetFunc)iupdrvGetDisplay, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);
++ #endif
+ #endif
+ }
+ 
+diff --git a/iup/src/gtk/iupgtk_common.c b/iup/src/gtk/iupgtk_common.c
+index 40368f2..d84c1c8 100755
+--- a/iup/src/gtk/iupgtk_common.c
++++ b/iup/src/gtk/iupgtk_common.c
+@@ -91,13 +91,13 @@ void iupdrvBaseUnMapMethod(Ihandle* ih)
+ gtk_widget_destroy(widget); /* To match the call to gtk_*****_new */
+ }
+ 
+-void iupdrvDisplayUpdate(Ihandle *ih)
++void iupdrvPostRedraw(Ihandle *ih)
+ {
+ /* Post a REDRAW */
+ gtk_widget_queue_draw(ih->handle);
+ }
+ 
+-void iupdrvDisplayRedraw(Ihandle *ih)
++void iupdrvRedrawNow(Ihandle *ih)
+ {
+ GdkWindow* window = ih->handle->window;
+ /* Post a REDRAW */
+@@ -202,7 +202,11 @@ void iupdrvSetVisible(Ihandle* ih, int visible)
+ 
+ int iupdrvIsVisible(Ihandle* ih)
+ {
++#if GTK_CHECK_VERSION(2, 18, 0)
++ if (gtk_widget_get_visible(ih->handle))
++#else
+ if (GTK_WIDGET_VISIBLE(ih->handle))
++#endif
+ {
+ /* if marked as visible, since we use gtk_widget_hide and NOT gtk_widget_hide_all
+ must check its parents. */
+@@ -211,7 +215,11 @@ int iupdrvIsVisible(Ihandle* ih)
+ {
+ if (parent->iclass->nativetype != IUP_TYPEVOID)
+ {
++#if GTK_CHECK_VERSION(2, 18, 0)
++ if (!gtk_widget_get_visible(parent->handle))
++#else
+ if (!GTK_WIDGET_VISIBLE(parent->handle))
++#endif
+ return 0;
+ }
+ 
+@@ -225,7 +233,11 @@ int iupdrvIsVisible(Ihandle* ih)
+ 
+ int iupdrvIsActive(Ihandle *ih)
+ {
+- return (GTK_WIDGET_IS_SENSITIVE(ih->handle));
++#if GTK_CHECK_VERSION(2, 18, 0)
++ return gtk_widget_is_sensitive(ih->handle);
++#else
++ return GTK_WIDGET_IS_SENSITIVE(ih->handle);
++#endif
+ }
+ 
+ void iupdrvSetActive(Ihandle* ih, int enable)
+@@ -424,9 +436,11 @@ static GdkCursor* gtkGetCursor(Ihandle* ih, const char* name)
+ { "RESIZE_N", GDK_TOP_SIDE},
+ { "RESIZE_S", GDK_BOTTOM_SIDE},
+ { "RESIZE_NS", GDK_SB_V_DOUBLE_ARROW},
++ { "SPLITTER_HORIZ", GDK_SB_V_DOUBLE_ARROW},
+ { "RESIZE_W", GDK_LEFT_SIDE},
+ { "RESIZE_E", GDK_RIGHT_SIDE},
+ { "RESIZE_WE", GDK_SB_H_DOUBLE_ARROW},
++ { "SPLITTER_VERT", GDK_SB_H_DOUBLE_ARROW},
+ { "RESIZE_NE", GDK_TOP_RIGHT_CORNER},
+ { "RESIZE_SE", GDK_BOTTOM_RIGHT_CORNER},
+ { "RESIZE_NW", GDK_TOP_LEFT_CORNER},
+@@ -571,18 +585,24 @@ void iupdrvDrawFocusRect(Ihandle* ih, void* _gc, int x, int y, int w, int h)
+ {
+ GdkWindow* window = ih->handle->window;
+ GtkStyle *style = gtk_widget_get_style(ih->handle);
++#if GTK_CHECK_VERSION(2, 18, 0)
++ GtkStateType state = gtk_widget_get_state(ih->handle);
++#else
++ GtkStateType state = GTK_WIDGET_STATE(ih->handle);
++#endif
++ gtk_paint_focus(style, window, state, NULL, ih->handle, NULL, x, y, w, h);
+ (void)_gc;
+-
+- gtk_paint_focus(style, window, GTK_WIDGET_STATE(ih->handle), NULL, ih->handle, NULL, x, y, w, h);
+ }
+ 
+ void iupdrvBaseRegisterCommonAttrib(Iclass* ic)
+ {
++#ifndef GTK_MAC
+ #ifdef WIN32 
+ iupClassRegisterAttribute(ic, "HFONT", iupgtkGetFontIdAttrib, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);
+ #else
+ iupClassRegisterAttribute(ic, "XFONTID", iupgtkGetFontIdAttrib, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);
+ #endif
++#endif
+ iupClassRegisterAttribute(ic, "PANGOFONTDESC", iupgtkGetPangoFontDescAttrib, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);
+ }
+ 
+@@ -789,7 +809,17 @@ char* iupgtkStrConvertFromFilename(const char* str) /* From Filename to IUP */
+ 
+ gboolean iupgtkMotionNotifyEvent(GtkWidget *widget, GdkEventMotion *evt, Ihandle *ih)
+ {
+- IFniis cb = (IFniis)IupGetCallback(ih,"MOTION_CB");
++ IFniis cb;
++
++ if (evt->is_hint)
++ {
++ int x, y;
++ gdk_window_get_pointer(widget->window, &x, &y, NULL);
++ evt->x = x;
++ evt->y = y;
++ }
++
++ cb = (IFniis)IupGetCallback(ih,"MOTION_CB");
+ if (cb)
+ {
+ char status[IUPKEY_STATUS_SIZE] = IUPKEY_STATUS_INIT;
+@@ -818,6 +848,23 @@ gboolean iupgtkButtonEvent(GtkWidget *widget, GdkEventButton *evt, Ihandle *ih)
+ 
+ iupgtkButtonKeySetStatus(evt->state, evt->button, status, doubleclick);
+ 
++ if (doubleclick)
++ {
++ /* Must compensate the fact that in GTK there is an extra button press event 
++ when occours a double click, we compensate that completing the event 
++ with a button release before the double click. */
++
++ status[5] = ' '; /* clear double click */
++
++ ret = cb(ih, b, 0, (int)evt->x, (int)evt->y, status); /* release */
++ if (ret==IUP_CLOSE)
++ IupExitLoop();
++ else if (ret==IUP_IGNORE)
++ return TRUE;
++
++ status[5] = 'D'; /* restore double click */
++ }
++
+ ret = cb(ih, b, press, (int)evt->x, (int)evt->y, status);
+ if (ret==IUP_CLOSE)
+ IupExitLoop();
+diff --git a/iup/src/gtk/iupgtk_dialog.c b/iup/src/gtk/iupgtk_dialog.c
+index 46c0ce1..ff0d8f2 100755
+--- a/iup/src/gtk/iupgtk_dialog.c
++++ b/iup/src/gtk/iupgtk_dialog.c
+@@ -120,12 +120,13 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
+ static int native_border = 0;
+ static int native_caption = 0;
+ 
+- int has_caption = iupAttribGetBoolean(ih, "MAXBOX") ||
+- iupAttribGetBoolean(ih, "MINBOX") ||
+- iupAttribGetBoolean(ih, "MENUBOX") || 
+- IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */
++ int has_titlebar = iupAttribGetBoolean(ih, "RESIZE") || /* GTK and Motif only */
++ iupAttribGetBoolean(ih, "MAXBOX") ||
++ iupAttribGetBoolean(ih, "MINBOX") ||
++ iupAttribGetBoolean(ih, "MENUBOX") || 
++ IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */
+ 
+- int has_border = has_caption ||
++ int has_border = has_titlebar ||
+ iupAttribGetBoolean(ih, "RESIZE") ||
+ iupAttribGetBoolean(ih, "BORDER");
+ 
+@@ -147,7 +148,7 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
+ *border = win_border;
+ 
+ *caption = 0;
+- if (has_caption)
++ if (has_titlebar)
+ *caption = win_caption;
+ 
+ if (!native_border && *border)
+@@ -171,7 +172,7 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
+ }
+ 
+ *caption = 0;
+- if (has_caption)
++ if (has_titlebar)
+ {
+ if (native_caption)
+ *caption = native_caption;
+@@ -429,6 +430,7 @@ static int gtkDialogMapMethod(Ihandle* ih)
+ int functions = 0;
+ InativeHandle* parent;
+ GtkWidget* fixed;
++ int has_titlebar = 0;
+ 
+ #ifdef HILDON
+ if (iupAttribGetBoolean(ih, "HILDONWINDOW")) 
+@@ -494,33 +496,41 @@ static int gtkDialogMapMethod(Ihandle* ih)
+ iupAttribSetStr(ih, "MINBOX", "NO");
+ }
+ 
+- if (IupGetAttribute(ih, "TITLE")) { /* must use IupGetAttribute to check from the native implementation */
+- functions |= GDK_FUNC_MOVE;
+- decorations |= GDK_DECOR_TITLE;
+- }
+-
+- if (iupAttribGetBoolean(ih, "MENUBOX")) {
++ if (iupAttribGet(ih, "TITLE"))
++ has_titlebar = 1;
++ if (iupAttribGetBoolean(ih, "MENUBOX")) 
++ {
+ functions |= GDK_FUNC_CLOSE;
+ decorations |= GDK_DECOR_MENU;
++ has_titlebar = 1;
+ }
+-
+- if (iupAttribGetBoolean(ih, "MINBOX")) {
++ if (iupAttribGetBoolean(ih, "MINBOX")) 
++ {
+ functions |= GDK_FUNC_MINIMIZE;
+ decorations |= GDK_DECOR_MINIMIZE;
++ has_titlebar = 1;
+ }
+-
+- if (iupAttribGetBoolean(ih, "MAXBOX")) {
++ if (iupAttribGetBoolean(ih, "MAXBOX")) 
++ {
+ functions |= GDK_FUNC_MAXIMIZE;
+ decorations |= GDK_DECOR_MAXIMIZE;
++ has_titlebar = 1;
+ }
+-
+- if (iupAttribGetBoolean(ih, "RESIZE")) {
++ if (iupAttribGetBoolean(ih, "RESIZE")) 
++ {
+ functions |= GDK_FUNC_RESIZE;
+ decorations |= GDK_DECOR_RESIZEH;
+- }
+ 
+- if (iupAttribGetBoolean(ih, "BORDER"))
+- decorations |= GDK_DECOR_BORDER;
++ decorations |= GDK_DECOR_BORDER; /* has_border */
++ }
++ if (has_titlebar)
++ {
++ functions |= GDK_FUNC_MOVE;
++ decorations |= GDK_DECOR_TITLE;
++ gtk_window_set_title((GtkWindow*)ih->handle, "");
++ }
++ if (iupAttribGetBoolean(ih, "BORDER") || has_titlebar)
++ decorations |= GDK_DECOR_BORDER; /* has_border */
+ 
+ if (decorations == 0)
+ gtk_window_set_decorated((GtkWindow*)ih->handle, FALSE);
+@@ -980,11 +990,12 @@ void iupdrvDialogInitClass(Iclass* ic)
+ iupClassRegisterCallback(ic, "TRAYCLICK_CB", "iii");
+ 
+ /* Driver Dependent Attribute functions */
+-
+-#ifdef WIN32 
+- iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
+-#else
+- iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING);
++#ifndef GTK_MAC
++ #ifdef WIN32 
++ iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
++ #else
++ iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING);
++ #endif
+ #endif
+ 
+ /* Visual */
+diff --git a/iup/src/gtk/iupgtk_drv.h b/iup/src/gtk/iupgtk_drv.h
+index ade2a4a..bf567d6 100755
+--- a/iup/src/gtk/iupgtk_drv.h
++++ b/iup/src/gtk/iupgtk_drv.h
+@@ -59,8 +59,8 @@ void iupgtkFontUpdateObjectPangoLayout(Ihandle* ih, gpointer object);
+ /* There are PANGO_SCALE Pango units in one device unit. 
+ For an output backend where a device unit is a pixel, 
+ a size value of 10 * PANGO_SCALE gives 10 pixels. */
+-#define IUPGTK_PANGOUNITS2PIXELS(_x) (((_x) + PANGO_SCALE/2) / PANGO_SCALE)
+-#define IUPGTK_PIXELS2PANGOUNITS(_x) ((_x) * PANGO_SCALE)
++#define iupGTK_PANGOUNITS2PIXELS(_x) (((_x) + PANGO_SCALE/2) / PANGO_SCALE)
++#define iupGTK_PIXELS2PANGOUNITS(_x) ((_x) * PANGO_SCALE)
+ 
+ 
+ /* open */
+diff --git a/iup/src/gtk/iupgtk_filedlg.c b/iup/src/gtk/iupgtk_filedlg.c
+index 5426910..a326c72 100755
+--- a/iup/src/gtk/iupgtk_filedlg.c
++++ b/iup/src/gtk/iupgtk_filedlg.c
+@@ -77,6 +77,8 @@ static void gtkFileDlgGetMultipleFiles(Ihandle* ih, GSList* list)
+ cur_len = iupArrayCount(names_array);
+ all_names = iupArrayAdd(names_array, dir_len+1);
+ memcpy(all_names+cur_len, filename, dir_len);
++ all_names[cur_len+dir_len] = '0';
++ iupAttribStoreStr(ih, "DIRECTORY", all_names);
+ all_names[cur_len+dir_len] = '|';
+ 
+ dir_len++; /* skip separator */
+@@ -101,10 +103,14 @@ static void gtkFileDlgGetMultipleFiles(Ihandle* ih, GSList* list)
+ iupArrayDestroy(names_array);
+ }
+ 
+-#ifdef WIN32
+-#include <gdk/gdkwin32.h>
++#ifdef GTK_MAC
++ #include <gdk/gdk.h>
+ #else
+-#include <gdk/gdkx.h>
++ #ifdef WIN32
++ #include <gdk/gdkwin32.h>
++ #else
++ #include <gdk/gdkx.h>
++ #endif
+ #endif
+ 
+ static void gtkFileDlgUpdatePreviewGLCanvas(Ihandle* ih)
+@@ -112,10 +118,12 @@ static void gtkFileDlgUpdatePreviewGLCanvas(Ihandle* ih)
+ Ihandle* glcanvas = IupGetAttributeHandle(ih, "PREVIEWGLCANVAS");
+ if (glcanvas)
+ {
+-#ifdef WIN32 
+- iupAttribSetStr(glcanvas, "HWND", iupAttribGet(ih, "HWND"));
+-#else
+- iupAttribSetStr(glcanvas, "XWINDOW", iupAttribGet(ih, "XWINDOW"));
++#ifndef GTK_MAC
++ #ifdef WIN32 
++ iupAttribSetStr(glcanvas, "HWND", iupAttribGet(ih, "HWND"));
++ #else
++ iupAttribSetStr(glcanvas, "XWINDOW", iupAttribGet(ih, "XWINDOW"));
++ #endif
+ #endif
+ glcanvas->iclass->Map(glcanvas);
+ }
+@@ -126,12 +134,15 @@ static void gtkFileDlgPreviewRealize(GtkWidget *widget, Ihandle *ih)
+ iupAttribSetStr(ih, "PREVIEWDC", iupgtkGetNativeGraphicsContext(widget));
+ iupAttribSetStr(ih, "WID", (char*)widget);
+ 
+-#ifdef WIN32 
+- iupAttribSetStr(ih, "HWND", (char*)GDK_WINDOW_HWND(widget->window));
+-#else
+- iupAttribSetStr(ih, "XWINDOW", (char*)GDK_WINDOW_XID(widget->window));
+- iupAttribSetStr(ih, "XDISPLAY", (char*)iupdrvGetDisplay());
++#ifndef GTK_MAC
++ #ifdef WIN32 
++ iupAttribSetStr(ih, "HWND", (char*)GDK_WINDOW_HWND(widget->window));
++ #else
++ iupAttribSetStr(ih, "XWINDOW", (char*)GDK_WINDOW_XID(widget->window));
++ iupAttribSetStr(ih, "XDISPLAY", (char*)iupdrvGetDisplay());
++ #endif
+ #endif
++
+ gtkFileDlgUpdatePreviewGLCanvas(ih);
+ }
+ 
+@@ -174,11 +185,11 @@ static void gtkFileDlgUpdatePreview(GtkFileChooser *file_chooser, Ihandle* ih)
+ {
+ char *filename = gtk_file_chooser_get_preview_filename(file_chooser);
+ 
++ IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");
+ if (iupdrvIsFile(filename))
+- {
+- IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");
+ cb(ih, iupgtkStrConvertFromFilename(filename), "SELECT");
+- }
++ else
++ cb(ih, iupgtkStrConvertFromFilename(filename), "OTHER");
+ 
+ g_free (filename);
+ 
+@@ -469,6 +480,13 @@ static int gtkFileDlgPopup(Ihandle* ih, int x, int y)
+ char* filename = (char*)file_list->data;
+ iupAttribStoreStr(ih, "VALUE", iupgtkStrConvertFromFilename(filename));
+ g_free(filename);
++
++ /* store the DIRECTORY */
++ {
++ char* dir = iupStrFileGetPath(iupAttribGet(ih, "VALUE"));
++ iupAttribStoreStr(ih, "DIRECTORY", dir);
++ free(dir);
++ }
+ }
+ 
+ g_slist_free(file_list);
+@@ -481,6 +499,14 @@ static int gtkFileDlgPopup(Ihandle* ih, int x, int y)
+ iupAttribStoreStr(ih, "VALUE", iupgtkStrConvertFromFilename(filename));
+ file_exist = iupdrvIsFile(filename);
+ dir_exist = iupdrvIsDirectory(filename);
++
++ if (file_exist)
++ {
++ char* dir = iupStrFileGetPath(filename);
++ iupAttribStoreStr(ih, "DIRECTORY", dir);
++ free(dir);
++ }
++
+ g_free(filename);
+ }
+ 
+@@ -507,8 +533,11 @@ static int gtkFileDlgPopup(Ihandle* ih, int x, int y)
+ {
+ /* GtkFileChooser does not change the current directory */
+ char* dir = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(dialog));
+- if (dir) iupdrvSetCurrentDirectory(dir);
+- g_free(dir);
++ if (dir) 
++ {
++ iupdrvSetCurrentDirectory(dir);
++ g_free(dir);
++ }
+ }
+ }
+ else
+diff --git a/iup/src/gtk/iupgtk_font.c b/iup/src/gtk/iupgtk_font.c
+index f7ff348..1139f62 100755
+--- a/iup/src/gtk/iupgtk_font.c
++++ b/iup/src/gtk/iupgtk_font.c
+@@ -132,9 +132,9 @@ static IgtkFont* gtkFindFont(const char *standardfont)
+ 
+ metrics = pango_context_get_metrics(gtk_fonts_context, fontdesc, pango_context_get_language(gtk_fonts_context));
+ fonts[i].charheight = pango_font_metrics_get_ascent(metrics) + pango_font_metrics_get_descent(metrics);
+- fonts[i].charheight = IUPGTK_PANGOUNITS2PIXELS(fonts[i].charheight);
++ fonts[i].charheight = iupGTK_PANGOUNITS2PIXELS(fonts[i].charheight);
+ fonts[i].charwidth = pango_font_metrics_get_approximate_char_width(metrics);
+- fonts[i].charwidth = IUPGTK_PANGOUNITS2PIXELS(fonts[i].charwidth);
++ fonts[i].charwidth = iupGTK_PANGOUNITS2PIXELS(fonts[i].charwidth);
+ pango_font_metrics_unref(metrics); 
+ 
+ gtkFontUpdate(&(fonts[i]));
+diff --git a/iup/src/gtk/iupgtk_fontdlg.c b/iup/src/gtk/iupgtk_fontdlg.c
+index 5769cbc..dca0232 100755
+--- a/iup/src/gtk/iupgtk_fontdlg.c
++++ b/iup/src/gtk/iupgtk_fontdlg.c
+@@ -24,7 +24,7 @@ static int gtkFontDlgPopup(Ihandle* ih, int x, int y)
+ InativeHandle* parent = iupDialogGetNativeParent(ih);
+ GtkFontSelectionDialog* dialog;
+ int response;
+- char* preview_text;
++ char* preview_text, *standardfont;
+ 
+ iupAttribSetInt(ih, "_IUPDLG_X", x); /* used in iupDialogUpdatePosition */
+ iupAttribSetInt(ih, "_IUPDLG_Y", y);
+@@ -36,7 +36,10 @@ static int gtkFontDlgPopup(Ihandle* ih, int x, int y)
+ if (parent)
+ gtk_window_set_transient_for((GtkWindow*)dialog, (GtkWindow*)parent);
+ 
+- gtk_font_selection_dialog_set_font_name(dialog, iupAttribGet(ih, "VALUE"));
++ standardfont = iupAttribGet(ih, "VALUE");
++ if (!standardfont)
++ standardfont = IupGetGlobal("DEFAULTFONT");
++ gtk_font_selection_dialog_set_font_name(dialog, standardfont);
+ 
+ preview_text = iupAttribGet(ih, "PREVIEWTEXT");
+ if (preview_text)
+diff --git a/iup/src/gtk/iupgtk_frame.c b/iup/src/gtk/iupgtk_frame.c
+index 022c6c7..25595be 100755
+--- a/iup/src/gtk/iupgtk_frame.c
++++ b/iup/src/gtk/iupgtk_frame.c
+@@ -41,8 +41,11 @@ static char* gtkFrameGetTitleAttrib(Ihandle* ih)
+ 
+ static int gtkFrameSetTitleAttrib(Ihandle* ih, const char* value)
+ {
+- GtkFrame* frame = (GtkFrame*)ih->handle;
+- gtk_frame_set_label(frame, iupgtkStrConvertToUTF8(value));
++ if (iupAttribGetStr(ih, "_IUPFRAME_HAS_TITLE"))
++ {
++ GtkFrame* frame = (GtkFrame*)ih->handle;
++ gtk_frame_set_label(frame, iupgtkStrConvertToUTF8(value));
++ }
+ return 0;
+ }
+ 
+@@ -57,7 +60,11 @@ static int gtkFrameSetBgColorAttrib(Ihandle* ih, const char* value)
+ if (label)
+ iupgtkBaseSetBgColor(label, r, g, b);
+ 
+- iupgtkBaseSetBgColor(ih->handle, r, g, b);
++ if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
++ {
++ GtkWidget* fixed = gtk_bin_get_child((GtkBin*)ih->handle);
++ iupgtkBaseSetBgColor(fixed, r, g, b);
++ }
+ 
+ return 1;
+ }
+@@ -120,10 +127,19 @@ static int gtkFrameMapMethod(Ihandle* ih)
+ gtk_frame_set_shadow_type((GtkFrame*)ih->handle, GTK_SHADOW_IN);
+ else
+ gtk_frame_set_shadow_type((GtkFrame*)ih->handle, GTK_SHADOW_ETCHED_IN);
++
++ if (iupAttribGet(ih, "BGCOLOR"))
++ iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1");
+ }
+ 
+ /* the container that will receive the child element. */
+ fixed = gtk_fixed_new();
++ if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
++#if GTK_CHECK_VERSION(2, 18, 0)
++ gtk_widget_set_has_window(fixed, TRUE);
++#else
++ gtk_fixed_set_has_window((GtkFixed*)fixed, TRUE);
++#endif
+ gtk_container_add((GtkContainer*)ih->handle, fixed);
+ gtk_widget_show(fixed);
+ 
+diff --git a/iup/src/gtk/iupgtk_key.c b/iup/src/gtk/iupgtk_key.c
+index 5aec919..ed485a7 100755
+--- a/iup/src/gtk/iupgtk_key.c
++++ b/iup/src/gtk/iupgtk_key.c
+@@ -316,9 +316,9 @@ gboolean iupgtkKeyPressEvent(GtkWidget *widget, GdkEventKey *evt, Ihandle *ih)
+ if (code == 0) 
+ return FALSE;
+ 
+- /* Avoid duplicate calls if a child of the dialog contains the focus.
+- GTK will call the callback for the child and for the dialog */
+- if (ih->iclass->nativetype == IUP_TYPEDIALOG && ih != IupGetFocus())
++ /* Avoid duplicate calls if a child of a native container contains the focus.
++ GTK will call the callback for the child and for the container. */
++ if (ih->iclass->childtype != IUP_CHILDNONE && ih != IupGetFocus())
+ return FALSE;
+ 
+ result = iupKeyCallKeyCb(ih, code);
+@@ -390,33 +390,33 @@ gboolean iupgtkKeyReleaseEvent(GtkWidget *widget, GdkEventKey *evt, Ihandle *ih)
+ void iupgtkButtonKeySetStatus(guint state, unsigned int but, char* status, int doubleclick)
+ {
+ if (state & GDK_SHIFT_MASK)
+- iupKEYSETSHIFT(status);
++ iupKEY_SETSHIFT(status);
+ 
+ if (state & GDK_CONTROL_MASK)
+- iupKEYSETCONTROL(status); 
++ iupKEY_SETCONTROL(status); 
+ 
+ if ((state & GDK_BUTTON1_MASK) || but==1)
+- iupKEYSETBUTTON1(status);
++ iupKEY_SETBUTTON1(status);
+ 
+ if ((state & GDK_BUTTON2_MASK) || but==2)
+- iupKEYSETBUTTON2(status);
++ iupKEY_SETBUTTON2(status);
+ 
+ if ((state & GDK_BUTTON3_MASK) || but==3)
+- iupKEYSETBUTTON3(status);
++ iupKEY_SETBUTTON3(status);
+ 
+ if ((state & GDK_BUTTON4_MASK) || but==4)
+- iupKEYSETBUTTON4(status);
++ iupKEY_SETBUTTON4(status);
+ 
+ if ((state & GDK_BUTTON5_MASK) || but==5)
+- iupKEYSETBUTTON5(status);
++ iupKEY_SETBUTTON5(status);
+ 
+ if (state & GDK_MOD1_MASK || state & GDK_MOD5_MASK) /* Alt */
+- iupKEYSETALT(status);
++ iupKEY_SETALT(status);
+ 
+ if (state & GDK_MOD4_MASK) /* Apple/Win */
+- iupKEYSETSYS(status);
++ iupKEY_SETSYS(status);
+ 
+ if (doubleclick)
+- iupKEYSETDOUBLE(status);
++ iupKEY_SETDOUBLE(status);
+ }
+ 
+diff --git a/iup/src/gtk/iupgtk_label.c b/iup/src/gtk/iupgtk_label.c
+index 49d5c6d..f95f576 100755
+--- a/iup/src/gtk/iupgtk_label.c
++++ b/iup/src/gtk/iupgtk_label.c
+@@ -133,8 +133,10 @@ static int gtkLabelSetPaddingAttrib(Ihandle* ih, const char* value)
+ {
+ GtkMisc* misc = (GtkMisc*)ih->handle;
+ gtk_misc_set_padding(misc, ih->data->horiz_padding, ih->data->vert_padding);
++ return 0;
+ }
+- return 0;
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static char* gtkLabelGetPangoLayoutAttrib(Ihandle* ih)
+diff --git a/iup/src/gtk/iupgtk_list.c b/iup/src/gtk/iupgtk_list.c
+index 80f6cce..48fa88e 100755
+--- a/iup/src/gtk/iupgtk_list.c
++++ b/iup/src/gtk/iupgtk_list.c
+@@ -113,6 +113,8 @@ void iupdrvListInsertItem(Ihandle* ih, int pos, const char* value)
+ GtkTreeIter iter;
+ gtk_list_store_insert(GTK_LIST_STORE(model), &iter, pos);
+ gtk_list_store_set(GTK_LIST_STORE(model), &iter, 0, iupgtkStrConvertToUTF8(value), -1);
++
++ iupListUpdateOldValue(ih, pos, 0);
+ }
+ 
+ void iupdrvListRemoveItem(Ihandle* ih, int pos)
+@@ -127,14 +129,24 @@ void iupdrvListRemoveItem(Ihandle* ih, int pos)
+ int curpos = gtk_combo_box_get_active((GtkComboBox*)ih->handle);
+ if (pos == curpos)
+ {
+- if (curpos > 0) curpos--;
+- else curpos++;
++ if (curpos > 0) 
++ curpos--;
++ else 
++ {
++ curpos=1;
++ if (iupdrvListGetCount(ih)==1)
++ curpos = -1; /* remove the selection */
++ }
+ 
++ g_signal_handlers_block_by_func(G_OBJECT(ih->handle), G_CALLBACK(gtkListComboBoxChanged), ih);
+ gtk_combo_box_set_active((GtkComboBox*)ih->handle, curpos);
++ g_signal_handlers_unblock_by_func(G_OBJECT(ih->handle), G_CALLBACK(gtkListComboBoxChanged), ih);
+ }
+ }
+ 
+ gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
++
++ iupListUpdateOldValue(ih, pos, 1);
+ }
+ }
+ 
+@@ -177,7 +189,7 @@ static int gtkListSetStandardFontAttrib(Ihandle* ih, const char* value)
+ static char* gtkListGetIdValueAttrib(Ihandle* ih, const char* name_id)
+ {
+ int pos = iupListGetPos(ih, name_id);
+- if (pos != -1)
++ if (pos >= 0)
+ {
+ GtkTreeIter iter;
+ GtkTreeModel* model = gtkListGetModel(ih);
+@@ -349,7 +361,7 @@ static int gtkListSetValueAttrib(Ihandle* ih, const char* value)
+ GtkTreeModel *model = gtkListGetModel(ih);
+ g_signal_handlers_block_by_func(G_OBJECT(ih->handle), G_CALLBACK(gtkListComboBoxChanged), ih);
+ if (iupStrToInt(value, &pos)==1 && 
+- (pos>0 && pos<gtk_tree_model_iter_n_children(model, NULL)))
++ (pos>0 && pos<=gtk_tree_model_iter_n_children(model, NULL)))
+ {
+ gtk_combo_box_set_active((GtkComboBox*)ih->handle, pos-1); /* IUP starts at 1 */
+ iupAttribSetInt(ih, "_IUPLIST_OLDVALUE", pos);
+@@ -788,9 +800,10 @@ static int gtkListSetNCAttrib(Ihandle* ih, const char* value)
+ {
+ GtkEntry* entry = (GtkEntry*)iupAttribGet(ih, "_IUPGTK_ENTRY");
+ gtk_entry_set_max_length(entry, ih->data->nc);
++ return 0;
+ }
+-
+- return 0;
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int gtkListSetClipboardAttrib(Ihandle *ih, const char *value)
+@@ -1364,9 +1377,9 @@ static int gtkListMapMethod(Ihandle* ih)
+ if (!ih->data->has_editbox && ih->data->is_multiple)
+ {
+ gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
+-#if GTK_CHECK_VERSION(2, 10, 0)
++ #if GTK_CHECK_VERSION(2, 10, 0)
+ gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(ih->handle), TRUE);
+-#endif
++ #endif
+ }
+ else
+ gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE);
+diff --git a/iup/src/gtk/iupgtk_loop.c b/iup/src/gtk/iupgtk_loop.c
+index e349a45..704923e 100755
+--- a/iup/src/gtk/iupgtk_loop.c
++++ b/iup/src/gtk/iupgtk_loop.c
+@@ -69,6 +69,13 @@ int IupMainLoop(void)
+ return IUP_NOERROR;
+ }
+ 
++int IupLoopStepWait(void)
++{
++ if (gtk_main_iteration_do(TRUE))
++ return IUP_CLOSE;
++ return IUP_DEFAULT;
++}
++
+ int IupLoopStep(void)
+ {
+ if (gtk_main_iteration_do(FALSE))
+diff --git a/iup/src/gtk/iupgtk_menu.c b/iup/src/gtk/iupgtk_menu.c
+index c12fbea..772f4cf 100755
+--- a/iup/src/gtk/iupgtk_menu.c
++++ b/iup/src/gtk/iupgtk_menu.c
+@@ -245,11 +245,19 @@ static int gtkMenuMapMethod(Ihandle* ih)
+ return IUP_NOERROR;
+ }
+ 
++static void gtkMenuUnMapMethod(Ihandle* ih)
++{
++ if (iupMenuIsMenuBar(ih))
++ ih->parent = NULL;
++
++ iupdrvBaseUnMapMethod(ih);
++}
++
+ void iupdrvMenuInitClass(Iclass* ic)
+ {
+ /* Driver Dependent Class functions */
+ ic->Map = gtkMenuMapMethod;
+- ic->UnMap = iupdrvBaseUnMapMethod;
++ ic->UnMap = gtkMenuUnMapMethod;
+ 
+ /* Used by iupdrvMenuGetMenuBarSize */
+ iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, NULL, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_DEFAULT); /* use inheritance to retrieve standard fonts */
+@@ -337,15 +345,10 @@ static int gtkItemSetValueAttrib(Ihandle* ih, const char* value)
+ 
+ static char* gtkItemGetValueAttrib(Ihandle* ih)
+ {
+- if (GTK_IS_CHECK_MENU_ITEM(ih->handle))
+- {
+- if (gtk_check_menu_item_get_active((GtkCheckMenuItem*)ih->handle))
+- return "ON";
+- else
+- return "OFF";
+- }
++ if (GTK_IS_CHECK_MENU_ITEM(ih->handle) && gtk_check_menu_item_get_active((GtkCheckMenuItem*)ih->handle))
++ return "ON";
+ else
+- return NULL;
++ return "OFF";
+ }
+ 
+ static int gtkItemMapMethod(Ihandle* ih)
+diff --git a/iup/src/gtk/iupgtk_open.c b/iup/src/gtk/iupgtk_open.c
+index 66e46e8..962f760 100755
+--- a/iup/src/gtk/iupgtk_open.c
++++ b/iup/src/gtk/iupgtk_open.c
+@@ -20,7 +20,52 @@
+ 
+ #include "iupgtk_drv.h"
+ 
++#ifdef GTK_MAC
++#include <gdk/gdk.h>
+ 
++char* iupgtkGetNativeWindowHandle(Ihandle* ih)
++{
++ GdkWindow* window = ih->handle->window;
++ if (window)
++ return (char*)window;
++ else
++ return NULL;
++}
++
++void* iupgtkGetNativeGraphicsContext(GtkWidget* widget)
++{
++ return (void*)gdk_gc_new((GdkDrawable*)widget->window);
++}
++
++void iupgtkReleaseNativeGraphicsContext(GtkWidget* widget, void* gc)
++{
++ g_object_unref(gc);
++ (void)widget;
++}
++
++void* iupdrvGetDisplay(void)
++{
++ GdkDisplay* display = gdk_display_get_default();
++ return display;
++}
++
++void iupgtkPushVisualAndColormap(void* visual, void* colormap)
++{
++ GdkColormap* gdk_colormap;
++ GdkVisual *gdk_visual = gdk_visual_get_best();
++
++ gdk_colormap = gdk_colormap_new(gdk_visual, FALSE);
++
++ gtk_widget_push_colormap(gdk_colormap);
++
++ /* gtk_widget_push_visual is now deprecated */
++}
++
++static void gtkSetDrvGlobalAttrib(void)
++{
++}
++
++#else
+ #ifdef WIN32 /******************************** WIN32 ************************************/
+ #include <gdk/gdkwin32.h>
+ 
+@@ -115,6 +160,8 @@ static void gtkSetDrvGlobalAttrib(void)
+ 
+ #endif
+ 
++#endif
++
+ static void gtkSetGlobalColorAttrib(const char* name, GdkColor *color)
+ {
+ iupGlobalSetDefaultColorAttrib(name, (int)iupCOLOR16TO8(color->red), 
+diff --git a/iup/src/gtk/iupgtk_tabs.c b/iup/src/gtk/iupgtk_tabs.c
+index 8029826..6b5aa66 100755
+--- a/iup/src/gtk/iupgtk_tabs.c
++++ b/iup/src/gtk/iupgtk_tabs.c
+@@ -76,13 +76,13 @@ static void gtkTabsUpdatePageBgColor(Ihandle* ih, unsigned char r, unsigned char
+ 
+ for (child = ih->firstchild; child; child = child->brother)
+ {
+- GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");
+- if (tab_page)
++ GtkWidget* tab_container = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");
++ if (tab_container)
+ {
+ GtkWidget* tab_label = (GtkWidget*)iupAttribGet(child, "_IUPGTK_TABLABEL");
+ if (tab_label)
+ iupgtkBaseSetBgColor(tab_label, r, g, b);
+- iupgtkBaseSetBgColor(tab_page, r, g, b);
++ iupgtkBaseSetBgColor(tab_container, r, g, b);
+ }
+ }
+ }
+@@ -121,15 +121,18 @@ static int gtkTabsSetPaddingAttrib(Ihandle* ih, const char* value)
+ iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');
+ 
+ if (ih->handle)
++ {
+ gtkTabsUpdatePagePadding(ih);
+- return 0;
++ return 0;
++ }
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static void gtkTabsUpdateTabType(Ihandle* ih)
+ {
+- GtkNotebook* tab_page = (GtkNotebook*)ih->handle;
+ int iup2gtk[4] = {GTK_POS_TOP, GTK_POS_BOTTOM, GTK_POS_LEFT, GTK_POS_RIGHT};
+- gtk_notebook_set_tab_pos(tab_page, iup2gtk[ih->data->type]);
++ gtk_notebook_set_tab_pos((GtkNotebook*)ih->handle, iup2gtk[ih->data->type]);
+ }
+ 
+ static int gtkTabsSetTabTypeAttrib(Ihandle* ih, const char* value)
+@@ -144,7 +147,7 @@ static int gtkTabsSetTabTypeAttrib(Ihandle* ih, const char* value)
+ ih->data->type = ITABS_TOP;
+ 
+ if (ih->handle)
+- gtkTabsUpdateTabType(ih);
++ gtkTabsUpdateTabType(ih); /* for this to work must be updated in map */
+ 
+ return 0;
+ }
+@@ -171,7 +174,7 @@ static int gtkTabsSetTabTitleAttrib(Ihandle* ih, const char* name_id, const char
+ GtkWidget* tab_label = (GtkWidget*)iupAttribGet(child, "_IUPGTK_TABLABEL");
+ if (tab_label)
+ {
+- GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");
++ GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_PAGE");
+ gtk_label_set_text((GtkLabel*)tab_label, iupgtkStrConvertToUTF8(value));
+ gtk_notebook_set_menu_label_text((GtkNotebook*)ih->handle, tab_page, gtk_label_get_text((GtkLabel*)tab_label));
+ }
+@@ -238,8 +241,10 @@ void gtkTabSwitchPage(GtkNotebook* notebook, GtkNotebookPage *page, int pos, Iha
+ IFnnn cb;
+ Ihandle* child = IupGetChild(ih, pos);
+ Ihandle* prev_child = IupGetChild(ih, iupdrvTabsGetCurrentTab(ih));
+- IupSetAttribute(child, "VISIBLE", "YES");
+- IupSetAttribute(prev_child, "VISIBLE", "NO");
++ GtkWidget* tab_container = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");
++ GtkWidget* prev_tab_container = (GtkWidget*)iupAttribGet(prev_child, "_IUPTAB_CONTAINER");
++ if (tab_container) gtk_widget_show(tab_container);
++ if (prev_tab_container) gtk_widget_hide(prev_tab_container);
+ 
+ if (iupAttribGet(ih, "_IUPGTK_IGNORE_CHANGE"))
+ return;
+@@ -263,7 +268,7 @@ static void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
+ 
+ if (ih->handle)
+ {
+- GtkWidget* tab_page;
++ GtkWidget *tab_page, *tab_container;
+ GtkWidget *tab_label = NULL, *tab_image = NULL;
+ char *tabtitle, *tabimage;
+ int pos;
+@@ -271,9 +276,13 @@ static void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
+ 
+ pos = IupGetChildPos(ih, child);
+ 
+- tab_page = gtk_fixed_new();
++ tab_page = gtk_vbox_new(FALSE, 0);
+ gtk_widget_show(tab_page);
+ 
++ tab_container = gtk_fixed_new();
++ gtk_widget_show(tab_container);
++ gtk_container_add((GtkContainer*)tab_page, tab_container);
++
+ tabtitle = iupAttribGet(child, "TABTITLE");
+ if (!tabtitle) tabtitle = iupTabsAttribGetStrId(ih, "TABTITLE", pos);
+ tabimage = iupAttribGet(child, "TABIMAGE");
+@@ -327,9 +336,10 @@ static void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
+ 
+ iupAttribSetStr(child, "_IUPGTK_TABIMAGE", (char*)tab_image); /* store it even if its NULL */
+ iupAttribSetStr(child, "_IUPGTK_TABLABEL", (char*)tab_label);
+- iupAttribSetStr(child, "_IUPTAB_CONTAINER", (char*)tab_page);
++ iupAttribSetStr(child, "_IUPTAB_CONTAINER", (char*)tab_container);
++ iupAttribSetStr(child, "_IUPTAB_PAGE", (char*)tab_page);
+ iupStrToRGB(IupGetAttribute(ih, "BGCOLOR"), &r, &g, &b);
+- iupgtkBaseSetBgColor(tab_page, r, g, b);
++ iupgtkBaseSetBgColor(tab_container, r, g, b);
+ 
+ if (tabtitle)
+ {
+@@ -354,10 +364,8 @@ static void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
+ 
+ iupAttribSetStr(ih, "_IUPGTK_IGNORE_CHANGE", NULL);
+ 
+- if (pos == iupdrvTabsGetCurrentTab(ih))
+- IupSetAttribute(child, "VISIBLE", "YES");
+- else
+- IupSetAttribute(child, "VISIBLE", "NO");
++ if (pos != iupdrvTabsGetCurrentTab(ih))
++ gtk_widget_hide(tab_container);
+ }
+ }
+ 
+@@ -365,10 +373,11 @@ static void gtkTabsChildRemovedMethod(Ihandle* ih, Ihandle* child)
+ {
+ if (ih->handle)
+ {
+- GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");
++ GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_PAGE");
+ if (tab_page)
+ {
+ int pos = gtk_notebook_page_num((GtkNotebook*)ih->handle, tab_page);
++ iupTabsTestRemoveTab(ih, pos);
+ 
+ iupAttribSetStr(ih, "_IUPGTK_IGNORE_CHANGE", "1");
+ gtk_notebook_remove_page((GtkNotebook*)ih->handle, pos);
+@@ -377,6 +386,7 @@ static void gtkTabsChildRemovedMethod(Ihandle* ih, Ihandle* child)
+ iupAttribSetStr(child, "_IUPGTK_TABIMAGE", NULL);
+ iupAttribSetStr(child, "_IUPGTK_TABLABEL", NULL);
+ iupAttribSetStr(child, "_IUPTAB_CONTAINER", NULL);
++ iupAttribSetStr(child, "_IUPTAB_PAGE", NULL);
+ }
+ }
+ }
+@@ -440,5 +450,5 @@ void iupdrvTabsInitClass(Iclass* ic)
+ iupClassRegisterAttribute(ic, "TABORIENTATION", iupTabsGetTabOrientationAttrib, gtkTabsSetTabOrientationAttrib, IUPAF_SAMEASSYSTEM, "HORIZONTAL", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "TABTITLE", NULL, gtkTabsSetTabTitleAttrib, IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, gtkTabsSetTabImageAttrib, IUPAF_NO_INHERIT);
+- iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, gtkTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);
++ iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, gtkTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ }
+diff --git a/iup/src/gtk/iupgtk_text.c b/iup/src/gtk/iupgtk_text.c
+index 4c2906a..d0909d7 100755
+--- a/iup/src/gtk/iupgtk_text.c
++++ b/iup/src/gtk/iupgtk_text.c
+@@ -101,7 +101,7 @@ static void gtkTextParseParagraphFormat(Ihandle* formattag, GtkTextTag* tag)
+ align = PANGO_TAB_LEFT;
+ free(str);
+ 
+- pango_tab_array_set_tab(tabs, i, align, IUPGTK_PIXELS2PANGOUNITS(pos));
++ pango_tab_array_set_tab(tabs, i, align, iupGTK_PIXELS2PANGOUNITS(pos));
+ i++;
+ if (i == 32) break;
+ }
+@@ -171,7 +171,7 @@ static void gtkTextParseCharacterFormat(Ihandle* formattag, GtkTextTag* tag)
+ else 
+ iupStrToInt(format, &val);
+ 
+- val = IUPGTK_PIXELS2PANGOUNITS(val);
++ val = iupGTK_PIXELS2PANGOUNITS(val);
+ g_object_set(G_OBJECT(tag), "rise", val, NULL);
+ }
+ 
+@@ -214,7 +214,7 @@ static void gtkTextParseCharacterFormat(Ihandle* formattag, GtkTextTag* tag)
+ {
+ if (val < 0) /* in pixels */
+ {
+- val = IUPGTK_PIXELS2PANGOUNITS(-val);
++ val = iupGTK_PIXELS2PANGOUNITS(-val);
+ g_object_set(G_OBJECT(tag), "size", val, NULL);
+ }
+ else /* in points */
+@@ -387,8 +387,8 @@ static int gtkTextConvertXYToPos(Ihandle* ih, int x, int y)
+ 
+ /* transform to Layout coordinates */
+ gtk_entry_get_layout_offsets(GTK_ENTRY(ih->handle), &off_x, &off_y);
+- x = IUPGTK_PIXELS2PANGOUNITS(x - off_x); 
+- y = IUPGTK_PIXELS2PANGOUNITS(y - off_y);
++ x = iupGTK_PIXELS2PANGOUNITS(x - off_x); 
++ y = iupGTK_PIXELS2PANGOUNITS(y - off_y);
+ 
+ pango_layout_xy_to_index(gtk_entry_get_layout(GTK_ENTRY(ih->handle)), x, y, &pos, &trailing);
+ return pos;
+@@ -851,7 +851,7 @@ static char* gtkTextGetValueAttrib(Ihandle* ih)
+ 
+ static int gtkTextSetInsertAttrib(Ihandle* ih, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ if (!value)
+ return 0;
+@@ -875,7 +875,8 @@ static int gtkTextSetInsertAttrib(Ihandle* ih, const char* value)
+ 
+ static int gtkTextSetAppendAttrib(Ihandle* ih, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ gint pos;
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ /* disable callbacks */
+ iupAttribSetStr(ih, "_IUPGTK_DISABLE_TEXT_CB", "1");
+@@ -884,13 +885,18 @@ static int gtkTextSetAppendAttrib(Ihandle* ih, const char* value)
+ GtkTextIter iter;
+ GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ih->handle));
+ gtk_text_buffer_get_end_iter(buffer, &iter);
+- if (ih->data->append_newline)
++ pos = gtk_text_buffer_get_char_count(buffer);
++ if (ih->data->append_newline && pos!=0)
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
+ gtk_text_buffer_insert(buffer, &iter, iupgtkStrConvertToUTF8(value), -1);
+ }
+ else
+ {
+- gint pos = strlen(gtk_entry_get_text(GTK_ENTRY(ih->handle)))+1;
++#if GTK_CHECK_VERSION(2, 14, 0)
++ pos = gtk_entry_get_text_length(GTK_ENTRY(ih->handle))+1;
++#else
++ pos = strlen(gtk_entry_get_text(GTK_ENTRY(ih->handle)))+1;
++#endif
+ gtk_editable_insert_text(GTK_EDITABLE(ih->handle), iupgtkStrConvertToUTF8(value), -1, &pos);
+ }
+ iupAttribSetStr(ih, "_IUPGTK_DISABLE_TEXT_CB", NULL);
+@@ -946,8 +952,10 @@ static int gtkTextSetPaddingAttrib(Ihandle* ih, const char* value)
+ gtk_entry_set_inner_border(GTK_ENTRY(ih->handle), &border);
+ #endif
+ }
++ return 0;
+ }
+- return 0;
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int gtkTextSetNCAttrib(Ihandle* ih, const char* value)
+@@ -955,10 +963,14 @@ static int gtkTextSetNCAttrib(Ihandle* ih, const char* value)
+ if (!iupStrToInt(value, &ih->data->nc))
+ ih->data->nc = INT_MAX;
+ 
+- if (!ih->data->is_multiline && ih->handle)
+- gtk_entry_set_max_length(GTK_ENTRY(ih->handle), ih->data->nc);
+-
+- return 0;
++ if (ih->handle)
++ {
++ if (!ih->data->is_multiline)
++ gtk_entry_set_max_length(GTK_ENTRY(ih->handle), ih->data->nc);
++ return 0;
++ }
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int gtkTextSetClipboardAttrib(Ihandle *ih, const char *value)
+diff --git a/iup/src/gtk/iupgtk_toggle.c b/iup/src/gtk/iupgtk_toggle.c
+index 8ff7df5..040beda 100755
+--- a/iup/src/gtk/iupgtk_toggle.c
++++ b/iup/src/gtk/iupgtk_toggle.c
+@@ -213,8 +213,10 @@ static int gtkToggleSetPaddingAttrib(Ihandle* ih, const char* value)
+ GtkButton* button = (GtkButton*)ih->handle;
+ GtkMisc* misc = (GtkMisc*)gtk_button_get_image(button);
+ gtk_misc_set_padding(misc, ih->data->horiz_padding, ih->data->vert_padding);
++ return 0;
+ }
+- return 0;
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int gtkToggleSetFgColorAttrib(Ihandle* ih, const char* value)
+diff --git a/iup/src/gtk/iupgtk_tree.c b/iup/src/gtk/iupgtk_tree.c
+index d408f27..9595ada 100755
+--- a/iup/src/gtk/iupgtk_tree.c
++++ b/iup/src/gtk/iupgtk_tree.c
+@@ -31,33 +31,50 @@
+ #include "iup_drvinfo.h"
+ #include "iupgtk_drv.h"
+ 
++
++/* IMPORTANT: 
++
++ GtkTreeStore uses the "user_data" field of the GtkTreeIter 
++ to store the node pointer that is position independent.
++ So we use it as a reference to the node in the cache, just like in Motif and Windows.
++
++ BUT if GTK change its implementation this must be changed also. See "gtk_tree_store.c".
++
++ ABOUT SELECTIONS:
++
++ From the GTK documentation on GtkTreeSelection
++
++ "Additionally, you cannot change the selection of a row on the model 
++ that is not currently displayed by the view without expanding its parents first."
++*/
++
+ enum
+ {
+- IUPGTK_TREE_IMAGE,
++ IUPGTK_TREE_IMAGE, /* "pixbuf", "pixbuf-expander-closed" */
+ IUPGTK_TREE_HAS_IMAGE,
+- IUPGTK_TREE_IMAGE_EXPANDED,
++ IUPGTK_TREE_IMAGE_EXPANDED, /* "pixbuf-expander-open" */
+ IUPGTK_TREE_HAS_IMAGE_EXPANDED,
+- IUPGTK_TREE_TITLE,
+- IUPGTK_TREE_KIND,
+- IUPGTK_TREE_COLOR,
+- IUPGTK_TREE_FONT,
+- IUPGTK_TREE_USERDATA
++ IUPGTK_TREE_TITLE, /* "text" */
++ IUPGTK_TREE_KIND, /* "is-expander" */
++ IUPGTK_TREE_COLOR, /* "foreground-gdk" */
++ IUPGTK_TREE_FONT, /* "font-desc" */
++ IUPGTK_TREE_SELECT,
++ IUPGTK_TREE_LAST_DATA /* used as a count */
+ };
+ 
+-static GtkTreeIter gtkTreeInvalidIter = {0,0,0,0};
++static void gtkTreeRebuildNodeCache(Ihandle* ih, int id, GtkTreeIter iterItem);
+ 
+ /*****************************************************************************/
+ /* COPYING ITEMS (Branches and its children) */
+ /*****************************************************************************/
+ /* Insert the copied item in a new location. Returns the new item. */
+-static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeIter* iterParent, int position, GtkTreeIter *iterNewItem, int full_copy)
++static void gtkTreeCopyItem(Ihandle* ih, GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeIter* iterParent, int position, GtkTreeIter *iterNewItem)
+ {
+ GtkTreeStore* store = GTK_TREE_STORE(model);
+ int kind;
+ char* title;
+ gboolean has_image, has_image_expanded;
+ PangoFontDescription* font;
+- void* userdata;
+ GdkColor *color;
+ GdkPixbuf* image, *image_expanded;
+ 
+@@ -69,9 +86,10 @@ static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeI
+ IUPGTK_TREE_KIND, &kind,
+ IUPGTK_TREE_COLOR, &color, 
+ IUPGTK_TREE_FONT, &font, 
+- IUPGTK_TREE_USERDATA, &userdata,
+ -1);
+ 
++ /* Add the new node */
++ ih->data->node_count++;
+ if (position == 2)
+ gtk_tree_store_append(store, iterNewItem, iterParent);
+ else if (position == 1) /* copy as first child of expanded branch */
+@@ -79,9 +97,6 @@ static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeI
+ else /* copy as next brother of item or collapsed branch */
+ gtk_tree_store_insert_after(store, iterNewItem, NULL, iterParent); /* iterParent is sibling of the new item */
+ 
+- if (full_copy) /* during a full copy the userdata reference is not copied */
+- userdata = NULL;
+-
+ gtk_tree_store_set(store, iterNewItem, IUPGTK_TREE_IMAGE, image,
+ IUPGTK_TREE_HAS_IMAGE, has_image,
+ IUPGTK_TREE_IMAGE_EXPANDED, image_expanded,
+@@ -90,21 +105,21 @@ static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeI
+ IUPGTK_TREE_KIND, kind,
+ IUPGTK_TREE_COLOR, color, 
+ IUPGTK_TREE_FONT, font,
+- IUPGTK_TREE_USERDATA, userdata,
++ IUPGTK_TREE_SELECT, 0,
+ -1);
+ }
+ 
+-static void gtkTreeCopyChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst, int full_copy)
++static void gtkTreeCopyChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst)
+ {
+ GtkTreeIter iterChildSrc;
+ int hasItem = gtk_tree_model_iter_children(model, &iterChildSrc, iterItemSrc); /* get the firstchild */
+ while(hasItem)
+ {
+ GtkTreeIter iterNewItem;
+- gtkTreeCopyItem(model, &iterChildSrc, iterItemDst, 2, &iterNewItem, full_copy); /* append always */
++ gtkTreeCopyItem(ih, model, &iterChildSrc, iterItemDst, 2, &iterNewItem); /* append always */
+ 
+ /* Recursively transfer all the items */
+- gtkTreeCopyChildren(ih, model, &iterChildSrc, &iterNewItem, full_copy); 
++ gtkTreeCopyChildren(ih, model, &iterChildSrc, &iterNewItem); 
+ 
+ /* Go to next sibling item */
+ hasItem = gtk_tree_model_iter_next(model, &iterChildSrc);
+@@ -112,9 +127,17 @@ static void gtkTreeCopyChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *i
+ }
+ 
+ /* Copies all items in a branch to a new location. Returns the new branch node. */
+-static void gtkTreeCopyNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst, GtkTreeIter* iterNewItem, int full_copy)
++static void gtkTreeCopyMoveNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst, GtkTreeIter* iterNewItem, int is_copy)
+ {
+ int kind, position = 0; /* insert after iterItemDst */
++ int id_new, count, id_src, id_dst;
++
++ int old_count = ih->data->node_count;
++
++ id_src = iupTreeFindNodeId(ih, iterItemSrc);
++ id_dst = iupTreeFindNodeId(ih, iterItemDst);
++ id_new = id_dst+1; /* contains the position for a copy operation */
++
+ gtk_tree_model_get(model, iterItemDst, IUPGTK_TREE_KIND, &kind, -1);
+ 
+ if (kind == ITREE_BRANCH)
+@@ -122,346 +145,311 @@ static void gtkTreeCopyNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterI
+ GtkTreePath* path = gtk_tree_model_get_path(model, iterItemDst);
+ if (gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))
+ position = 1; /* insert as first child of iterItemDst */
++ else
++ {
++ int child_count = iupdrvTreeTotalChildCount(ih, iterItemDst);
++ id_new += child_count;
++ }
+ gtk_tree_path_free(path);
+ }
+ 
+- gtkTreeCopyItem(model, iterItemSrc, iterItemDst, position, iterNewItem, full_copy); 
++ /* move to the same place does nothing */
++ if (!is_copy && id_new == id_src)
++ {
++ iterNewItem->stamp = 0;
++ return;
++ }
+ 
+- gtkTreeCopyChildren(ih, model, iterItemSrc, iterNewItem, full_copy);
+-}
++ gtkTreeCopyItem(ih, model, iterItemSrc, iterItemDst, position, iterNewItem); 
+ 
+-/*****************************************************************************/
+-/* FINDING ITEMS */
+-/*****************************************************************************/
++ gtkTreeCopyChildren(ih, model, iterItemSrc, iterNewItem);
+ 
+-static void gtkTreeInvertAllNodeMarking(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter* iterItem)
+-{
+- GtkTreeIter iterChild;
+- int hasItem = TRUE;
++ count = ih->data->node_count - old_count;
++ iupTreeCopyMoveCache(ih, id_src, id_new, count, is_copy);
+ 
+- while(hasItem)
++ if (!is_copy)
+ {
+- if(gtk_tree_selection_iter_is_selected(selection, iterItem))
+- gtk_tree_selection_unselect_iter(selection, iterItem);
+- else
+- gtk_tree_selection_select_iter(selection, iterItem);
++ /* Deleting the node of its old position */
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
++ gtk_tree_store_remove(GTK_TREE_STORE(model), iterItemSrc);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ 
+- /* Check whether we have child items */
+- if(gtk_tree_model_iter_has_child(model, iterItem))
+- {
+- gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */
+- gtkTreeInvertAllNodeMarking(ih, model, selection, &iterChild);
+- }
++ /* restore count, because we remove src */
++ ih->data->node_count = old_count;
+ 
+- /* Go to next sibling item */
+- hasItem = gtk_tree_model_iter_next(model, iterItem);
++ /* compensate position for a move */
++ if (id_new > id_src)
++ id_new -= count;
+ }
++
++ gtkTreeRebuildNodeCache(ih, id_new, *iterNewItem);
+ }
+ 
+-static GtkTreeIter gtkTreeFindVisibleNodeId(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, GtkTreeIter iterNode)
++/*****************************************************************************/
++/* FINDING ITEMS */
++/*****************************************************************************/
++
++static void gtkTreeIterInit(Ihandle* ih, GtkTreeIter* iterItem, InodeHandle* node_handle)
+ {
+- GtkTreeIter iterChild;
+- GtkTreePath* path;
+- int hasItem = TRUE;
++ iterItem->stamp = ih->data->stamp;
++ iterItem->user_data = node_handle;
++ iterItem->user_data2 = NULL;
++ iterItem->user_data3 = NULL;
++}
+ 
+- while(hasItem)
+- {
+- /* ID control to traverse items */
+- ih->data->id_control++; /* not the real id since it counts only the visible ones */
++static int gtkTreeIsNodeSelected(GtkTreeModel* model, GtkTreeIter *iterItem)
++{
++ gboolean selected = 0;
++ gtk_tree_model_get(model, iterItem, IUPGTK_TREE_SELECT, &selected, -1);
++ return selected;
++}
+ 
+- /* StateID founded! */
+- if(iterItem.user_data == iterNode.user_data)
+- return iterItem;
++static void gtkTreeSelectNodeRaw(GtkTreeModel* model, GtkTreeIter *iterItem, int select)
++{
++ /* Cannot change the selection of a row on the model that is not currently displayed. 
++ So we store the selection state here. And update the actual state when the node becames visible. */
++ gtk_tree_store_set(GTK_TREE_STORE(model), iterItem, IUPGTK_TREE_SELECT, select, -1);
++}
+ 
+- path = gtk_tree_model_get_path(model, &iterItem);
++static void gtkTreeSelectNode(GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter *iterItem, int select)
++{
++ if (select == -1)
++ select = !gtkTreeIsNodeSelected(model, iterItem); /* toggle */
+ 
+- /* Check whether we have child items and it is expanded (visible) */
+- if (gtk_tree_model_iter_has_child(model, &iterItem) && gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))
+- {
+- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */
+- iterChild = gtkTreeFindVisibleNodeId(ih, model, iterChild, iterNode);
++ gtkTreeSelectNodeRaw(model, iterItem, select);
+ 
+- /* StateID founded! */
+- if(iterChild.user_data)
+- {
+- gtk_tree_path_free(path);
+- return iterChild;
+- }
+- }
++ if (select)
++ gtk_tree_selection_select_iter(selection, iterItem);
++ else
++ gtk_tree_selection_unselect_iter(selection, iterItem);
++}
+ 
+- gtk_tree_path_free(path);
+- /* Go to next sibling item */
+- hasItem = gtk_tree_model_iter_next(model, &iterItem);
++static void gtkTreeSelectAll(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, int selected)
++{
++ int i;
++ GtkTreeIter iterItem;
++
++ for (i = 0; i < ih->data->node_count; i++)
++ {
++ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
++ gtkTreeSelectNodeRaw(model, &iterItem, selected);
+ }
+ 
+- return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */
++ if (selected)
++ gtk_tree_selection_select_all(selection);
++ else
++ gtk_tree_selection_unselect_all(selection);
+ }
+ 
+-static GtkTreeIter gtkTreeFindVisibleNodeFromId(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem)
++static void gtkTreeInvertAllNodeMarking(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection)
+ {
+- GtkTreeIter iterChild;
+- GtkTreePath* path;
+- int hasItem = TRUE;
++ int i;
++ GtkTreeIter iterItem;
+ 
+- while(hasItem)
++ for (i = 0; i < ih->data->node_count; i++)
+ {
+- /* ID control to traverse items */
+- ih->data->id_control--; /* not the real id since it counts only the visible ones */
++ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
++ gtkTreeSelectNode(model, selection, &iterItem, -1);
++ }
++}
+ 
+- /* StateID founded! */
+- if(ih->data->id_control < 0)
+- return iterItem;
++static void gtkTreeSelectRange(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter *iterItem1, GtkTreeIter *iterItem2, int clear)
++{
++ int i;
++ int id1 = iupTreeFindNodeId(ih, iterItem1->user_data);
++ int id2 = iupTreeFindNodeId(ih, iterItem2->user_data);
++ GtkTreeIter iterItem;
+ 
+- path = gtk_tree_model_get_path(model, &iterItem);
++ if (id1 > id2)
++ {
++ int tmp = id1;
++ id1 = id2;
++ id2 = tmp;
++ }
+ 
+- /* Check whether we have child items and it is expanded (visible) */
+- if(gtk_tree_model_iter_has_child(model, &iterItem) && gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))
++ for (i = 0; i < ih->data->node_count; i++)
++ {
++ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
++ if (i < id1 || i > id2)
+ {
+- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */
+- iterChild = gtkTreeFindVisibleNodeFromId(ih, model, iterChild);
+-
+- /* StateID founded! */
+- if(ih->data->id_control < 0)
+- {
+- gtk_tree_path_free(path);
+- return iterChild;
+- }
++ if (clear)
++ gtkTreeSelectNode(model, selection, &iterItem, 0);
+ }
+-
+- gtk_tree_path_free(path);
+- /* Go to next sibling item */
+- hasItem = gtk_tree_model_iter_next(model, &iterItem);
++ else
++ gtkTreeSelectNode(model, selection, &iterItem, 1);
+ }
+-
+- return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */
+ }
+ 
+-static GtkTreeIter gtkTreeGetLastVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem)
++static int gtkTreeIsNodeVisible(Ihandle* ih, GtkTreeModel* model, InodeHandle* node_handle, InodeHandle* *nodeLastParent)
+ {
+- GtkTreeIter iterChild, iterPrev = gtkTreeInvalidIter;
+- GtkTreePath* path = gtk_tree_model_get_path(model, &iterItem);
+-
+- /* Check whether we have child items and it is expanded (visible) */
+- if(gtk_tree_model_iter_has_child(model, &iterItem) && gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))
+- {
+- int hasItem = TRUE;
+- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */
++ GtkTreeIter iterItem, iterParent;
++ GtkTreePath* path;
++ int is_visible;
+ 
+- while(hasItem)
+- {
+- iterPrev = iterChild;
++ gtkTreeIterInit(ih, &iterItem, node_handle);
+ 
+- /* Go to next sibling item */
+- hasItem = gtk_tree_model_iter_next(model, &iterChild);
+- }
++ if (!gtk_tree_model_iter_parent(model, &iterParent, &iterItem) ||
++ iterParent.user_data == *nodeLastParent)
++ return 1;
+ 
+- iterItem = gtkTreeGetLastVisibleNode(ih, model, iterPrev);
+- }
++ path = gtk_tree_model_get_path(model, &iterParent);
++ is_visible = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path);
+ gtk_tree_path_free(path);
+ 
+- return iterItem;
++ if (!is_visible)
++ return 0;
++
++ /* save last parent */
++ *nodeLastParent = iterParent.user_data;
++ return 1;
+ }
+ 
+-static GtkTreeIter gtkTreeFindNodeID(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, GtkTreeIter iterNode)
++static void gtkTreeGetLastVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem)
+ {
+- GtkTreeIter iterChild;
+- int hasItem = TRUE;
++ int i;
++ InodeHandle* nodeLastParent = NULL;
+ 
+- while(hasItem)
++ for (i = ih->data->node_count-1; i >= 0; i--)
+ {
+- /* ID control to traverse items */
+- ih->data->id_control++;
+-
+- /* StateID founded! */
+- if (iterItem.user_data == iterNode.user_data)
+- return iterItem;
+-
+- /* Check whether we have child items */
+- if (gtk_tree_model_iter_has_child(model, &iterItem))
++ if (gtkTreeIsNodeVisible(ih, model, ih->data->node_cache[i].node_handle, &nodeLastParent))
+ {
+- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */
+- iterChild = gtkTreeFindNodeID(ih, model, iterChild, iterNode);
+-
+- /* StateID founded! */
+- if(iterChild.user_data)
+- return iterChild;
++ gtkTreeIterInit(ih, iterItem, ih->data->node_cache[i].node_handle);
++ return;
+ }
+-
+- /* Go to next sibling item */
+- hasItem = gtk_tree_model_iter_next(model, &iterItem);
+ }
+ 
+- return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */
++ gtkTreeIterInit(ih, iterItem, ih->data->node_cache[0].node_handle); /* root is always visible */
+ }
+ 
+-static int gtkTreeGetNodeId(Ihandle* ih, GtkTreeIter iterItem)
++static void gtkTreeGetNextVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, int count)
+ {
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+- GtkTreeIter iterRoot;
+- gtk_tree_model_get_iter_first(model, &iterRoot);
+-
+- ih->data->id_control = -1;
+- iterItem = gtkTreeFindNodeID(ih, model, iterRoot, iterItem);
+- if (iterItem.user_data)
+- return ih->data->id_control;
+- else
+- return -1;
+-}
++ int i, id;
++ InodeHandle* nodeLastParent = NULL;
+ 
+-static GtkTreeIter gtkTreeFindUserData(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, void* userdata)
+-{
+- GtkTreeIter iterChild;
+- int hasItem = TRUE;
+- void* node_userdata;
++ id = iupTreeFindNodeId(ih, iterItem->user_data);
++ id += count;
+ 
+- while(hasItem)
++ for (i = id; i < ih->data->node_count; i++)
+ {
+- /* ID control to traverse items */
+- ih->data->id_control++;
++ if (gtkTreeIsNodeVisible(ih, model, ih->data->node_cache[i].node_handle, &nodeLastParent))
++ {
++ gtkTreeIterInit(ih, iterItem, ih->data->node_cache[i].node_handle);
++ return;
++ }
++ }
+ 
+- gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_USERDATA, &node_userdata, -1);
++ gtkTreeIterInit(ih, iterItem, ih->data->node_cache[0].node_handle); /* root is always visible */
++}
+ 
+- /* userdata founded! */
+- if (node_userdata == userdata)
+- return iterItem;
++static void gtkTreeGetPreviousVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, int count)
++{
++ int i, id;
++ InodeHandle* nodeLastParent = NULL;
+ 
+- /* Check whether we have child items */
+- if (gtk_tree_model_iter_has_child(model, &iterItem))
+- {
+- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */
+- iterChild = gtkTreeFindUserData(ih, model, iterChild, userdata);
++ id = iupTreeFindNodeId(ih, iterItem->user_data);
++ id -= count;
+ 
+- /* userdata founded! */
+- if (iterChild.user_data)
+- return iterChild;
++ for (i = id; i >= 0; i--)
++ {
++ if (gtkTreeIsNodeVisible(ih, model, ih->data->node_cache[i].node_handle, &nodeLastParent))
++ {
++ gtkTreeIterInit(ih, iterItem, ih->data->node_cache[i].node_handle);
++ return;
+ }
+-
+- /* Go to next sibling item */
+- hasItem = gtk_tree_model_iter_next(model, &iterItem);
+ }
+ 
+- return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */
++ gtkTreeGetLastVisibleNode(ih, model, iterItem);
+ }
+ 
+-static int gtkTreeGetUserDataId(Ihandle* ih, GtkTreeModel* model, void* userdata)
++static int gtkTreeFindNodeId(Ihandle* ih, GtkTreeIter* iterItem)
+ {
+- GtkTreeIter iterRoot, iterItem;
+- gtk_tree_model_get_iter_first(model, &iterRoot);
+-
+- ih->data->id_control = -1;
+- iterItem = gtkTreeFindUserData(ih, model, iterRoot, userdata);
+- if (iterItem.user_data)
+- return ih->data->id_control;
+- else
+- return -1;
++ return iupTreeFindNodeId(ih, iterItem->user_data);
+ }
+ 
+-static void gtkTreeCallNodeRemovedRec(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, IFnis cb)
++static void gtkTreeCallNodeRemovedRec(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, IFns cb, int *id)
+ {
+ GtkTreeIter iterChild;
+- int hasItem = TRUE;
+- void* node_userdata;
++ int hasItem;
++ int old_id = *id;
+ 
++ /* Check whether we have child items */
++ /* remove from children first */
++ hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */
+ while(hasItem)
+ {
+- /* ID control to traverse items */
+- ih->data->id_control++;
+-
+- gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_USERDATA, &node_userdata, -1);
+-
+- cb(ih, ih->data->id_control, (char*)node_userdata);
+-
+- /* Check whether we have child items */
+- if (gtk_tree_model_iter_has_child(model, &iterItem))
+- {
+- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */
+- gtkTreeCallNodeRemovedRec(ih, model, iterChild, cb);
+- }
++ /* go recursive to children */
++ gtkTreeCallNodeRemovedRec(ih, model, &iterChild, cb, id);
+ 
+ /* Go to next sibling item */
+- hasItem = gtk_tree_model_iter_next(model, &iterItem);
++ hasItem = gtk_tree_model_iter_next(model, &iterChild);
+ }
++
++ /* actually do it for the node */
++ ih->data->node_count--;
++ (*id)++;
++
++ cb(ih, (char*)ih->data->node_cache[old_id].userdata);
+ }
+ 
+ static void gtkTreeCallNodeRemoved(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem)
+ {
+- IFnis cb = (IFnis)IupGetCallback(ih, "NODEREMOVED_CB");
++ int old_count = ih->data->node_count;
++ int id = iupTreeFindNodeId(ih, iterItem->user_data);
++ int old_id = id;
++
++ IFns cb = (IFns)IupGetCallback(ih, "NODEREMOVED_CB");
+ if (cb) 
++ gtkTreeCallNodeRemovedRec(ih, model, iterItem, cb, &id);
++ else
+ {
+- ih->data->id_control = gtkTreeGetNodeId(ih, *iterItem)-1;
+- gtkTreeCallNodeRemovedRec(ih, model, *iterItem, cb);
++ int removed_count = iupdrvTreeTotalChildCount(ih, iterItem->user_data)+1;
++ ih->data->node_count -= removed_count;
+ }
++
++ iupTreeDelFromCache(ih, old_id, old_count-ih->data->node_count);
+ }
+ 
+-static gboolean gtkTreeFindNodeFromID(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, int *id)
++static void gtkTreeCallNodeRemovedAll(Ihandle* ih)
+ {
+- GtkTreeIter iterChild;
+- int hasItem = TRUE;
++ IFns cb = (IFns)IupGetCallback(ih, "NODEREMOVED_CB");
++ int i, old_count = ih->data->node_count;
+ 
+- while(hasItem)
++ if (cb)
+ {
+- /* ID control to traverse items */
+- (*id)--;
+-
+- /* StateID founded! */
+- if (*id < 0)
+- return TRUE;
+-
+- /* Check whether we have child items */
+- if (gtk_tree_model_iter_has_child(model, iterItem))
++ for (i = 0; i < ih->data->node_count; i++)
+ {
+- gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */
+- 
+- if (gtkTreeFindNodeFromID(ih, model, &iterChild, id))
+- {
+- *iterItem = iterChild;
+- return TRUE;
+- }
++ cb(ih, (char*)ih->data->node_cache[i].userdata);
+ }
+-
+- /* Go to next sibling item */
+- hasItem = gtk_tree_model_iter_next(model, iterItem);
+ }
+ 
+- return FALSE;
++ ih->data->node_count = 0;
++
++ iupTreeDelFromCache(ih, 0, old_count);
+ }
+ 
+-static gboolean gtkTreeFindNodeFromString(Ihandle* ih, GtkTreeModel* model, const char* name_id, GtkTreeIter *iterItem)
++static gboolean gtkTreeFindNodeFromString(Ihandle* ih, const char* name_id, GtkTreeIter *iterItem)
+ {
+- if (name_id[0])
+- {
+- int id;
+- if (iupStrToInt(name_id, &id))
+- {
+- gtk_tree_model_get_iter_first(model, iterItem);
+- return gtkTreeFindNodeFromID(ih, model, iterItem, &id);
+- }
+- }
+- else
+- {
+- GtkTreePath* path = NULL;
+- gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, NULL);
+- if (path)
+- {
+- gtk_tree_model_get_iter(model, iterItem, path);
+- gtk_tree_path_free(path);
+- return TRUE;
+- }
+- }
+- return FALSE;
++ InodeHandle* node_handle = iupTreeGetNodeFromString(ih, name_id);
++ if (!node_handle)
++ return FALSE;
++
++ gtkTreeIterInit(ih, iterItem, node_handle);
++ return TRUE;
+ }
+ 
+ /*****************************************************************************/
+ /* MANIPULATING IMAGES */
+ /*****************************************************************************/
+-static void gtkTreeUpdateImages(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, int mode)
++static void gtkTreeUpdateImages(Ihandle* ih, int mode)
+ {
+- GtkTreeIter iterChild;
+- int hasItem = TRUE;
+- int kind;
++ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
++ GtkTreeIter iterItem;
++ int i, kind;
+ 
+- while(hasItem)
++ for (i=0; i<ih->data->node_count; i++)
+ {
++ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
++
+ gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1);
+ 
+ if (kind == ITREE_BRANCH)
+@@ -480,14 +468,6 @@ static void gtkTreeUpdateImages(Ihandle* ih, GtkTreeModel* model, GtkTreeIter it
+ if (!has_image)
+ gtk_tree_store_set(GTK_TREE_STORE(model), &iterItem, IUPGTK_TREE_IMAGE, ih->data->def_image_collapsed, -1);
+ }
+-
+- if (gtk_tree_model_iter_has_child(model, &iterItem))
+- {
+-
+- /* Recursively traverse child items */
+- gtk_tree_model_iter_children(model, &iterChild, &iterItem);
+- gtkTreeUpdateImages(ih, model, iterChild, mode);
+- }
+ }
+ else 
+ {
+@@ -499,9 +479,6 @@ static void gtkTreeUpdateImages(Ihandle* ih, GtkTreeModel* model, GtkTreeIter it
+ gtk_tree_store_set(GTK_TREE_STORE(model), &iterItem, IUPGTK_TREE_IMAGE, ih->data->def_image_leaf, -1);
+ }
+ }
+-
+- /* Go to next sibling item */
+- hasItem = gtk_tree_model_iter_next(model, &iterItem);
+ }
+ }
+ 
+@@ -536,26 +513,49 @@ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t
+ GtkTreeIter iterPrev, iterNewItem, iterParent;
+ GtkTreePath* path;
+ GdkColor color = {0L,0,0,0};
+- int kindPrev;
+-
+- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterPrev))
+- return;
++ int kindPrev = -1;
+ 
+- gtk_tree_model_get(GTK_TREE_MODEL(store), &iterPrev, IUPGTK_TREE_KIND, &kindPrev, -1);
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterPrev))
++ {
++ /* check if the root was really specified */
++ int id = 0;
++ if (!iupStrToInt(name_id, &id) || id != -1)
++ return;
++ }
++ else
++ gtk_tree_model_get(GTK_TREE_MODEL(store), &iterPrev, IUPGTK_TREE_KIND, &kindPrev, -1);
+ 
+- if (kindPrev == ITREE_BRANCH && add)
+- gtk_tree_store_insert(store, &iterNewItem, &iterPrev, 0); /* iterPrev is parent of the new item (firstchild of it) */
++ if (kindPrev != -1)
++ {
++ /* Add the new node */
++ if (kindPrev == ITREE_BRANCH && add)
++ gtk_tree_store_insert(store, &iterNewItem, &iterPrev, 0); /* iterPrev is parent of the new item (firstchild of it) */
++ else
++ gtk_tree_store_insert_after(store, &iterNewItem, NULL, &iterPrev); /* iterPrev is sibling of the new item */
++ iupTreeAddToCache(ih, add, kindPrev, iterPrev.user_data, iterNewItem.user_data);
++ }
+ else
+- gtk_tree_store_insert_after(store, &iterNewItem, NULL, &iterPrev); /* iterPrev is sibling of the new item */
++ {
++ gtk_tree_store_append(store, &iterNewItem, NULL); /* root node */
++ iupTreeAddToCache(ih, 0, 0, NULL, iterNewItem.user_data);
++
++ /* store the stamp for the tree */
++ ih->data->stamp = iterNewItem.stamp;
++ }
+ 
+ iupgtkGetColor(iupAttribGetStr(ih, "FGCOLOR"), &color);
+ 
++ if (!title)
++ title = "";
++
+ /* set the attributes of the new node */
+ gtk_tree_store_set(store, &iterNewItem, IUPGTK_TREE_HAS_IMAGE, FALSE,
+ IUPGTK_TREE_HAS_IMAGE_EXPANDED, FALSE,
+ IUPGTK_TREE_TITLE, iupgtkStrConvertToUTF8(title),
+ IUPGTK_TREE_KIND, kind,
+- IUPGTK_TREE_COLOR, &color, -1);
++ IUPGTK_TREE_COLOR, &color, 
++ IUPGTK_TREE_SELECT, 0,
++ -1);
+ 
+ if (kind == ITREE_LEAF)
+ gtk_tree_store_set(store, &iterNewItem, IUPGTK_TREE_IMAGE, ih->data->def_image_leaf, -1);
+@@ -563,56 +563,113 @@ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t
+ gtk_tree_store_set(store, &iterNewItem, IUPGTK_TREE_IMAGE, ih->data->def_image_collapsed,
+ IUPGTK_TREE_IMAGE_EXPANDED, ih->data->def_image_expanded, -1);
+ 
+- if (kindPrev == ITREE_BRANCH && add)
+- iterParent = iterPrev;
+- else
+- gtk_tree_model_iter_parent(GTK_TREE_MODEL(store), &iterParent, &iterNewItem);
++ if (kindPrev != -1)
++ {
++ if (kindPrev == ITREE_BRANCH && add)
++ iterParent = iterPrev;
++ else if (!gtk_tree_model_iter_parent(GTK_TREE_MODEL(store), &iterParent, &iterNewItem))
++ return;
+ 
+- /* If this is the first child of the parent, then handle the ADDEXPANDED attribute */
+- if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), &iterParent) == 1)
++ /* If this is the first child of the parent, then handle the ADDEXPANDED attribute */
++ if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), &iterParent) == 1)
++ {
++ path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterParent);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", "1");
++ if (ih->data->add_expanded)
++ gtk_tree_view_expand_row(GTK_TREE_VIEW(ih->handle), path, FALSE);
++ else
++ gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", NULL);
++ gtk_tree_path_free(path);
++ }
++ }
++ else
+ {
+- int depth;
+- path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterParent);
+- depth = gtk_tree_path_get_depth(path)-1;
+- if (ih->data->add_expanded || depth==0) /* if this is the first child of the root, expand always */
++ if (ih->data->node_count == 1)
+ {
+- iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCHOPEN_CB", "1");
+- gtk_tree_view_expand_row(GTK_TREE_VIEW(ih->handle), path, FALSE);
++ /* MarkStart node */
++ iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)iterNewItem.user_data);
++
++ /* Set the default VALUE */
++ path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterNewItem);
++ gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE);
++ gtk_tree_path_free(path);
+ }
+- else
+- gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path);
+- gtk_tree_path_free(path);
+ }
+ }
+ 
+-static void gtkTreeAddRootNode(Ihandle* ih)
++
++/*****************************************************************************/
++/* AUXILIAR FUNCTIONS */
++/*****************************************************************************/
++
++
++static void gtkTreeChildRebuildCacheRec(Ihandle* ih, GtkTreeModel *model, GtkTreeIter *iterItem, int *id)
+ {
+- GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
+- GtkTreePath* path;
+- GtkTreeIter iterRoot;
+- GdkColor color = {0L,0,0,0};
++ GtkTreeIter iterChild;
++ int hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */
++ while(hasItem)
++ {
++ (*id)++;
++ ih->data->node_cache[*id].node_handle = iterChild.user_data;
+ 
+- iupgtkGetColor(iupAttribGetStr(ih, "FGCOLOR"), &color);
++ /* go recursive to children */
++ gtkTreeChildRebuildCacheRec(ih, model, &iterChild, id);
++
++ /* Go to next sibling item */
++ hasItem = gtk_tree_model_iter_next(model, &iterChild);
++ }
++}
+ 
+- gtk_tree_store_append(store, &iterRoot, NULL); /* root node */
+- gtk_tree_store_set(store, &iterRoot, IUPGTK_TREE_IMAGE, ih->data->def_image_collapsed,
+- IUPGTK_TREE_HAS_IMAGE, FALSE,
+- IUPGTK_TREE_IMAGE_EXPANDED, ih->data->def_image_expanded,
+- IUPGTK_TREE_HAS_IMAGE_EXPANDED, FALSE,
+- IUPGTK_TREE_KIND, ITREE_BRANCH,
+- IUPGTK_TREE_COLOR, &color, -1);
++static void gtkTreeRebuildNodeCache(Ihandle* ih, int id, GtkTreeIter iterItem)
++{
++ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
++ ih->data->node_cache[id].node_handle = iterItem.user_data;
++ gtkTreeChildRebuildCacheRec(ih, model, &iterItem, &id);
++}
++
++static void gtkTreeChildCountRec(GtkTreeModel *model, GtkTreeIter *iterItem, int *count)
++{
++ GtkTreeIter iterChild;
++ int hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */
++ while(hasItem)
++ {
++ (*count)++;
+ 
+- path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterRoot);
+- /* MarkStart node */
+- iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)path);
++ /* go recursive to children */
++ gtkTreeChildCountRec(model, &iterChild, count);
+ 
+- /* Set the default VALUE */
+- gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE);
++ /* Go to next sibling item */
++ hasItem = gtk_tree_model_iter_next(model, &iterChild);
++ }
++}
++
++int iupdrvTreeTotalChildCount(Ihandle* ih, InodeHandle* node_handle)
++{
++ int count = 0;
++ GtkTreeIter iterItem;
++ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
++ gtkTreeIterInit(ih, &iterItem, node_handle);
++ gtkTreeChildCountRec(model, &iterItem, &count);
++ return count;
++}
++
++InodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih)
++{
++ GtkTreePath* path = NULL;
++ gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, NULL);
++ if (path)
++ {
++ GtkTreeIter iterItem;
++ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
++ gtk_tree_model_get_iter(model, &iterItem, path);
++ gtk_tree_path_free(path);
++ return iterItem.user_data;
++ }
++
++ return NULL;
+ }
+ 
+-/*****************************************************************************/
+-/* AUXILIAR FUNCTIONS */
+-/*****************************************************************************/
+ static void gtkTreeOpenCloseEvent(Ihandle* ih)
+ {
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+@@ -620,7 +677,7 @@ static void gtkTreeOpenCloseEvent(Ihandle* ih)
+ GtkTreePath* path;
+ int kind;
+ 
+- if (!gtkTreeFindNodeFromString(ih, model, "", &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, "", &iterItem))
+ return;
+ 
+ path = gtk_tree_model_get_path(model, &iterItem);
+@@ -637,27 +694,22 @@ static void gtkTreeOpenCloseEvent(Ihandle* ih)
+ }
+ }
+ 
+-static gboolean gtkTreeSelected_Foreach_Func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GList **rowref_list)
++typedef struct _gtkTreeSelectMinMax
+ {
+- GtkTreeRowReference *rowref;
+-
+- rowref = gtk_tree_row_reference_new(model, path);
+- *rowref_list = g_list_append(*rowref_list, rowref);
++ Ihandle* ih;
++ int id1, id2;
++} gtkTreeSelectMinMax;
+ 
+- (void)iter;
+- return FALSE; /* do not stop walking the store, call us with next row */
+-}
+-
+-static gboolean gtkTreeSelected_Iter_Func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GList **rowref_list)
++static gboolean gtkTreeSelected_Foreach_Func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iterItem, gtkTreeSelectMinMax *minmax)
+ {
+- GtkTreeRowReference *rowref;
+- GtkTreeIter iterParent;
+- if (!gtk_tree_model_iter_parent(model, &iterParent, iter)) /* the root node can't be deleted */
+- return FALSE; /* do not stop walking the store, call us with next row */
+-
+- rowref = gtk_tree_row_reference_new(model, path);
+- *rowref_list = g_list_append(*rowref_list, rowref);
++ int id = iupTreeFindNodeId(minmax->ih, iterItem->user_data);
++ if (id < minmax->id1)
++ minmax->id1 = id;
++ if (id > minmax->id2)
++ minmax->id2 = id;
+ 
++ (void)model;
++ (void)path;
+ return FALSE; /* do not stop walking the store, call us with next row */
+ }
+ 
+@@ -672,45 +724,48 @@ static void gtkTreeCallMultiSelectionCb(Ihandle* ih)
+ {
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
+- GtkTreeIter iterRoot;
+- GList *rr_list = NULL;
+- GList *node;
+- int* id_rowItem;
+- int count_selected_rows, i = 0;
++ GtkTreeIter iterItem;
++ int i = 0, countItems;
++ gtkTreeSelectMinMax minmax;
+ 
+- gtk_tree_model_get_iter_first(model, &iterRoot);
++ minmax.ih = ih;
++ minmax.id1 = ih->data->node_count;
++ minmax.id2 = -1;
+ 
+- gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)gtkTreeSelected_Foreach_Func, &rr_list);
+- count_selected_rows = g_list_length(rr_list);
+- id_rowItem = malloc(sizeof(int) * count_selected_rows);
++ gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)gtkTreeSelected_Foreach_Func, &minmax);
++ if (minmax.id2 == -1)
++ return;
+ 
+- for(node = rr_list; node != NULL; node = node->next)
++ /* interactive selection of several nodes will NOT select hidden nodes,
++ so make sure that they are selected. */
++ for(i = minmax.id1; i <= minmax.id2; i++)
+ {
+- GtkTreePath* path = gtk_tree_row_reference_get_path(node->data);
+- if (path)
+- {
+- GtkTreeIter iterItem;
+- gtk_tree_model_get_iter(model, &iterItem, path);
+-
+- id_rowItem[i] = gtkTreeGetNodeId(ih, iterItem);
+- i++;
+-
+- gtk_tree_path_free(path);
+- }
++ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
++ if (!gtkTreeIsNodeSelected(model, &iterItem))
++ gtkTreeSelectNodeRaw(model, &iterItem, 1);
+ }
+ 
+- g_list_foreach(rr_list, (GFunc) gtk_tree_row_reference_free, NULL);
+- g_list_free(rr_list);
++ /* if last selected item is a branch, then select its children */
++ iupTreeSelectLastCollapsedBranch(ih, &(minmax.id2));
++
++ countItems = minmax.id2-minmax.id1+1;
+ 
+ if (cbMulti)
+- cbMulti(ih, id_rowItem, count_selected_rows);
+- else
+ {
+- for (i=0; i<count_selected_rows; i++)
+- cbSelec(ih, id_rowItem[i], 1);
+- }
++ int* id_rowItem = malloc(sizeof(int) * countItems);
++
++ for(i = 0; i < countItems; i++)
++ id_rowItem[i] = minmax.id1+i;
+ 
+- free(id_rowItem);
++ cbMulti(ih, id_rowItem, countItems);
++
++ free(id_rowItem);
++ }
++ else if (cbSelec)
++ {
++ for (i=0; i<countItems; i++)
++ cbSelec(ih, minmax.id1+i, 1);
++ }
+ }
+ }
+ 
+@@ -747,14 +802,22 @@ static int gtkTreeSetTopItemAttrib(Ihandle* ih, const char* value)
+ GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
+ GtkTreeIter iterItem;
+ GtkTreePath* path;
++ int kind;
+ 
+- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), value, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, value, &iterItem))
+ return 0;
+ 
+ path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterItem);
+ 
+- if (!gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))
++ gtk_tree_model_get(GTK_TREE_MODEL(store), &iterItem, IUPGTK_TREE_KIND, &kind, -1);
++ if (kind == ITREE_LEAF)
++ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path);
++ else
++ {
++ int expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path);
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path);
++ if (!expanded) gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path);
++ }
+ 
+ gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE, 0, 0); /* scroll to visible */
+ 
+@@ -788,34 +851,23 @@ static int gtkTreeSetExpandAllAttrib(Ihandle* ih, const char* value)
+ if (iupStrBoolean(value))
+ gtk_tree_view_expand_all(GTK_TREE_VIEW(ih->handle));
+ else
+- {
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+- GtkTreeIter iterRoot;
+- GtkTreePath* pathRoot;
+-
+ gtk_tree_view_collapse_all(GTK_TREE_VIEW(ih->handle));
+ 
+- /* The root node is always expanded */
+- gtk_tree_model_get_iter_first(model, &iterRoot);
+- pathRoot = gtk_tree_model_get_path(model, &iterRoot);
+- gtk_tree_view_expand_row(GTK_TREE_VIEW(ih->handle), pathRoot, FALSE);
+- gtk_tree_path_free(pathRoot);
+- }
+-
+ return 0;
+ }
+ 
+ static char* gtkTreeGetDepthAttrib(Ihandle* ih, const char* name_id)
+ {
+- char* depth;
++ char* str;
+ GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
+ GtkTreeIter iterItem;
+- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
++
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return NULL;
+ 
+- depth = iupStrGetMemory(10);
+- sprintf(depth, "%d", gtk_tree_store_iter_depth(store, &iterItem));
+- return depth;
++ str = iupStrGetMemory(10);
++ sprintf(str, "%d", gtk_tree_store_iter_depth(store, &iterItem));
++ return str;
+ }
+ 
+ static int gtkTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char* value)
+@@ -824,14 +876,14 @@ static int gtkTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char
+ GtkTreeIter iterItemSrc, iterItemDst, iterNewItem;
+ GtkTreeIter iterParent, iterNextParent;
+ 
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ 
+ model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItemSrc))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItemSrc))
+ return 0;
+ 
+- if (!gtkTreeFindNodeFromString(ih, model, value, &iterItemDst))
++ if (!gtkTreeFindNodeFromString(ih, value, &iterItemDst))
+ return 0;
+ 
+ /* If Drag item is an ancestor of Drop item then return */
+@@ -843,12 +895,8 @@ static int gtkTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char
+ iterParent = iterNextParent;
+ }
+ 
+- /* Copying the node and its children to the new position */
+- gtkTreeCopyNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 0); /* not a full copy, preserve user data */
+-
+- /* Deleting the node of its old position */
+- /* do not delete the user data, we copy the references in CopyNode */
+- gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItemSrc);
++ /* Move the node and its children to the new position */
++ gtkTreeCopyMoveNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 0);
+ 
+ return 0;
+ }
+@@ -859,14 +907,14 @@ static int gtkTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char
+ GtkTreeIter iterItemSrc, iterItemDst, iterNewItem;
+ GtkTreeIter iterParent, iterNextParent;
+ 
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ 
+ model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItemSrc))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItemSrc))
+ return 0;
+ 
+- if (!gtkTreeFindNodeFromString(ih, model, value, &iterItemDst))
++ if (!gtkTreeFindNodeFromString(ih, value, &iterItemDst))
+ return 0;
+ 
+ /* If Drag item is an ancestor of Drop item then return */
+@@ -878,8 +926,8 @@ static int gtkTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char
+ iterParent = iterNextParent;
+ }
+ 
+- /* Copying the node and its children to the new position */
+- gtkTreeCopyNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 1);
++ /* Copy the node and its children to the new position */
++ gtkTreeCopyMoveNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 1);
+ 
+ return 0;
+ }
+@@ -891,7 +939,7 @@ static char* gtkTreeGetColorAttrib(Ihandle* ih, const char* name_id)
+ GtkTreeIter iterItem;
+ GdkColor *color;
+ 
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return NULL;
+ 
+ gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_COLOR, &color, -1);
+@@ -912,7 +960,7 @@ static int gtkTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v
+ GdkColor color;
+ unsigned char r, g, b;
+ 
+- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return 0;
+ 
+ if (!iupStrToRGB(value, &r, &g, &b))
+@@ -931,14 +979,14 @@ static char* gtkTreeGetParentAttrib(Ihandle* ih, const char* name_id)
+ GtkTreeIter iterParent;
+ char* str;
+ 
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return NULL;
+ 
+ if (!gtk_tree_model_iter_parent(model, &iterParent, &iterItem))
+ return NULL;
+ 
+ str = iupStrGetMemory(10);
+- sprintf(str, "%d", gtkTreeGetNodeId(ih, iterParent));
++ sprintf(str, "%d", gtkTreeFindNodeId(ih, &iterParent));
+ return str;
+ }
+ 
+@@ -948,7 +996,7 @@ static char* gtkTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)
+ GtkTreeIter iterItem;
+ char* str;
+ 
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return NULL;
+ 
+ str = iupStrGetMemory(10);
+@@ -956,40 +1004,13 @@ static char* gtkTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)
+ return str;
+ }
+ 
+-static int gtkTreeCount(GtkTreeModel* model, GtkTreeIter iterBranch)
+-{
+- GtkTreeIter iterChild;
+- int count = 0;
+- int hasItem = gtk_tree_model_iter_children(model, &iterChild, &iterBranch); /* get the firstchild */
+- count++;
+- while(hasItem)
+- {
+- count += gtkTreeCount(model, iterChild);
+-
+- /* Go to next sibling item */
+- hasItem = gtk_tree_model_iter_next(model, &iterChild);
+- }
+-
+- return count;
+-}
+-
+-static char* gtkTreeGetCountAttrib(Ihandle* ih)
+-{
+- GtkTreeIter iterRoot;
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+- char* str = iupStrGetMemory(10);
+- gtk_tree_model_get_iter_first(model, &iterRoot);
+- sprintf(str, "%d", gtkTreeCount(model, iterRoot));
+- return str;
+-}
+-
+ static char* gtkTreeGetKindAttrib(Ihandle* ih, const char* name_id)
+ {
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeIter iterItem;
+ int kind;
+ 
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return NULL;
+ 
+ gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1);
+@@ -1005,7 +1026,7 @@ static char* gtkTreeGetStateAttrib(Ihandle* ih, const char* name_id)
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeIter iterItem;
+ 
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return NULL;
+ 
+ if (gtk_tree_model_iter_has_child(model, &iterItem))
+@@ -1028,13 +1049,20 @@ static int gtkTreeSetStateAttrib(Ihandle* ih, const char* name_id, const char* v
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeIter iterItem;
+ GtkTreePath* path;
++ int kind;
+ 
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return 0;
+ 
+- path = gtk_tree_model_get_path(model, &iterItem);
+- gtkTreeExpandItem(ih, path, iupStrEqualNoCase(value, "EXPANDED"));
+- gtk_tree_path_free(path);
++ gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1);
++ if (kind == ITREE_BRANCH)
++ {
++ path = gtk_tree_model_get_path(model, &iterItem);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", "1");
++ gtkTreeExpandItem(ih, path, iupStrEqualNoCase(value, "EXPANDED"));
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", NULL);
++ gtk_tree_path_free(path);
++ }
+ 
+ return 0;
+ }
+@@ -1050,7 +1078,7 @@ static char* gtkTreeGetTitleAttrib(Ihandle* ih, const char* name_id)
+ {
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeIter iterItem;
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return NULL;
+ return gtkTreeGetTitle(model, iterItem);
+ }
+@@ -1059,8 +1087,10 @@ static int gtkTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* v
+ {
+ GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
+ GtkTreeIter iterItem;
+- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return 0;
++ if (!value)
++ value = "";
+ gtk_tree_store_set(store, &iterItem, IUPGTK_TREE_TITLE, iupgtkStrConvertToUTF8(value), -1);
+ return 0;
+ }
+@@ -1070,7 +1100,7 @@ static int gtkTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha
+ PangoFontDescription* fontdesc = NULL;
+ GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
+ GtkTreeIter iterItem;
+- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return 0;
+ if (value)
+ fontdesc = iupgtkGetPangoFontDesc(value);
+@@ -1083,49 +1113,12 @@ static char* gtkTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id)
+ PangoFontDescription* fontdesc;
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeIter iterItem;
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return NULL;
+ gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_FONT, &fontdesc, -1);
+ return pango_font_description_to_string(fontdesc);
+ }
+ 
+-static char* gtkTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id)
+-{
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+- int id;
+- char* str = (char*)(name_id+1); /* skip ':' */
+- void* userdata = NULL;
+- if (sscanf(str, "%p", &userdata)!=1)
+- return NULL;
+- id = gtkTreeGetUserDataId(ih, model, userdata);
+- if (id == -1)
+- return NULL;
+- str = iupStrGetMemory(16);
+- sprintf(str, "%d", id);
+- return str;
+-}
+-
+-static char* gtkTreeGetUserDataAttrib(Ihandle* ih, const char* name_id)
+-{
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+- GtkTreeIter iterItem;
+- char* userdata;
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+- return NULL;
+- gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_USERDATA, &userdata, -1);
+- return userdata;
+-}
+-
+-static int gtkTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value)
+-{
+- GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
+- GtkTreeIter iterItem;
+- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
+- return 0;
+- gtk_tree_store_set(store, &iterItem, IUPGTK_TREE_USERDATA, value, -1);
+- return 0;
+-}
+-
+ static char* gtkTreeGetValueAttrib(Ihandle* ih)
+ {
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+@@ -1140,67 +1133,117 @@ static char* gtkTreeGetValueAttrib(Ihandle* ih)
+ gtk_tree_path_free(path);
+ 
+ str = iupStrGetMemory(16);
+- sprintf(str, "%d", gtkTreeGetNodeId(ih, iterItem));
++ sprintf(str, "%d", gtkTreeFindNodeId(ih, &iterItem));
+ return str;
+ }
+ 
+- return "0"; /* default VALUE is root */
++ if (ih->data->node_count)
++ return "0"; /* default VALUE is root */
++ else
++ return "-1";
++}
++
++static char* gtkTreeGetMarkedNodesAttrib(Ihandle* ih)
++{
++ char* str = iupStrGetMemory(ih->data->node_count+1);
++ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
++ GtkTreeIter iterItem;
++ int i;
++
++ for (i=0; i<ih->data->node_count; i++)
++ {
++ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
++ if (gtkTreeIsNodeSelected(model, &iterItem))
++ str[i] = '+';
++ else
++ str[i] = '-';
++ }
++
++ str[ih->data->node_count] = 0;
++ return str;
++}
++
++static int gtkTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value)
++{
++ int count, i;
++ GtkTreeModel* model;
++ GtkTreeIter iterItem;
++ GtkTreeSelection* selection;
++
++ if (ih->data->mark_mode==ITREE_MARK_SINGLE || !value)
++ return 0;
++
++ count = strlen(value);
++ if (count > ih->data->node_count)
++ count = ih->data->node_count;
++
++ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
++ model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
++
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
++
++ for (i=0; i<count; i++)
++ {
++ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
++ if (value[i] == '+')
++ gtkTreeSelectNode(model, selection, &iterItem, 1);
++ else
++ gtkTreeSelectNode(model, selection, &iterItem, 0);
++ }
++
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
++
++ return 0;
+ }
+ 
+ static int gtkTreeSetMarkAttrib(Ihandle* ih, const char* value)
+ {
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
+- GtkTreeIter iterRoot;
+ 
+ if (ih->data->mark_mode==ITREE_MARK_SINGLE)
+ return 0;
+ 
+- gtk_tree_model_get_iter_first(model, &iterRoot);
+-
+ if(iupStrEqualNoCase(value, "BLOCK"))
+ {
++ GtkTreeIter iterItem1, iterItem2;
+ GtkTreePath* pathFocus;
+ gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
+- gtk_tree_selection_select_range(selection, (GtkTreePath*)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"), pathFocus);
++ gtk_tree_model_get_iter(model, &iterItem1, pathFocus);
+ gtk_tree_path_free(pathFocus);
++
++ gtkTreeIterInit(ih, &iterItem2, iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"));
++
++ gtkTreeSelectRange(ih, model, selection, &iterItem1, &iterItem2, 0);
+ }
+ else if(iupStrEqualNoCase(value, "CLEARALL"))
+- gtk_tree_selection_unselect_all(selection);
++ gtkTreeSelectAll(ih, model, selection, 0);
+ else if(iupStrEqualNoCase(value, "MARKALL"))
+- gtk_tree_selection_select_all(selection);
++ gtkTreeSelectAll(ih, model, selection, 1);
+ else if(iupStrEqualNoCase(value, "INVERTALL")) /* INVERTALL *MUST* appear before INVERT, or else INVERTALL will never be called. */
+- gtkTreeInvertAllNodeMarking(ih, model, selection, &iterRoot);
++ gtkTreeInvertAllNodeMarking(ih, model, selection);
+ else if(iupStrEqualPartial(value, "INVERT"))
+ {
+ /* iupStrEqualPartial allows the use of "INVERTid" form */
+ GtkTreeIter iterItem;
+- if (!gtkTreeFindNodeFromString(ih, model, &value[strlen("INVERT")], &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, &value[strlen("INVERT")], &iterItem))
+ return 0;
+ 
+- if(gtk_tree_selection_iter_is_selected(selection, &iterItem))
+- gtk_tree_selection_unselect_iter(selection, &iterItem);
+- else
+- gtk_tree_selection_select_iter(selection, &iterItem);
++ gtkTreeSelectNode(model, selection, &iterItem, -1); /* toggle */
+ }
+ else
+ {
+- GtkTreePath *path1, *path2;
+ GtkTreeIter iterItem1, iterItem2;
+ char str1[50], str2[50];
+ if (iupStrToStrStr(value, str1, str2, '-')!=2)
+ return 0;
+ 
+- if (!gtkTreeFindNodeFromString(ih, model, str1, &iterItem1))
++ if (!gtkTreeFindNodeFromString(ih, str1, &iterItem1))
+ return 0;
+- if (!gtkTreeFindNodeFromString(ih, model, str2, &iterItem2))
++ if (!gtkTreeFindNodeFromString(ih, str2, &iterItem2))
+ return 0;
+ 
+- path1 = gtk_tree_model_get_path(model, &iterItem1);
+- path2 = gtk_tree_model_get_path(model, &iterItem2);
+- gtk_tree_selection_select_range(selection, path1, path2);
+- gtk_tree_path_free(path1);
+- gtk_tree_path_free(path2);
++ gtkTreeSelectRange(ih, model, selection, &iterItem1, &iterItem2, 0);
+ }
+ 
+ return 1;
+@@ -1210,148 +1253,112 @@ static int gtkTreeSetValueAttrib(Ihandle* ih, const char* value)
+ {
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
+- GtkTreeIter iterRoot, iterItem;
++ GtkTreeIter iterItem;
+ GtkTreePath* path;
++ int kind;
+ 
+ if (gtkTreeSetMarkAttrib(ih, value))
+ return 0;
+ 
+- gtk_tree_model_get_iter_first(model, &iterRoot);
+-
+- if (iupStrEqualNoCase(value, "ROOT"))
+- iterItem = iterRoot;
++ if (iupStrEqualNoCase(value, "ROOT") || iupStrEqualNoCase(value, "FIRST"))
++ gtk_tree_model_get_iter_first(model, &iterItem);
+ else if(iupStrEqualNoCase(value, "LAST"))
+- iterItem = gtkTreeGetLastVisibleNode(ih, model, iterRoot);
++ gtkTreeGetLastVisibleNode(ih, model, &iterItem);
+ else if(iupStrEqualNoCase(value, "PGUP"))
+ {
+- GtkTreeIter iterPrev;
+-
+ GtkTreePath* pathFocus;
+ gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
+- gtk_tree_model_get_iter(model, &iterPrev, pathFocus);
++ gtk_tree_model_get_iter(model, &iterItem, pathFocus);
+ gtk_tree_path_free(pathFocus);
+ 
+- ih->data->id_control = -1;
+- gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterPrev);
+- ih->data->id_control -= 10; /* less 10 visible nodes */
+-
+- if(ih->data->id_control < 0)
+- ih->data->id_control = 0; /* Begin of tree = Root id */
+-
+- iterItem = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot);
++ gtkTreeGetPreviousVisibleNode(ih, model, &iterItem, 10);
+ }
+ else if(iupStrEqualNoCase(value, "PGDN"))
+ {
+- GtkTreeIter iterNext;
+-
+ GtkTreePath* pathFocus;
+ gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
+- gtk_tree_model_get_iter(model, &iterNext, pathFocus);
++ gtk_tree_model_get_iter(model, &iterItem, pathFocus);
+ gtk_tree_path_free(pathFocus);
+ 
+- ih->data->id_control = -1;
+- gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterNext);
+- ih->data->id_control += 10; /* more 10 visible nodes */
+-
+- iterNext = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot);
+-
+- if (ih->data->id_control >= 0)
+- iterNext = gtkTreeGetLastVisibleNode(ih, model, iterRoot);
+-
+- iterItem = iterNext;
++ gtkTreeGetNextVisibleNode(ih, model, &iterItem, 10);
+ }
+ else if(iupStrEqualNoCase(value, "NEXT"))
+ {
+- GtkTreeIter iterNext;
+-
+ GtkTreePath* pathFocus;
+ gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
+- gtk_tree_model_get_iter(model, &iterNext, pathFocus);
++ gtk_tree_model_get_iter(model, &iterItem, pathFocus);
+ gtk_tree_path_free(pathFocus);
+ 
+- ih->data->id_control = -1;
+- gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterNext);
+- ih->data->id_control++; /* more 1 visible node */
+-
+- iterNext = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot);
+-
+- if (ih->data->id_control >= 0)
+- iterNext = gtkTreeGetLastVisibleNode(ih, model, iterRoot);
+-
+- iterItem = iterNext;
++ gtkTreeGetNextVisibleNode(ih, model, &iterItem, 1);
+ }
+ else if(iupStrEqualNoCase(value, "PREVIOUS"))
+ {
+- GtkTreeIter iterPrev;
+-
+ GtkTreePath* pathFocus;
+ gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
+- gtk_tree_model_get_iter(model, &iterPrev, pathFocus);
++ gtk_tree_model_get_iter(model, &iterItem, pathFocus);
+ gtk_tree_path_free(pathFocus);
+ 
+- ih->data->id_control = -1;
+- gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterPrev);
+- ih->data->id_control--; /* less 1 visible node */
+-
+- if (ih->data->id_control < 0)
+- ih->data->id_control = 0;
+-
+- iterItem = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot);
+- if (!iterItem.user_data)
+- return 0;
++ gtkTreeGetPreviousVisibleNode(ih, model, &iterItem, 1);
+ }
+ else
+ {
+- if (!gtkTreeFindNodeFromString(ih, model, value, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, value, &iterItem))
+ return 0;
+ }
+ 
+ /* select */
+ if (ih->data->mark_mode==ITREE_MARK_SINGLE)
+ {
+- iupAttribSetStr(ih, "_IUP_IGNORE_SELECTION", "1");
+- gtk_tree_selection_select_iter(selection, &iterItem);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
++ gtkTreeSelectNode(model, selection, &iterItem, 1);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ }
+ 
+ path = gtk_tree_model_get_path(model, &iterItem);
++
++ /* make it visible */
++ gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1);
++ if (kind == ITREE_LEAF)
++ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path);
++ else
++ {
++ int expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path);
++ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path);
++ if (!expanded) gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path);
++ }
++
+ gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE, 0, 0); /* scroll to visible */
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE); /* set focus */
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
++
+ gtk_tree_path_free(path);
+ 
+- iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", gtkTreeGetNodeId(ih, iterItem));
++ iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", gtkTreeFindNodeId(ih, &iterItem));
+ 
+ return 0;
+ } 
+ 
+ static int gtkTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)
+ {
+- GtkTreePath *pathMarkStart, *pathMarkStartPrev;
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeIter iterItem;
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return 0;
+ 
+- pathMarkStart = gtk_tree_model_get_path(model, &iterItem);
+-
+- pathMarkStartPrev = (GtkTreePath*)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE");
+- if (pathMarkStartPrev)
+- gtk_tree_path_free(pathMarkStartPrev);
+-
+- iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)pathMarkStart);
++ iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)iterItem.user_data);
+ 
+ return 1;
+ }
+ 
+ static char* gtkTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)
+ {
+- GtkTreeSelection* selection;
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
++ GtkTreeModel* model;
+ GtkTreeIter iterItem;
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return 0;
+ 
+- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
+- if (gtk_tree_selection_iter_is_selected(selection, &iterItem))
++ model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
++ if (gtkTreeIsNodeSelected(model, &iterItem))
+ return "YES";
+ else
+ return "NO";
+@@ -1359,87 +1366,99 @@ static char* gtkTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)
+ 
+ static int gtkTreeSetMarkedAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
++ GtkTreeModel* model;
+ GtkTreeSelection* selection;
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeIter iterItem;
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return 0;
+ 
+- iupAttribSetStr(ih, "_IUP_IGNORE_SELECTION", "1");
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ 
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
++ model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ if (iupStrBoolean(value))
+- gtk_tree_selection_select_iter(selection, &iterItem);
++ gtkTreeSelectNode(model, selection, &iterItem, 1);
+ else
+- gtk_tree_selection_unselect_iter(selection, &iterItem);
++ gtkTreeSelectNode(model, selection, &iterItem, 0);
++
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ 
+ return 0;
+ }
+ 
+ static int gtkTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+- if (iupStrEqualNoCase(value, "SELECTED")) /* selected here means the specified one */
++ if (iupStrEqualNoCase(value, "ALL"))
+ {
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+- GtkTreeIter iterItem;
+- GtkTreeIter iterParent;
++ gtkTreeCallNodeRemovedAll(ih);
+ 
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
+- return 0;
++ /* deleting the reference node (and it's children) */
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
++ gtk_tree_store_clear(GTK_TREE_STORE(model));
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
++ return 0;
++ }
++ if (iupStrEqualNoCase(value, "SELECTED")) /* selected here means the reference node */
++ {
++ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
++ GtkTreeIter iterItem;
+ 
+- if (!gtk_tree_model_iter_parent(model, &iterParent, &iterItem)) /* the root node can't be deleted */
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return 0;
+ 
+ gtkTreeCallNodeRemoved(ih, model, &iterItem);
+ 
+- /* deleting the specified node (and it's children) */
++ /* deleting the reference node (and it's children) */
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItem);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ }
+- else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the specified one */
++ else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the reference node */
+ {
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ GtkTreeIter iterItem, iterChild;
+ int hasChildren;
+ 
+- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return 0;
+ 
+ hasChildren = gtk_tree_model_iter_children(model, &iterChild, &iterItem);
+ 
+- /* deleting the selected node's children */
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
++
++ /* deleting the reference node children */
+ while(hasChildren)
+ {
+ gtkTreeCallNodeRemoved(ih, model, &iterChild);
+ hasChildren = gtk_tree_store_remove(GTK_TREE_STORE(model), &iterChild);
+ }
++
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ }
+ else if(iupStrEqualNoCase(value, "MARKED")) /* Delete the array of marked nodes */
+ {
++ int i;
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+- GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
+- GList *rr_list = NULL;
+- GList *node;
++ GtkTreeIter iterItem;
+ 
+- gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)gtkTreeSelected_Iter_Func, &rr_list);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ 
+- for(node = rr_list; node != NULL; node = node->next)
++ for(i = 1; i < ih->data->node_count; /* increment only if not removed */)
+ {
+- GtkTreePath* path = gtk_tree_row_reference_get_path(node->data);
+- if (path)
++ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
++ if (gtkTreeIsNodeSelected(model, &iterItem))
+ {
+- GtkTreeIter iterItem;
+- if (gtk_tree_model_get_iter(model, &iterItem, path))
+- {
+- gtkTreeCallNodeRemoved(ih, model, &iterItem);
+- gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItem);
+- }
+- gtk_tree_path_free(path);
++ gtkTreeCallNodeRemoved(ih, model, &iterItem);
++ gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItem);
+ }
+- gtk_tree_row_reference_free(node->data);
++ else
++ i++;
+ }
+- g_list_free(rr_list);
++
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ }
+ 
+ return 0;
+@@ -1450,36 +1469,11 @@ static int gtkTreeSetRenameAttrib(Ihandle* ih, const char* value)
+ if (ih->data->show_rename)
+ {
+ GtkTreePath* path;
+- IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");
+ GtkTreeViewColumn *focus_column;
+-
+ gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, &focus_column);
+-
+- if (cbShowRename)
+- {
+- GtkTreeIter iterItem;
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+- gtk_tree_model_get_iter(model, &iterItem, path);
+- cbShowRename(ih, gtkTreeGetNodeId(ih, iterItem));
+- }
+-
+ gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, focus_column, TRUE);
+ gtk_tree_path_free(path);
+ }
+- else
+- {
+- IFnis cbRenameNode = (IFnis)IupGetCallback(ih, "RENAMENODE_CB");
+- if (cbRenameNode)
+- {
+- GtkTreePath* path;
+- GtkTreeIter iterItem;
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+- gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, NULL);
+- gtk_tree_model_get_iter(model, &iterItem, path);
+- gtk_tree_path_free(path);
+- cbRenameNode(ih, gtkTreeGetNodeId(ih, iterItem), gtkTreeGetTitle(model, iterItem)); 
+- }
+- }
+ 
+ (void)value;
+ return 0;
+@@ -1491,7 +1485,7 @@ static int gtkTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const
+ GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
+ GdkPixbuf* pixExpand = iupImageGetImage(value, ih, 0);
+ GtkTreeIter iterItem;
+- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return 0;
+ 
+ gtk_tree_model_get(GTK_TREE_MODEL(store), &iterItem, IUPGTK_TREE_KIND, &kind, -1);
+@@ -1514,7 +1508,7 @@ static int gtkTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v
+ GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));
+ GdkPixbuf* pixImage = iupImageGetImage(value, ih, 0);
+ GtkTreeIter iterItem;
+- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))
++ if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))
+ return 0;
+ 
+ if (pixImage)
+@@ -1539,42 +1533,30 @@ static int gtkTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v
+ 
+ static int gtkTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value)
+ {
+- GtkTreeIter iterRoot;
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ ih->data->def_image_expanded = iupImageGetImage(value, ih, 0);
+ 
+- gtk_tree_model_get_iter_first(model, &iterRoot);
+-
+- /* Update all images, starting at root node */
+- gtkTreeUpdateImages(ih, model, iterRoot, ITREE_UPDATEIMAGE_EXPANDED);
++ /* Update all images */
++ gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED);
+ 
+ return 1;
+ }
+ 
+ static int gtkTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value)
+ {
+- GtkTreeIter iterRoot;
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ ih->data->def_image_collapsed = iupImageGetImage(value, ih, 0);
+ 
+- gtk_tree_model_get_iter_first(model, &iterRoot);
+-
+- /* Update all images, starting at root node */
+- gtkTreeUpdateImages(ih, model, iterRoot, ITREE_UPDATEIMAGE_COLLAPSED);
++ /* Update all images */
++ gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED);
+ 
+ return 1;
+ }
+ 
+ static int gtkTreeSetImageLeafAttrib(Ihandle* ih, const char* value)
+ {
+- GtkTreeIter iterRoot;
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ ih->data->def_image_leaf = iupImageGetImage(value, ih, 0);
+ 
+- gtk_tree_model_get_iter_first(model, &iterRoot);
+-
+- /* Update all images, starting at root node */
+- gtkTreeUpdateImages(ih, model, iterRoot, ITREE_UPDATEIMAGE_LEAF);
++ /* Update all images */
++ gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF);
+ 
+ return 1;
+ }
+@@ -1655,6 +1637,7 @@ void iupdrvTreeUpdateMarkMode(Ihandle *ih)
+ if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && !ih->data->show_dragdrop)
+ {
+ #if GTK_CHECK_VERSION(2, 10, 0)
++ if (iupAttribGetInt(ih, "RUBBERBAND"))
+ gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(ih->handle), TRUE);
+ #endif
+ }
+@@ -1704,6 +1687,19 @@ static void gtkTreeCellTextEditingStarted(GtkCellRenderer *cell, GtkCellEditable
+ PangoFontDescription* fontdesc = NULL;
+ GdkColor *color = NULL;
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
++ IFni cbShowRename;
++
++ gtk_tree_model_get_iter_from_string(model, &iterItem, path_string);
++
++ cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");
++ if (cbShowRename && cbShowRename(ih, gtkTreeFindNodeId(ih, &iterItem))==IUP_IGNORE)
++ {
++ /* TODO: non of these worked:
++ gtk_cell_renderer_stop_editing(cell, TRUE);
++ gtk_cell_editable_editing_done(editable); */
++ gtk_editable_set_editable(GTK_EDITABLE(editable), FALSE);
++ return;
++ }
+ 
+ value = iupAttribGetStr(ih, "RENAMECARET");
+ if (value)
+@@ -1713,7 +1709,6 @@ static void gtkTreeCellTextEditingStarted(GtkCellRenderer *cell, GtkCellEditable
+ if (value)
+ gtkTreeSetRenameSelectionPos(editable, value);
+ 
+- gtk_tree_model_get_iter_from_string(model, &iterItem, path_string);
+ gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_FONT, &fontdesc, -1);
+ if (fontdesc)
+ gtk_widget_modify_font(GTK_WIDGET(editable), fontdesc);
+@@ -1732,7 +1727,7 @@ static void gtkTreeCellTextEdited(GtkCellRendererText *cell, gchar *path_string,
+ IFnis cbRename;
+ 
+ if (!new_text)
+- return;
++ new_text = "";
+ 
+ model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ if (!gtk_tree_model_get_iter_from_string(model, &iterItem, path_string))
+@@ -1741,7 +1736,7 @@ static void gtkTreeCellTextEdited(GtkCellRendererText *cell, gchar *path_string,
+ cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB");
+ if (cbRename)
+ {
+- if (cbRename(ih, gtkTreeGetNodeId(ih, iterItem), iupgtkStrConvertFromUTF8(new_text)) == IUP_IGNORE)
++ if (cbRename(ih, gtkTreeFindNodeId(ih, &iterItem), iupgtkStrConvertFromUTF8(new_text)) == IUP_IGNORE)
+ return;
+ }
+ 
+@@ -1766,8 +1761,8 @@ static int gtkTreeCallDragDropCb(Ihandle* ih, GtkTreeIter *iterDrag, GtkTreeIter
+ 
+ if (cbDragDrop)
+ {
+- int drag_id = gtkTreeGetNodeId(ih, *iterDrag);
+- int drop_id = gtkTreeGetNodeId(ih, *iterDrop);
++ int drag_id = gtkTreeFindNodeId(ih, iterDrag);
++ int drop_id = gtkTreeFindNodeId(ih, iterDrop);
+ return cbDragDrop(ih, drag_id, drop_id, is_shift, *is_ctrl);
+ }
+ 
+@@ -1804,22 +1799,17 @@ static void gtkTreeDragDataReceived(GtkWidget *widget, GdkDragContext *context,
+ {
+ GtkTreeIter iterNewItem;
+ 
+- /* Copy the dragged item to the new position. */
+- gtkTreeCopyNode(ih, model, &iterDrag, &iterDrop, &iterNewItem, is_ctrl);
+-
+- if (!is_ctrl)
+- {
+- /* do not delete the user data, we copy the references in CopyNode */
+- gtk_tree_store_remove(GTK_TREE_STORE(model), &iterDrag);
+- }
++ /* Copy or move the dragged item to the new position. */
++ gtkTreeCopyMoveNode(ih, model, &iterDrag, &iterDrop, &iterNewItem, is_ctrl);
+ 
+ /* set focus and selection */
++ if (iterNewItem.stamp)
+ {
+ GtkTreePath *pathNew;
+ GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
+ 
+ pathNew = gtk_tree_model_get_path(model, &iterNewItem);
+- gtk_tree_selection_select_path(selection, pathNew);
++ gtkTreeSelectNode(model, selection, &iterNewItem, 1);
+ 
+ gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ih->handle), pathNew, NULL, FALSE, 0, 0);
+ gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), pathNew, NULL, FALSE);
+@@ -1927,10 +1917,24 @@ static void gtkTreeDragBegin(GtkWidget *widget, GdkDragContext *context, Ihandle
+ (void)widget;
+ }
+ 
++static gboolean gtkTreeSelectionFunc(GtkTreeSelection *selection, GtkTreeModel *model, GtkTreePath *path, gboolean selected, Ihandle* ih)
++{
++ GtkTreeIter iterItem;
++ gtk_tree_model_get_iter(model, &iterItem, path);
++ gtkTreeSelectNodeRaw(model, &iterItem, !selected);
++ (void)ih;
++ (void)selection;
++ return TRUE;
++}
++
+ static void gtkTreeSelectionChanged(GtkTreeSelection* selection, Ihandle* ih)
+ {
+ IFnii cbSelec;
+ int is_ctrl = 0;
++ (void)selection;
++
++ if (iupAttribGet(ih, "_IUPTREE_IGNORE_SELECTION_CB"))
++ return;
+ 
+ if (ih->data->mark_mode == ITREE_MARK_MULTIPLE)
+ {
+@@ -1953,25 +1957,17 @@ static void gtkTreeSelectionChanged(GtkTreeSelection* selection, Ihandle* ih)
+ if (cbSelec)
+ {
+ int curpos = -1, is_selected = 0;
++ GtkTreeIter iterFocus;
++ GtkTreePath* pathFocus;
++ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ 
+- if (iupAttribGet(ih, "_IUP_IGNORE_SELECTION"))
+- {
+- iupAttribSetStr(ih, "_IUP_IGNORE_SELECTION", NULL);
+- return;
+- }
+-
++ gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
++ if (pathFocus)
+ {
+- GtkTreeIter iterFocus;
+- GtkTreePath* pathFocus;
+- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+- gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);
+- if (pathFocus)
+- {
+- gtk_tree_model_get_iter(model, &iterFocus, pathFocus);
+- gtk_tree_path_free(pathFocus);
+- curpos = gtkTreeGetNodeId(ih, iterFocus);
+- is_selected = gtk_tree_selection_iter_is_selected(selection, &iterFocus);
+- }
++ gtk_tree_model_get_iter(model, &iterFocus, pathFocus);
++ gtk_tree_path_free(pathFocus);
++ curpos = gtkTreeFindNodeId(ih, &iterFocus);
++ is_selected = gtkTreeIsNodeSelected(model, &iterFocus);
+ }
+ 
+ if (curpos == -1)
+@@ -1993,18 +1989,52 @@ static void gtkTreeSelectionChanged(GtkTreeSelection* selection, Ihandle* ih)
+ }
+ }
+ 
++static void gtkTreeUpdateSelectionChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter *iterItem)
++{
++ int expanded;
++ GtkTreeIter iterChild;
++ int hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */
++ while(hasItem)
++ {
++ if (gtkTreeIsNodeSelected(model, &iterChild))
++ gtk_tree_selection_select_iter(selection, &iterChild);
++
++ expanded = 0;
++ if (gtk_tree_model_iter_has_child(model, &iterChild))
++ {
++ GtkTreePath* path = gtk_tree_model_get_path(model, &iterChild);
++ expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path);
++ gtk_tree_path_free(path);
++ }
++
++ /* Recursive only if expanded */
++ if (expanded)
++ gtkTreeUpdateSelectionChildren(ih, model, selection, &iterChild); 
++
++ /* Go to next sibling item */
++ hasItem = gtk_tree_model_iter_next(model, &iterChild);
++ }
++}
++
++static void gtkTreeRowExpanded(GtkTreeView* tree_view, GtkTreeIter *iterItem, GtkTreePath *path, Ihandle* ih)
++{
++ GtkTreeSelection* selection = gtk_tree_view_get_selection(tree_view);
++ GtkTreeModel* model = gtk_tree_view_get_model(tree_view);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
++ gtkTreeUpdateSelectionChildren(ih, model, selection, iterItem);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
++ (void)path;
++}
++
+ static gboolean gtkTreeTestExpandRow(GtkTreeView* tree_view, GtkTreeIter *iterItem, GtkTreePath *path, Ihandle* ih)
+ {
+ IFni cbBranchOpen = (IFni)IupGetCallback(ih, "BRANCHOPEN_CB");
+ if (cbBranchOpen)
+ {
+- if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCHOPEN_CB"))
+- {
+- iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCHOPEN_CB", NULL);
++ if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCH_CB"))
+ return FALSE;
+- }
+ 
+- if (cbBranchOpen(ih, gtkTreeGetNodeId(ih, *iterItem)) == IUP_IGNORE)
++ if (cbBranchOpen(ih, gtkTreeFindNodeId(ih, iterItem)) == IUP_IGNORE)
+ return TRUE; /* prevent the change */
+ }
+ 
+@@ -2018,7 +2048,10 @@ static gboolean gtkTreeTestCollapseRow(GtkTreeView* tree_view, GtkTreeIter *iter
+ IFni cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB");
+ if (cbBranchClose)
+ {
+- if (cbBranchClose(ih, gtkTreeGetNodeId(ih, *iterItem)) == IUP_IGNORE)
++ if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCH_CB"))
++ return FALSE;
++
++ if (cbBranchClose(ih, gtkTreeFindNodeId(ih, iterItem)) == IUP_IGNORE)
+ return TRUE;
+ }
+ 
+@@ -2042,7 +2075,7 @@ static void gtkTreeRowActived(GtkTreeView* tree_view, GtkTreePath *path, GtkTree
+ 
+ /* just to leaf nodes */
+ if(gtk_tree_model_iter_has_child(model, &iterItem) == 0 && kind == ITREE_LEAF)
+- cbExecuteLeaf(ih, gtkTreeGetNodeId(ih, iterItem));
++ cbExecuteLeaf(ih, gtkTreeFindNodeId(ih, &iterItem));
+ 
+ (void)column;
+ (void)tree_view;
+@@ -2057,11 +2090,57 @@ static int gtkTreeConvertXYToPos(Ihandle* ih, int x, int y)
+ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
+ gtk_tree_model_get_iter(model, &iterItem, path);
+ gtk_tree_path_free (path);
+- return gtkTreeGetNodeId(ih, iterItem);
++ return gtkTreeFindNodeId(ih, &iterItem);
+ }
+ return -1;
+ }
+ 
++static Iarray* gtkTreeGetSelectedArrayId(Ihandle* ih)
++{
++ Iarray* selarray = iupArrayCreate(1, sizeof(int));
++ int i;
++ GtkTreeIter iterItem;
++ GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));
++
++ for (i = 0; i < ih->data->node_count; i++)
++ {
++ gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);
++ if (gtkTreeIsNodeSelected(model, &iterItem))
++ {
++ int* id_hitem = (int*)iupArrayInc(selarray);
++ int j = iupArrayCount(selarray);
++ id_hitem[j-1] = i;
++ }
++ }
++
++ return selarray;
++}
++
++static void gtkTreeCallMultiUnSelectionCb(Ihandle* ih)
++{
++ IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTIUNSELECTION_CB");
++ IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");
++ if (cbSelec || cbMulti)
++ {
++ Iarray* markedArray = gtkTreeGetSelectedArrayId(ih);
++ int* id_hitem = (int*)iupArrayGetData(markedArray);
++ int i, count = iupArrayCount(markedArray);
++
++ if (count > 1)
++ {
++ if (cbMulti)
++ cbMulti(ih, id_hitem, iupArrayCount(markedArray));
++ else
++ {
++ for (i=0; i<count; i++)
++ cbSelec(ih, id_hitem[i], 0);
++ }
++ }
++
++ iupArrayDestroy(markedArray);
++ }
++}
++
+ static gboolean gtkTreeButtonEvent(GtkWidget *treeview, GdkEventButton *evt, Ihandle* ih)
+ {
+ if (iupgtkButtonEvent(treeview, evt, ih) == TRUE)
+@@ -2097,6 +2176,18 @@ static gboolean gtkTreeButtonEvent(GtkWidget *treeview, GdkEventButton *evt, Iha
+ gtk_tree_path_free(path);
+ }
+ }
++ else if (evt->type == GDK_BUTTON_PRESS && evt->button == 1) /* left single press */
++ {
++ iupAttribSetInt(ih, "_IUPTREE_DRAG_X", (int)evt->x);
++ iupAttribSetInt(ih, "_IUPTREE_DRAG_Y", (int)evt->y);
++
++ if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && 
++ !(evt->state & GDK_SHIFT_MASK) && !(evt->state & GDK_CONTROL_MASK))
++ {
++ gtkTreeCallMultiUnSelectionCb(ih);
++ iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "1");
++ }
++ }
+ else if (evt->type == GDK_BUTTON_RELEASE && evt->button == 1) /* left single release */
+ {
+ if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && (evt->state & GDK_SHIFT_MASK))
+@@ -2109,16 +2200,7 @@ static gboolean gtkTreeButtonEvent(GtkWidget *treeview, GdkEventButton *evt, Iha
+ iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "2");
+ }
+ }
+- else if (evt->type == GDK_BUTTON_PRESS && evt->button == 1) /* left single press */
+- {
+- iupAttribSetInt(ih, "_IUPTREE_DRAG_X", (int)evt->x);
+- iupAttribSetInt(ih, "_IUPTREE_DRAG_Y", (int)evt->y);
+ 
+- if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && 
+- !(evt->state & GDK_SHIFT_MASK) && !(evt->state & GDK_CONTROL_MASK))
+- iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "1");
+- }
+- 
+ return FALSE;
+ }
+ 
+@@ -2159,29 +2241,14 @@ static void gtkTreeEnableDragDrop(Ihandle* ih)
+ { "GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_WIDGET, 0 }
+ };
+ 
+- if (iupAttribGetBoolean(ih, "AUTODRAGDROP"))
+- {
+- gtk_tree_view_enable_model_drag_source (GTK_TREE_VIEW(ih->handle),
+- GDK_BUTTON1_MASK,
+- row_targets,
+- G_N_ELEMENTS(row_targets),
+- GDK_ACTION_MOVE|GDK_ACTION_COPY);
+- gtk_tree_view_enable_model_drag_dest (GTK_TREE_VIEW(ih->handle),
+- row_targets,
+- G_N_ELEMENTS(row_targets),
+- GDK_ACTION_MOVE|GDK_ACTION_COPY);
+- }
+- else
+- {
+- gtk_drag_source_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY);
+- gtk_drag_dest_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY);
++ gtk_drag_source_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY);
++ gtk_drag_dest_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY);
+ 
+- g_signal_connect(G_OBJECT(ih->handle), "drag-begin", G_CALLBACK(gtkTreeDragBegin), ih);
+- g_signal_connect(G_OBJECT(ih->handle), "drag-motion", G_CALLBACK(gtkTreeDragMotion), ih);
+- g_signal_connect(G_OBJECT(ih->handle), "drag-leave", G_CALLBACK(gtkTreeDragLeave), NULL);
+- g_signal_connect(G_OBJECT(ih->handle), "drag-drop", G_CALLBACK(gtkTreeDragDrop), ih);
+- g_signal_connect(G_OBJECT(ih->handle), "drag-data-received", G_CALLBACK(gtkTreeDragDataReceived), ih);
+- }
++ g_signal_connect(G_OBJECT(ih->handle), "drag-begin", G_CALLBACK(gtkTreeDragBegin), ih);
++ g_signal_connect(G_OBJECT(ih->handle), "drag-motion", G_CALLBACK(gtkTreeDragMotion), ih);
++ g_signal_connect(G_OBJECT(ih->handle), "drag-leave", G_CALLBACK(gtkTreeDragLeave), NULL);
++ g_signal_connect(G_OBJECT(ih->handle), "drag-drop", G_CALLBACK(gtkTreeDragDrop), ih);
++ g_signal_connect(G_OBJECT(ih->handle), "drag-data-received", G_CALLBACK(gtkTreeDragDataReceived), ih);
+ }
+ 
+ /*****************************************************************************/
+@@ -2194,8 +2261,16 @@ static int gtkTreeMapMethod(Ihandle* ih)
+ GtkTreeSelection* selection;
+ GtkTreeViewColumn *column;
+ 
+- store = gtk_tree_store_new(9, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN,
+- G_TYPE_STRING, G_TYPE_INT, GDK_TYPE_COLOR, PANGO_TYPE_FONT_DESCRIPTION, G_TYPE_POINTER);
++ store = gtk_tree_store_new(IUPGTK_TREE_LAST_DATA, 
++ GDK_TYPE_PIXBUF, /* IUPGTK_TREE_IMAGE */
++ G_TYPE_BOOLEAN, /* IUPGTK_TREE_HAS_IMAGE */
++ GDK_TYPE_PIXBUF, /* IUPGTK_TREE_IMAGE_EXPANDED */
++ G_TYPE_BOOLEAN, /* IUPGTK_TREE_HAS_IMAGE_EXPANDED */
++ G_TYPE_STRING, /* IUPGTK_TREE_TITLE */
++ G_TYPE_INT, /* IUPGTK_TREE_KIND */
++ GDK_TYPE_COLOR, /* IUPGTK_TREE_COLOR */
++ PANGO_TYPE_FONT_DESCRIPTION, /* IUPGTK_TREE_FONT */
++ G_TYPE_BOOLEAN); /* IUPGTK_TREE_SELECT */
+ 
+ ih->handle = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
+ 
+@@ -2262,8 +2337,9 @@ static int gtkTreeMapMethod(Ihandle* ih)
+ gtk_scrolled_window_set_policy(scrolled_window, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ 
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));
+- 
+ gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
++ gtk_tree_selection_set_select_function(selection, (GtkTreeSelectionFunc)gtkTreeSelectionFunc, ih, NULL);
++
+ gtk_tree_view_set_reorderable(GTK_TREE_VIEW(ih->handle), FALSE);
+ 
+ /* callbacks */
+@@ -2279,6 +2355,7 @@ static int gtkTreeMapMethod(Ihandle* ih)
+ g_signal_connect(G_OBJECT(ih->handle), "show-help", G_CALLBACK(iupgtkShowHelp), ih);
+ g_signal_connect(G_OBJECT(ih->handle), "motion-notify-event",G_CALLBACK(iupgtkMotionNotifyEvent), ih);
+ 
++ g_signal_connect(G_OBJECT(ih->handle), "row-expanded", G_CALLBACK(gtkTreeRowExpanded), ih);
+ g_signal_connect(G_OBJECT(ih->handle), "test-expand-row", G_CALLBACK(gtkTreeTestExpandRow), ih);
+ g_signal_connect(G_OBJECT(ih->handle), "test-collapse-row", G_CALLBACK(gtkTreeTestCollapseRow), ih);
+ g_signal_connect(G_OBJECT(ih->handle), "row-activated", G_CALLBACK(gtkTreeRowActived), ih);
+@@ -2301,7 +2378,8 @@ static int gtkTreeMapMethod(Ihandle* ih)
+ ih->data->def_image_collapsed = iupImageGetImage("IMGCOLLAPSED", ih, 0);
+ ih->data->def_image_expanded = iupImageGetImage("IMGEXPANDED", ih, 0);
+ 
+- gtkTreeAddRootNode(ih);
++ if (iupAttribGetInt(ih, "ADDROOT"))
++ iupdrvTreeAddNode(ih, "-1", ITREE_BRANCH, "", 0);
+ 
+ /* configure for DRAG&DROP of files */
+ if (IupGetCallback(ih, "DROPFILES_CB"))
+@@ -2309,13 +2387,23 @@ static int gtkTreeMapMethod(Ihandle* ih)
+ 
+ IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)gtkTreeConvertXYToPos);
+ 
++ iupdrvTreeUpdateMarkMode(ih);
++
+ return IUP_NOERROR;
+ }
+ 
++static void gtkTreeUnMapMethod(Ihandle* ih)
++{
++ ih->data->node_count = 0;
++
++ iupdrvBaseUnMapMethod(ih);
++}
++
+ void iupdrvTreeInitClass(Iclass* ic)
+ {
+ /* Driver Dependent Class functions */
+ ic->Map = gtkTreeMapMethod;
++ ic->UnMap = gtkTreeUnMapMethod;
+ 
+ /* Visual */
+ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, gtkTreeSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_DEFAULT);
+@@ -2324,7 +2412,6 @@ void iupdrvTreeInitClass(Iclass* ic)
+ /* IupTree Attributes - GENERAL */
+ iupClassRegisterAttribute(ic, "EXPANDALL", NULL, gtkTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "INDENTATION", gtkTreeGetIndentationAttrib, gtkTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT);
+- iupClassRegisterAttribute(ic, "COUNT", gtkTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "DRAGDROP", NULL, iupgtkSetDragDropAttrib, NULL, NULL, IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, gtkTreeSetSpacingAttrib, NULL, NULL, IUPAF_NOT_MAPPED);
+ iupClassRegisterAttribute(ic, "TOPITEM", NULL, gtkTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+@@ -2345,7 +2432,6 @@ void iupdrvTreeInitClass(Iclass* ic)
+ iupClassRegisterAttributeId(ic, "COLOR", gtkTreeGetColorAttrib, gtkTreeSetColorAttrib, IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "NAME", gtkTreeGetTitleAttrib, gtkTreeSetTitleAttrib, IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "TITLE", gtkTreeGetTitleAttrib, gtkTreeSetTitleAttrib, IUPAF_NO_INHERIT);
+- iupClassRegisterAttributeId(ic, "USERDATA", gtkTreeGetUserDataAttrib, gtkTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
+ 
+ iupClassRegisterAttributeId(ic, "CHILDCOUNT", gtkTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "TITLEFONT", gtkTreeGetTitleFontAttrib, gtkTreeSetTitleFontAttrib, IUPAF_NO_INHERIT);
+@@ -2355,6 +2441,7 @@ void iupdrvTreeInitClass(Iclass* ic)
+ iupClassRegisterAttribute (ic, "MARK", NULL, gtkTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute (ic, "STARTING", NULL, gtkTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute (ic, "MARKSTART", NULL, gtkTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute (ic, "MARKEDNODES", gtkTreeGetMarkedNodesAttrib, gtkTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ 
+ iupClassRegisterAttribute (ic, "VALUE", gtkTreeGetValueAttrib, gtkTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ 
+@@ -2363,7 +2450,7 @@ void iupdrvTreeInitClass(Iclass* ic)
+ iupClassRegisterAttribute(ic, "RENAME", NULL, gtkTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "MOVENODE", NULL, gtkTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "COPYNODE", NULL, gtkTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+- iupClassRegisterAttributeId(ic, "FINDUSERDATA", gtkTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
+ 
+- iupClassRegisterAttribute (ic, "AUTODRAGDROP", NULL, NULL, NULL, NULL, IUPAF_DEFAULT);
++ /* IupTree Attributes - GTK Only */
++ iupClassRegisterAttribute (ic, "RUBBERBAND", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);
+ }
+diff --git a/iup/src/iup.c b/iup/src/iup.c
+index df4bf34..d103af5 100755
+--- a/iup/src/iup.c
++++ b/iup/src/iup.c
+@@ -36,8 +36,10 @@
+ * \subsection com File Comments (at start)
+ * - Check an existant file for example.
+ * 
+- * \subsection inc Include Defines
+- * - __IUPXXX_H (same file name, upper case, "__" preffix and replace "." by "_")
++ * \subsection def Defines
++ * - __IUPXXX_H (for include file, same file name, upper case, "__" preffix and replace "." by "_")
++ * - IUP_XXX (for enumerations)
++ * - iupXXX (for macros, complement with Function Names rules)
+ * 
+ * \subsection doc Documentation
+ * - In the header, using Doxygen commands.
+@@ -58,7 +60,7 @@
+ #include "iup.h"
+ 
+ /* This appears only here to avoid changing the iup.h header fo bug fixes */
+-#define IUP_VERSION_FIX " RC3"
++#define IUP_VERSION_FIX ""
+ #define IUP_VERSION_FIX_NUMBER 0
+ 
+ const char iup_ident[] = 
+diff --git a/iup/src/iup.def b/iup/src/iup.def
+index d0dcfbd..56e7225 100755
+--- a/iup/src/iup.def
++++ b/iup/src/iup.def
+@@ -27,6 +27,8 @@ IupGetFunction
+ IupGetGlobal
+ IupGetHandle
+ IupGetInt
++IupGetInt2
++IupGetIntInt
+ IupGetLanguage
+ IupGetName
+ IupHbox
+@@ -40,6 +42,7 @@ IupListDialog
+ IupLoad
+ IupLoadBuffer
+ IupLoopStep
++IupLoopStepWait
+ IupMainLoop
+ IupMap
+ IupMapFont
+@@ -68,6 +71,7 @@ IupShowXY
+ IupStoreAttribute
+ IupStoreGlobal
+ IupSubmenu
++IupSplit
+ IupText
+ IupToggle
+ IupUnMapFont
+@@ -135,6 +139,7 @@ IupTextConvertLinColToPos
+ IupTextConvertPosToLinCol
+ IupUpdateChildren
+ IupTreeSetAttribute 
++IupTreeSetAttributeHandle
+ IupTreeStoreAttribute
+ IupTreeGetAttribute 
+ IupTreeGetInt 
+@@ -175,8 +180,8 @@ iupdrvFontGetStringWidth
+ iupdrvFontGetMultiLineStringSize
+ iupdrvFontGetCharSize
+ iupdrvDrawFocusRect
+-iupdrvDisplayUpdate
+-iupdrvDisplayRedraw
++iupdrvPostRedraw
++iupdrvRedrawNow
+ iupdrvBaseUnMapMethod
+ iupdrvBaseSetZorderAttrib
+ iupdrvBaseSetTipVisibleAttrib
+@@ -351,3 +356,17 @@ iupArrayCreate
+ iupArrayCount
+ iupArrayAdd
+ iupSaveImageAsText
++iupDrawCreateCanvas
++iupDrawKillCanvas
++iupDrawFlush
++iupDrawGetSize
++iupDrawParentBackground
++iupDrawRectangle
++iupDrawLine
++iupDrawArc
++iupDrawPolygon
++iupDrawResetClip
++iupDrawSetClipRect
++iupDrawText
++iupDrawUpdateSize
++iupDrawImage
+diff --git a/iup/src/iup_attrib.c b/iup/src/iup_attrib.c
+index 2bbb80a..bf9576e 100755
+--- a/iup/src/iup_attrib.c
++++ b/iup/src/iup_attrib.c
+@@ -63,7 +63,7 @@ char* IupGetAttributes(Ihandle *ih)
+ name = iupTableFirst(ih->attrib);
+ while (name)
+ {
+- if (!iupAttribIsInternal(name))
++ if (!iupATTRIB_ISINTERNAL(name))
+ {
+ if (buffer[0] != 0)
+ strcat(buffer,",");
+@@ -115,6 +115,14 @@ void iupAttribUpdateFromParent(Ihandle* ih)
+ }
+ }
+ 
++static int iAttribIsInherit(Ihandle* ih, const char* name)
++{
++ int inherit;
++ char *def_value;
++ iupClassObjectGetAttributeInfo(ih, name, &def_value, &inherit);
++ return inherit;
++}
++
+ static void iAttribNotifyChildren(Ihandle *ih, const char* name, const char *value)
+ {
+ int inherit;
+@@ -123,17 +131,36 @@ static void iAttribNotifyChildren(Ihandle *ih, const char* name, const char *val
+ {
+ if (!iupTableGet(child->attrib, name))
+ {
+- /* set on the class */
+- iupClassObjectSetAttribute(child, name, value, &inherit);
++ /* set only if an inheritable attribute at the child */
++ if (iAttribIsInherit(child, name))
++ {
++ /* set on the class */
++ iupClassObjectSetAttribute(child, name, value, &inherit);
+ 
+- if (inherit) /* inherit can be different for the child */
+ iAttribNotifyChildren(child, name, value);
++ }
+ }
+ 
+ child = child->brother;
+ }
+ }
+ 
++void iupAttribUpdateChildren(Ihandle* ih)
++{
++ char *name = iupTableFirst(ih->attrib);
++ while (name)
++ {
++ if (!iupATTRIB_ISINTERNAL(name) && iAttribIsInherit(ih, name))
++ {
++ /* retrieve from the table */
++ char* value = iupTableGet(ih->attrib, name);
++ iAttribNotifyChildren(ih, name, value);
++ }
++
++ name = iupTableNext(ih->attrib);
++ }
++}
++
+ void iupAttribUpdate(Ihandle* ih)
+ {
+ char** name_array;
+@@ -159,7 +186,7 @@ void iupAttribUpdate(Ihandle* ih)
+ for (i = 0; i < count; i++)
+ {
+ name = name_array[i];
+- if (!iupAttribIsInternal(name))
++ if (!iupATTRIB_ISINTERNAL(name))
+ {
+ /* retrieve from the table */
+ value = iupTableGet(ih->attrib, name);
+@@ -196,7 +223,7 @@ void IupSetAttribute(Ihandle *ih, const char* name, const char *value)
+ if (!iupObjectCheck(ih))
+ return;
+ 
+- if (iupAttribIsInternal(name))
++ if (iupATTRIB_ISINTERNAL(name))
+ iupAttribSetStr(ih, name, value);
+ else
+ {
+@@ -225,7 +252,7 @@ void IupStoreAttribute(Ihandle *ih, const char* name, const char *value)
+ if (!iupObjectCheck(ih))
+ return;
+ 
+- if (iupAttribIsInternal(name))
++ if (iupATTRIB_ISINTERNAL(name))
+ iupAttribStoreStr(ih, name, value);
+ else
+ {
+@@ -257,7 +284,7 @@ char* IupGetAttribute(Ihandle *ih, const char* name)
+ if (!value)
+ value = iupAttribGet(ih, name);
+ 
+- if (!value && !iupAttribIsInternal(name))
++ if (!value && !iupATTRIB_ISINTERNAL(name))
+ {
+ if (inherit)
+ {
+@@ -346,6 +373,16 @@ void iupAttribSetHandleName(Ihandle *ih)
+ IupSetHandle(str_name, ih);
+ }
+ 
++char* iupAttribGetHandleName(Ihandle *ih)
++{
++ char str_name[100];
++ sprintf(str_name, "_IUP_NAME(%p)", ih);
++ if (IupGetHandle(str_name)==ih)
++ return iupStrGetMemoryCopy(str_name);
++ else
++ return NULL;
++}
++
+ void IupSetAttributeHandle(Ihandle *ih, const char* name, Ihandle *ih_named)
+ {
+ int inherit;
+@@ -426,7 +463,7 @@ void iupAttribSetInt(Ihandle *ih, const char* name, int num)
+ 
+ void iupAttribSetFloat(Ihandle *ih, const char* name, float num)
+ {
+- iupAttribSetStrf(ih, name, "%f", (double)num);
++ iupAttribSetStrf(ih, name, "%g", (double)num);
+ }
+ 
+ int iupAttribGetBoolean(Ihandle* ih, const char* name)
+@@ -479,7 +516,7 @@ char* iupAttribGetStr(Ihandle* ih, const char* name)
+ 
+ value = iupTableGet(ih->attrib, name);
+ 
+- if (!value && !iupAttribIsInternal(name))
++ if (!value && !iupATTRIB_ISINTERNAL(name))
+ {
+ int inherit;
+ char *def_value;
+@@ -555,6 +592,15 @@ static void iAttribCapture(char* env_buffer, char* dlm)
+ env_buffer[i-1]='\0'; /* discard delimiter */
+ }
+ 
++static void iAttribSkipComment(void)
++{
++ int c;
++ do
++ {
++ c = *env_str; ++env_str;
++ } while ((c > 0) && (c != '\n'));
++}
++
+ static int iAttribToken(char* env_buffer)
+ {
+ for (;;)
+@@ -565,6 +611,11 @@ static int iAttribToken(char* env_buffer)
+ case 0:
+ return IUPLEX_TK_END;
+ 
++ case '#': /* Skip comment */
++ case '%': /* Skip comment */
++ iAttribSkipComment();
++ continue;
++
+ case ' ': /* ignore whitespace */
+ case '\t':
+ case '\n':
+@@ -609,7 +660,7 @@ static void iAttribParse(Ihandle *ih, const char* str)
+ {
+ switch (iAttribToken(env_buffer))
+ {
+- case IUPLEX_TK_END: /* procedimento igual ao IUPLEX_TK_COMMA */
++ case IUPLEX_TK_END: /* same as IUPLEX_TK_COMMA */
+ end = 1;
+ case IUPLEX_TK_COMMA:
+ if (name)
+diff --git a/iup/src/iup_attrib.h b/iup/src/iup_attrib.h
+index 993dd3c..8593d6e 100755
+--- a/iup/src/iup_attrib.h
++++ b/iup/src/iup_attrib.h
+@@ -28,7 +28,7 @@ extern "C" {
+ 
+ /** Returns true if the attribute name if in the internal format "_IUP...".
+ * \ingroup attrib */
+-#define iupAttribIsInternal(_name) ((_name[0] == '_' && _name[1] == 'I' && _name[2] == 'U' && _name[3] == 'P')? 1: 0)
++#define iupATTRIB_ISINTERNAL(_name) ((_name[0] == '_' && _name[1] == 'I' && _name[2] == 'U' && _name[3] == 'P')? 1: 0)
+ 
+ /** Returns true if the attribute name is a known pointer.
+ * \ingroup attrib */
+@@ -102,16 +102,23 @@ float iupAttribGetFloat(Ihandle* ih, const char* name);
+ * \ingroup attrib */
+ void iupAttribSetHandleName(Ihandle *ih);
+ 
++/** Returns the internal name if set.
++ * \ingroup attrib */
++char* iupAttribGetHandleName(Ihandle *ih);
++
+ 
+ /* For all attributes in the evironment, call the class SetAttribute only.
+- * Called only after the element is mapped. */
++ * Called only after the element is mapped, but before the children are mapped. */
+ void iupAttribUpdate(Ihandle* ih); 
+ 
+ /* For all registered inherited attributes, checks the parent tree and 
+ * call the class SetAttribute if the attribute is defined.
+- * Called only after the element is mapped. */
++ * Called only after the element is mapped, but before the children are mapped. */
+ void iupAttribUpdateFromParent(Ihandle* ih);
+ 
++/* For all attributes in the evironment, call the class SetAttribute only for the children.
++ * Called only after the element is mapped, and after the children are mapped. */
++void iupAttribUpdateChildren(Ihandle* ih);
+ 
+ 
+ /* Other functions declared in <iup.h> and implemented here. 
+diff --git a/iup/src/iup_box.c b/iup/src/iup_box.c
+index 54e56d9..111cab4 100755
+--- a/iup/src/iup_box.c
++++ b/iup/src/iup_box.c
+@@ -172,9 +172,9 @@ static int iBoxSetCMarginAttrib(Ihandle* ih, const char* value)
+ iupdrvFontGetCharSize(ih, &charwidth, &charheight);
+ iupStrToIntInt(value, &cmargin_x, &cmargin_y, 'x');
+ if (cmargin_x!=-1)
+- ih->data->margin_x = iupHEIGHT2RASTER(cmargin_x, charheight);
++ ih->data->margin_x = iupWIDTH2RASTER(cmargin_x, charwidth);
+ if (cmargin_y!=-1)
+- ih->data->margin_x = iupWIDTH2RASTER(cmargin_y, charwidth);
++ ih->data->margin_y = iupHEIGHT2RASTER(cmargin_y, charheight);
+ return 0;
+ }
+ 
+@@ -227,8 +227,12 @@ Iclass* iupBoxClassBase(void)
+ /* boxes only */
+ iupClassRegisterAttribute(ic, "GAP", iBoxGetGapAttrib, iBoxSetGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED);
+ iupClassRegisterAttribute(ic, "CGAP", iBoxGetCGapAttrib, iBoxSetCGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED);
++ iupClassRegisterAttribute(ic, "NGAP", iBoxGetGapAttrib, iBoxSetGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "NCGAP", iBoxGetCGapAttrib, iBoxSetCGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "MARGIN", iBoxGetMarginAttrib, iBoxSetMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);
+ iupClassRegisterAttribute(ic, "CMARGIN", iBoxGetCMarginAttrib, iBoxSetCMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);
++ iupClassRegisterAttribute(ic, "NMARGIN", iBoxGetMarginAttrib, iBoxSetMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "NCMARGIN", iBoxGetCMarginAttrib, iBoxSetCMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ 
+ iupClassRegisterAttribute(ic, "EXPANDCHILDREN", iBoxGetExpandChildrenAttrib, iBoxSetExpandChildrenAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "HOMOGENEOUS", iBoxGetHomogeneousAttrib, iBoxSetHomogeneousAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+diff --git a/iup/src/iup_button.c b/iup/src/iup_button.c
+index 7719663..56befe2 100755
+--- a/iup/src/iup_button.c
++++ b/iup/src/iup_button.c
+@@ -100,8 +100,9 @@ static void iButtonComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *ex
+ char* value = iupAttribGet(ih, "IMAGE");
+ if (value)
+ {
++ char* title = iupAttribGet(ih, "TITLE");
+ type = IUP_BUTTON_IMAGE;
+- if (iupAttribGet(ih, "TITLE"))
++ if (title && *title!=0)
+ type |= IUP_BUTTON_TEXT;
+ }
+ else
+diff --git a/iup/src/iup_canvas.c b/iup/src/iup_canvas.c
+index 5eda988..46fefd9 100755
+--- a/iup/src/iup_canvas.c
++++ b/iup/src/iup_canvas.c
+@@ -55,14 +55,14 @@ void iupCanvasCalcScrollRealPos(double min, double max, double *pos,
+ char* iupCanvasGetPosXAttrib(Ihandle* ih)
+ {
+ char* str = iupStrGetMemory(20);
+- sprintf(str, "%f", ih->data->posx);
++ sprintf(str, "%g", ih->data->posx);
+ return str;
+ }
+ 
+ char* iupCanvasGetPosYAttrib(Ihandle* ih)
+ {
+ char* str = iupStrGetMemory(20);
+- sprintf(str, "%f", ih->data->posy);
++ sprintf(str, "%g", ih->data->posy);
+ return str;
+ }
+ 
+diff --git a/iup/src/iup_classattrib.c b/iup/src/iup_classattrib.c
+index df8f873..3ac780c 100755
+--- a/iup/src/iup_classattrib.c
++++ b/iup/src/iup_classattrib.c
+@@ -55,7 +55,7 @@ static const char* iClassFindId(const char* name)
+ {
+ if (*name >= '0' && *name <= '9')
+ return name;
+- if (*name == '*' || *name == ':')
++ if (*name == '*' || *name == ':' || *name == '-')
+ return name;
+ 
+ name++;
+@@ -94,7 +94,6 @@ int iupClassObjectSetAttribute(Ihandle* ih, const char* name, const char * value
+ const char* name_id = iClassFindId(name);
+ if (name_id)
+ {
+- IattribFunc* afunc;
+ const char* partial_name = iClassCutNameId(name, name_id);
+ if (!partial_name)
+ partial_name = "IDVALUE"; /* pure numbers are used as attributes in IupList and IupMatrix, 
+@@ -474,8 +473,12 @@ void iupClassObjectEnsureDefaultAttributes(Ihandle* ih)
+ (afunc->call_global_default && iupGlobalDefaultColorChanged(afunc->default_value)))
+ {
+ if ((!ih->handle && (afunc->flags & IUPAF_NOT_MAPPED)) ||
+- (ih->handle && !(afunc->flags & IUPAF_NOT_MAPPED) && !iupAttribGet(ih, name)))
+- afunc->set(ih, iClassGetDefaultValue(afunc));
++ (ih->handle && !(afunc->flags & IUPAF_NOT_MAPPED)))
++ {
++ char* value = iupAttribGet(ih, name);
++ if (!value) /* if set will be updated later */
++ afunc->set(ih, iClassGetDefaultValue(afunc));
++ }
+ }
+ }
+ 
+diff --git a/iup/src/iup_classbase.c b/iup/src/iup_classbase.c
+index 9cb9e63..03a98d1 100755
+--- a/iup/src/iup_classbase.c
++++ b/iup/src/iup_classbase.c
+@@ -164,8 +164,7 @@ static char* iBaseGetPositionAttrib(Ihandle* ih)
+ 
+ static int iBaseSetPositionAttrib(Ihandle* ih, const char* value)
+ {
+- if (ih->is_floating)
+- iupStrToIntInt(value, &ih->x, &ih->y, ',');
++ iupStrToIntInt(value, &ih->x, &ih->y, ',');
+ return 0;
+ }
+ 
+@@ -211,7 +210,7 @@ char* iupBaseGetVisibleAttrib(Ihandle* ih)
+ int iupBaseSetVisibleAttrib(Ihandle* ih, const char* value)
+ {
+ iupdrvSetVisible(ih, iupStrBoolean(value));
+- return 0;
++ return 1; /* must be 1 to mark when set at the element */
+ }
+ 
+ char* iupBaseNativeParentGetBgColorAttrib(Ihandle* ih)
+@@ -410,15 +409,19 @@ void iupBaseRegisterCommonAttrib(Iclass* ic)
+ iupClassRegisterAttribute(ic, "FLOATING", iBaseGetFloatingAttrib, iBaseSetFloatingAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "EXPAND", iBaseGetExpandAttrib, iBaseSetExpandAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "NORMALIZERGROUP", NULL, iBaseSetNormalizerGroupAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "EXPANDWEIGTH", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ 
+ /* make sure everyone has the correct default value */
+- iupClassRegisterAttribute(ic, "VISIBLE", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT);
+ iupClassRegisterAttribute(ic, "ACTIVE", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT);
+ if (ic->is_interactive)
+ iupClassRegisterAttribute(ic, "CANFOCUS", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);
+ else
+ iupClassRegisterAttribute(ic, "CANFOCUS", NULL, NULL, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NO_INHERIT);
+ 
++ /* if not native container, must set at children,
++ native container will automatically hide its children. */
++ iupClassRegisterAttribute(ic, "VISIBLE", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT); /* let the attribute to be propagated to children */
++
+ iupClassRegisterAttribute(ic, "SIZE", iupBaseGetSizeAttrib, iupBaseSetSizeAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "RASTERSIZE", iupBaseGetRasterSizeAttrib, iupBaseSetRasterSizeAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "CHARSIZE", iupBaseGetCharSizeAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+@@ -439,7 +442,7 @@ void iupBaseRegisterCommonAttrib(Iclass* ic)
+ 
+ void iupBaseRegisterVisualAttrib(Iclass* ic)
+ {
+- iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iupBaseSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT); /* VISIBLE inheritance comes from the native system */
++ iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iupBaseSetVisibleAttrib, "YES", "NO", IUPAF_DEFAULT);
+ iupClassRegisterAttribute(ic, "ACTIVE", iupBaseGetActiveAttrib, iupBaseSetActiveAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT);
+ 
+ iupClassRegisterAttribute(ic, "ZORDER", NULL, iupdrvBaseSetZorderAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+diff --git a/iup/src/iup_dialog.c b/iup/src/iup_dialog.c
+index d70e12c..1aaf095 100755
+--- a/iup/src/iup_dialog.c
++++ b/iup/src/iup_dialog.c
+@@ -220,11 +220,19 @@ static void iDialogDestroyMethod(Ihandle* ih)
+ iupDlgListRemove(ih);
+ }
+ 
++static int iDialogSetMenuAttrib(Ihandle* ih, const char* value);
++
+ static void iDialogComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *expand)
+ {
+ int decorwidth, decorheight;
+ Ihandle* child = ih->firstchild;
+ 
++ /* if does not have a menu, but the attribute is defined,
++ try to update the menu before retrieving the decoration. */
++ char* value = iupAttribGet(ih, "MENU");
++ if (!ih->data->menu && value)
++ iDialogSetMenuAttrib(ih, value);
++
+ iupDialogGetDecorSize(ih, &decorwidth, &decorheight);
+ *w = decorwidth;
+ *h = decorheight;
+@@ -278,20 +286,22 @@ static void iDialogAfterShow(Ihandle* ih)
+ {
+ Ihandle* old_focus;
+ IFni show_cb;
++ int show_state;
+ 
+ /* process all pending messages */
+ IupFlush();
+ 
+ old_focus = IupGetFocus();
++ show_state = ih->data->show_state;
+ 
+ show_cb = (IFni)IupGetCallback(ih, "SHOW_CB");
+- if (show_cb && show_cb(ih, ih->data->show_state) == IUP_CLOSE)
++ if (show_cb && show_cb(ih, show_state) == IUP_CLOSE)
+ {
+ IupExitLoop();
+ return;
+ }
+ 
+- if (ih->data->show_state == IUP_SHOW)
++ if (show_state == IUP_SHOW)
+ {
+ if (show_cb)
+ IupFlush(); /* again to update focus */
+@@ -718,7 +728,8 @@ Iclass* iupDialogGetClass(void)
+ iupBaseRegisterVisualAttrib(ic);
+ 
+ /* Overwrite Visual */
+- iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iDialogSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NO_INHERIT); /* the only case where VISIBLE default is NO */
++ /* the only case where VISIBLE default is NO, and must not be propagated to the dialog children */
++ iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iDialogSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NO_INHERIT); 
+ 
+ /* IupDialog only */
+ iupClassRegisterAttribute(ic, "MENU", NULL, iDialogSetMenuAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+diff --git a/iup/src/iup_drv.h b/iup/src/iup_drv.h
+index 5cdb8e7..1071347 100755
+--- a/iup/src/iup_drv.h
++++ b/iup/src/iup_drv.h
+@@ -60,11 +60,11 @@ void iupdrvSetActive(Ihandle* ih, int enable);
+ 
+ /** Post a redraw of a control.
+ * \ingroup drv */
+-void iupdrvDisplayUpdate(Ihandle *ih);
++void iupdrvPostRedraw(Ihandle *ih);
+ 
+ /** Force a redraw of a control.
+ * \ingroup drv */
+-void iupdrvDisplayRedraw(Ihandle *ih);
++void iupdrvRedrawNow(Ihandle *ih);
+ 
+ /** Reparent the native control.
+ * \ingroup drv */
+diff --git a/iup/src/iup_focus.c b/iup/src/iup_focus.c
+index be54b75..fc0579c 100755
+--- a/iup/src/iup_focus.c
++++ b/iup/src/iup_focus.c
+@@ -220,15 +220,25 @@ void iupFocusPrevious(Ihandle *ih)
+ /* local variables */
+ static Ihandle* iup_current_focus = NULL;
+ 
++Ihandle* IupGetFocus(void)
++{
++ return iup_current_focus;
++}
++
++void iupSetCurrentFocus(Ihandle *ih)
++{
++ iup_current_focus = ih;
++}
++
+ Ihandle *IupSetFocus(Ihandle *ih)
+ {
+- Ihandle* old_focus = iup_current_focus;
++ Ihandle* old_focus = IupGetFocus();
+ 
+ iupASSERT(iupObjectCheck(ih));
+ if (!iupObjectCheck(ih))
+ return old_focus;
+ 
+- /* iup_current_focus is NOT set here, 
++ /* Current focus is NOT set here, 
+ only in the iupCallGetFocusCb */
+ 
+ if (iupFocusCanAccept(ih)) 
+@@ -237,16 +247,11 @@ Ihandle *IupSetFocus(Ihandle *ih)
+ return old_focus;
+ }
+ 
+-Ihandle *IupGetFocus(void)
+-{
+- return iup_current_focus;
+-}
+-
+ void iupCallGetFocusCb(Ihandle *ih)
+ {
+ Icallback cb;
+ 
+- if (ih == iup_current_focus) /* avoid duplicate messages */
++ if (ih == IupGetFocus()) /* avoid duplicate messages */
+ return;
+ 
+ cb = (Icallback)IupGetCallback(ih, "GETFOCUS_CB");
+@@ -258,14 +263,14 @@ void iupCallGetFocusCb(Ihandle *ih)
+ if (cb2) cb2(ih, 1);
+ }
+ 
+- iup_current_focus = ih;
++ iupSetCurrentFocus(ih);
+ }
+ 
+ void iupCallKillFocusCb(Ihandle *ih)
+ {
+ Icallback cb;
+ 
+- if (ih != iup_current_focus) /* avoid duplicate messages */
++ if (ih != IupGetFocus()) /* avoid duplicate messages */
+ return;
+ 
+ cb = IupGetCallback(ih, "KILLFOCUS_CB");
+@@ -277,5 +282,5 @@ void iupCallKillFocusCb(Ihandle *ih)
+ if (cb2) cb2(ih, 0);
+ }
+ 
+- iup_current_focus = NULL;
++ iupSetCurrentFocus(NULL);
+ }
+diff --git a/iup/src/iup_focus.h b/iup/src/iup_focus.h
+index 239e233..9fb4e58 100755
+--- a/iup/src/iup_focus.h
++++ b/iup/src/iup_focus.h
+@@ -39,6 +39,7 @@ Ihandle* iupFocusNextInteractive(Ihandle *ih);
+ void iupFocusNext(Ihandle *ih);
+ void iupFocusPrevious(Ihandle *ih);
+ 
++void iupSetCurrentFocus(Ihandle *ih);
+ 
+ /* Other functions declared in <iup.h> and implemented here. 
+ IupPreviousField
+diff --git a/iup/src/iup_getparam.c b/iup/src/iup_getparam.c
+index 1418aa5..7fd6a94 100755
+--- a/iup/src/iup_getparam.c
++++ b/iup/src/iup_getparam.c
+@@ -45,6 +45,14 @@ static int iParamButtonCancel_CB(Ihandle* self)
+ return IUP_CLOSE;
+ }
+ 
++static int iParamButtonHelp_CB(Ihandle* self)
++{
++ Ihandle* dlg = IupGetDialog(self);
++ Iparamcb cb = (Iparamcb)IupGetCallback(dlg, "PARAM_CB");
++ if (cb) cb(dlg, -4, (void*)iupAttribGet(dlg, "USER_DATA"));
++ return IUP_DEFAULT;
++}
++
+ static int iParamToggleAction_CB(Ihandle *self, int v)
+ {
+ Ihandle* param = (Ihandle*)iupAttribGetInherit(self, "_IUPGP_PARAM");
+@@ -288,7 +296,7 @@ static int iParamColorButton_CB(Ihandle *self, int button, int pressed)
+ 
+ IupPopup(dlg, IUP_CENTER, IUP_CENTER);
+ 
+- if (IupGetInt(dlg, "STATUS") != -1)
++ if (IupGetInt(dlg, "STATUS")==1)
+ {
+ char* value = IupGetAttribute(dlg, "VALUE");
+ IupSetAttribute(textbox, "VALUE", value);
+@@ -381,11 +389,13 @@ static int iParamSpinInt_CB(Ihandle *self, int pos)
+ static Ihandle* iParamCreateBox(Ihandle* param)
+ {
+ Ihandle *box, *ctrl = NULL, *label;
+- char *type;
++ char *type = iupAttribGet(param, "TYPE");
++
++ if (iupStrEqual(type, "BUTTONNAMES"))
++ return NULL;
+ 
+ label = IupLabel(iupAttribGet(param, "TITLE"));
+ 
+- type = iupAttribGet(param, "TYPE");
+ if (iupStrEqual(type, "SEPARATOR"))
+ {
+ box = IupHbox(label, NULL);
+@@ -563,7 +573,7 @@ static Ihandle* iParamCreateBox(Ihandle* param)
+ float step = iupAttribGetFloat(param, "STEP");
+ float val = iupAttribGetFloat(param, "VALUE");
+ if (step == 0) step = (max-min)/20.0f;
+- IupSetfAttribute(ctrl, "MASKFLOAT", "%f:%f", (double)min, (double)max);
++ IupSetfAttribute(ctrl, "MASKFLOAT", "%g:%g", (double)min, (double)max);
+ 
+ /* here spin is always [0-spinmax] converted to [min-max] */
+ 
+@@ -584,7 +594,7 @@ static Ihandle* iParamCreateBox(Ihandle* param)
+ if (min == 0)
+ IupSetAttribute(ctrl, "MASK", IUP_MASK_UFLOAT);
+ else
+- IupSetfAttribute(ctrl, "MASKFLOAT", "%f:%f", (double)min, (double)1.0e10);
++ IupSetfAttribute(ctrl, "MASKFLOAT", "%g:%g", (double)min, (double)1.0e10);
+ IupAppend(box, ctrl);
+ }
+ else
+@@ -620,6 +630,7 @@ static Ihandle* iParamCreateBox(Ihandle* param)
+ }
+ IupSetfAttribute(ctrl, "SPINMAX", "%d", max);
+ IupSetfAttribute(ctrl, "SPINMIN", "%d", min);
++ IupSetfAttribute(ctrl, "MASKINT", "%d:%d", min, max);
+ }
+ else if (iupAttribGetInt(param, "PARTIAL"))
+ {
+@@ -696,7 +707,7 @@ static Ihandle* iParamCreateBox(Ihandle* param)
+ 
+ static Ihandle* IupParamDlgP(Ihandle** params)
+ {
+- Ihandle *dlg, *button_ok, *button_cancel, 
++ Ihandle *dlg, *button_ok, *button_cancel, *button_help=NULL, 
+ *dlg_box, *button_box, *param_box;
+ int i, lbl_width, p, expand;
+ 
+@@ -713,7 +724,23 @@ static Ihandle* IupParamDlgP(Ihandle** params)
+ i = 0; expand = 0;
+ while (params[i] != NULL)
+ {
+- IupAppend(param_box, iParamCreateBox(params[i]));
++ Ihandle* box = iParamCreateBox(params[i]);
++ if (box)
++ IupAppend(param_box, box);
++ else /* buttonnames */
++ {
++ char* value = iupAttribGet(params[i], "_IUPGP_OK");
++ if (value && *value) IupSetAttribute(button_ok, "TITLE", value);
++ value = iupAttribGet(params[i], "_IUPGP_CANCEL");
++ if (value && *value) IupSetAttribute(button_cancel, "TITLE", value);
++ value = iupAttribGet(params[i], "_IUPGP_HELP");
++ if (value && *value) 
++ {
++ button_help = IupButton(value, NULL);
++ IupSetAttribute(button_help, "PADDING", "20x0");
++ IupSetCallback(button_help, "ACTION", (Icallback)iParamButtonHelp_CB);
++ }
++ }
+ 
+ if (IupGetInt(params[i], "EXPAND"))
+ expand = 1;
+@@ -725,6 +752,7 @@ static Ihandle* IupParamDlgP(Ihandle** params)
+ IupFill(),
+ button_ok,
+ button_cancel,
++ button_help,
+ NULL);
+ IupSetAttribute(button_box,"MARGIN","0x0");
+ IupSetAttribute(button_box, "NORMALIZESIZE", "HORIZONTAL");
+@@ -926,6 +954,23 @@ static void iParamSetFileOptions(char* extra, Ihandle* param)
+ iupAttribStoreStr(param, "_IUPGP_NOOVERWRITEPROMPT", nooverwriteprompt);
+ }
+ 
++static void iParamSetButtonNames(char* extra, Ihandle* param)
++{
++ char *ok, *cancel, *help;
++ int count;
++
++ if (!extra)
++ return;
++
++ ok = iParamGetNextStrItem(extra, ',', &count); extra += count;
++ cancel = iParamGetNextStrItem(extra, ',', &count); extra += count;
++ help = iParamGetNextStrItem(extra, ',', &count); extra += count;
++
++ iupAttribStoreStr(param, "_IUPGP_OK", ok);
++ iupAttribStoreStr(param, "_IUPGP_CANCEL", cancel);
++ iupAttribStoreStr(param, "_IUPGP_HELP", help);
++}
++
+ static void iParamSetListItems(char* extra, Ihandle* param)
+ {
+ int d = 1, count;
+@@ -1082,6 +1127,12 @@ static Ihandle *IupParamf(const char* format, int *line_size)
+ iupAttribSetStr(param, "TYPE", "SEPARATOR");
+ iupAttribSetStr(param, "DATA_TYPE", "-1"); /* NONE */
+ break;
++ case 'u':
++ iupAttribSetStr(param, "TYPE", "BUTTONNAMES");
++ iupAttribSetStr(param, "DATA_TYPE", "-1"); /* NONE */
++ extra = iParamGetStrExtra(line_ptr, '[', ']', &count); line_ptr += count;
++ iParamSetButtonNames(extra, param);
++ break;
+ default:
+ return NULL;
+ }
+@@ -1099,7 +1150,7 @@ static Ihandle *IupParamf(const char* format, int *line_size)
+ 
+ int iupGetParamCount(const char *format, int *param_extra)
+ {
+- int param_count = 0, sep = 0;
++ int param_count = 0, extra = 0;
+ const char* s = format;
+ 
+ *param_extra = 0;
+@@ -1107,14 +1158,20 @@ int iupGetParamCount(const char *format, int *param_extra)
+ {
+ if (*s == '%' && *(s+1) == 't') /* do not count separator lines */
+ {
+- sep = 1;
++ extra = 1;
++ (*param_extra)++;
++ }
++
++ if (*s == '%' && *(s+1) == 'u') /* do not count button names lines */
++ {
++ extra = 1;
+ (*param_extra)++;
+ }
+ 
+ if (*s == '\n')
+ {
+- if (sep)
+- sep = 0;
++ if (extra)
++ extra = 0;
+ else
+ param_count++;
+ }
+@@ -1154,21 +1211,21 @@ int IupGetParamv(const char* title, Iparamcb action, void* user_data, const char
+ return 0;
+ 
+ data_type = IupGetInt(params[i], "DATA_TYPE");
+- if (data_type == 1)
+- {
+- int *data_int = (int*)(param_data[p]);
+- if (!data_int) return 0;
+- iupAttribSetStrf(params[i], "VALUE", "%d", *data_int);
+- p++;
+- }
+- else if (data_type == 2)
++ if (data_type == 2) /* float */
+ {
+ float *data_float = (float*)(param_data[p]);
+ if (!data_float) return 0;
+ iupAttribSetStrf(params[i], "VALUE", "%g", *data_float);
+ p++;
+ }
+- else if (data_type == 0)
++ else if (data_type == 1) /* integer */
++ {
++ int *data_int = (int*)(param_data[p]);
++ if (!data_int) return 0;
++ iupAttribSetStrf(params[i], "VALUE", "%d", *data_int);
++ p++;
++ }
++ else if (data_type == 0) /* string */
+ {
+ char *data_str = (char*)(param_data[p]);
+ if (!data_str) return 0;
+diff --git a/iup/src/iup_globalattrib.c b/iup/src/iup_globalattrib.c
+index 00586fb..d1a2584 100755
+--- a/iup/src/iup_globalattrib.c
++++ b/iup/src/iup_globalattrib.c
+@@ -129,12 +129,14 @@ int iupGlobalIsPointer(const char* name)
+ static struct {
+ const char *name;
+ } ptr_table[] = {
+-#ifdef WIN32
++#ifndef GTK_MAC
++ #ifdef WIN32
+ {"HINSTANCE"},
+-#else
++ #else
+ {"XDISPLAY"},
+ {"XSCREEN"},
+ {"APPSHELL"},
++ #endif
+ #endif
+ };
+ #define PTR_TABLE_SIZE ((sizeof ptr_table)/(sizeof ptr_table[0]))
+diff --git a/iup/src/iup_hbox.c b/iup/src/iup_hbox.c
+index e790636..a8a93a3 100755
+--- a/iup/src/iup_hbox.c
++++ b/iup/src/iup_hbox.c
+@@ -213,6 +213,13 @@ static void iHboxSetChildrenCurrentSizeMethod(Ihandle* ih, int shrink)
+ else
+ {
+ int empty = (child->expand & IUP_EXPAND_W1)? empty_w1: ((child->expand & IUP_EXPAND_W0)? empty_w0: 0);
++ char* weigth_str = iupAttribGet(child, "EXPANDWEIGTH");
++ if (weigth_str)
++ {
++ float weigth; 
++ if (iupStrToFloat(weigth_str, &weigth))
++ empty = iupROUND(empty * weigth);
++ }
+ iupBaseSetCurrentSize(child, child->naturalwidth+empty, client_height, shrink);
+ }
+ 
+diff --git a/iup/src/iup_key.h b/iup/src/iup_key.h
+index 37d6c9d..9b30bc4 100755
+--- a/iup/src/iup_key.h
++++ b/iup/src/iup_key.h
+@@ -51,16 +51,16 @@ void iupKeyInit(void);
+ 
+ #define IUPKEY_STATUS_SIZE 11 /* 10 chars + null */
+ #define IUPKEY_STATUS_INIT " " /* 10 spaces */
+-#define iupKEYSETSHIFT(_s) (_s[0]='S')
+-#define iupKEYSETCONTROL(_s) (_s[1]='C')
+-#define iupKEYSETBUTTON1(_s) (_s[2]='1')
+-#define iupKEYSETBUTTON2(_s) (_s[3]='2')
+-#define iupKEYSETBUTTON3(_s) (_s[4]='3')
+-#define iupKEYSETDOUBLE(_s) (_s[5]='D')
+-#define iupKEYSETALT(_s) (_s[6]='A')
+-#define iupKEYSETSYS(_s) (_s[7]='Y')
+-#define iupKEYSETBUTTON4(_s) (_s[8]='4')
+-#define iupKEYSETBUTTON5(_s) (_s[9]='5')
++#define iupKEY_SETSHIFT(_s) (_s[0]='S')
++#define iupKEY_SETCONTROL(_s) (_s[1]='C')
++#define iupKEY_SETBUTTON1(_s) (_s[2]='1')
++#define iupKEY_SETBUTTON2(_s) (_s[3]='2')
++#define iupKEY_SETBUTTON3(_s) (_s[4]='3')
++#define iupKEY_SETDOUBLE(_s) (_s[5]='D')
++#define iupKEY_SETALT(_s) (_s[6]='A')
++#define iupKEY_SETSYS(_s) (_s[7]='Y')
++#define iupKEY_SETBUTTON4(_s) (_s[8]='4')
++#define iupKEY_SETBUTTON5(_s) (_s[9]='5')
+ 
+ 
+ #ifdef __cplusplus
+diff --git a/iup/src/iup_layout.c b/iup/src/iup_layout.c
+index b96293c..0ccd496 100755
+--- a/iup/src/iup_layout.c
++++ b/iup/src/iup_layout.c
+@@ -43,7 +43,7 @@ static void iLayoutDisplayUpdateChildren(Ihandle *ih)
+ iLayoutDisplayUpdateChildren(child);
+ 
+ if (child->handle && child->iclass->nativetype != IUP_TYPEVOID)
+- iupdrvDisplayUpdate(child);
++ iupdrvPostRedraw(child);
+ }
+ }
+ 
+@@ -54,7 +54,7 @@ void IupUpdate(Ihandle* ih)
+ return;
+ 
+ if (ih->handle && ih->iclass->nativetype != IUP_TYPEVOID)
+- iupdrvDisplayUpdate(ih);
++ iupdrvPostRedraw(ih);
+ }
+ 
+ void IupUpdateChildren(Ihandle* ih)
+@@ -74,7 +74,7 @@ static void iLayoutDisplayRedrawChildren(Ihandle *ih)
+ iLayoutDisplayRedrawChildren(child);
+ 
+ if (child->handle && child->iclass->nativetype != IUP_TYPEVOID)
+- iupdrvDisplayRedraw(child);
++ iupdrvRedrawNow(child);
+ }
+ }
+ 
+@@ -85,7 +85,7 @@ void IupRedraw(Ihandle* ih, int children)
+ return;
+ 
+ if (ih->handle && ih->iclass->nativetype != IUP_TYPEVOID)
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ 
+ if (children)
+ iLayoutDisplayRedrawChildren(ih);
+@@ -136,7 +136,7 @@ void iupLayoutCompute(Ihandle* ih)
+ iupBaseSetPosition(ih, 0, 0);
+ }
+ 
+-static void iLayoutSetMinMaxSize(Ihandle* ih, int *w, int *h)
++void iupLayoutSetMinMaxSize(Ihandle* ih, int *w, int *h)
+ {
+ if (ih->has_minsize)
+ {
+@@ -163,7 +163,8 @@ void iupBaseComputeNaturalSize(Ihandle* ih)
+ ih->naturalwidth = ih->userwidth;
+ ih->naturalheight = ih->userheight;
+ 
+- if (ih->iclass->childtype!=IUP_CHILDNONE || ih->iclass->nativetype == IUP_TYPEDIALOG)
++ if (ih->iclass->childtype!=IUP_CHILDNONE || 
++ ih->iclass->nativetype == IUP_TYPEDIALOG) /* pre-defined dialogs can restrict the number of children */
+ {
+ int w=0, h=0, children_expand;
+ 
+@@ -190,7 +191,7 @@ void iupBaseComputeNaturalSize(Ihandle* ih)
+ ih->naturalheight = iupMAX(ih->naturalheight, h);
+ 
+ /* crop the natural size */
+- iLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight));
++ iupLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight));
+ }
+ }
+ else 
+@@ -198,15 +199,15 @@ void iupBaseComputeNaturalSize(Ihandle* ih)
+ /* for non-container only compute if user size is not defined */
+ if (ih->naturalwidth <= 0 || ih->naturalheight <= 0)
+ {
+- int w=0, h=0;
+- iupClassObjectComputeNaturalSize(ih, &w, &h, NULL);
++ int w=0, h=0, children_expand;
++ iupClassObjectComputeNaturalSize(ih, &w, &h, &children_expand);
+ 
+ if (ih->naturalwidth <= 0) ih->naturalwidth = w;
+ if (ih->naturalheight <= 0) ih->naturalheight = h;
+ }
+ 
+ /* crop the natural size */
+- iLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight));
++ iupLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight));
+ }
+ }
+ 
+@@ -259,7 +260,7 @@ void iupBaseSetCurrentSize(Ihandle* ih, int w, int h, int shrink)
+ 
+ /* crop the current size if expanded */
+ if (ih->expand & IUP_EXPAND_WIDTH || ih->expand & IUP_EXPAND_HEIGHT)
+- iLayoutSetMinMaxSize(ih, &(ih->currentwidth), &(ih->currentheight));
++ iupLayoutSetMinMaxSize(ih, &(ih->currentwidth), &(ih->currentheight));
+ }
+ }
+ 
+diff --git a/iup/src/iup_layout.h b/iup/src/iup_layout.h
+index a2a0c29..775e5a2 100755
+--- a/iup/src/iup_layout.h
++++ b/iup/src/iup_layout.h
+@@ -16,6 +16,8 @@ extern "C" {
+ void iupLayoutCompute(Ihandle* ih); /* can be called before map */
+ void iupLayoutUpdate(Ihandle* ih); /* called only after map */
+ 
++void iupLayoutSetMinMaxSize(Ihandle* ih, int *w, int *h);
++
+ /* Other functions declared in <iup.h> and implemented here. 
+ IupRefresh
+ */
+diff --git a/iup/src/iup_ledlex.c b/iup/src/iup_ledlex.c
+index 3283a43..5cf8640 100755
+--- a/iup/src/iup_ledlex.c
++++ b/iup/src/iup_ledlex.c
+@@ -35,7 +35,7 @@ static struct /* lexical variables */
+ static int iLexGetChar (void);
+ static int iLexToken(int *erro);
+ static int iLexCapture (char* dlm);
+-static int iLexSkip (char* dlm);
++static void iLexSkipComment (void);
+ static int iLexCaptureAttr (void);
+ 
+ int iupLexStart(const char* filename, int is_file) /* initialize lexical analysis */
+@@ -186,9 +186,9 @@ static int iLexToken(int *erro)
+ case ']':
+ return IUPLEX_TK_ENDATTR;
+ 
+- case '#': /* iLexSkip comment */
+- case '%': /* iLexSkip comment */
+- iLexSkip ("\n\r");
++ case '#': /* Skip comment */
++ case '%': /* Skip comment */
++ iLexSkipComment();
+ continue;
+ 
+ case ' ': /* ignore whitespace */
+@@ -276,14 +276,13 @@ static int iLexCaptureAttr (void)
+ return c; /* return delimiter */
+ }
+ 
+-static int iLexSkip (char* dlm)
++static void iLexSkipComment (void)
+ {
+ int c;
+ do
+ {
+- c = iLexGetChar ();
+- } while ((c > 0) && !strchr (dlm,c));
+- return c; /* return delimiter */
++ c = iLexGetChar();
++ } while ((c > 0) && (c != '\n'));
+ }
+ 
+ static int iLexGetChar (void)
+diff --git a/iup/src/iup_list.c b/iup/src/iup_list.c
+index 5965665..1077d98 100755
+--- a/iup/src/iup_list.c
++++ b/iup/src/iup_list.c
+@@ -53,6 +53,37 @@ static void iListCallActionCallback(Ihandle* ih, IFnsii cb, int pos, int state)
+ IupExitLoop();
+ }
+ 
++void iupListUpdateOldValue(Ihandle* ih, int pos, int removed)
++{
++ if (!ih->data->has_editbox)
++ {
++ char* old_value = iupAttribGet(ih, "_IUPLIST_OLDVALUE");
++ if (old_value)
++ {
++ int old_pos = atoi(old_value)-1; /* was in IUP reference, starting at 1 */
++ if (ih->data->is_dropdown || !ih->data->is_multiple)
++ {
++ if (old_pos >= pos)
++ {
++ if (removed && old_pos == pos)
++ {
++ /* when the current item is removed nothing remains selected */
++ iupAttribSetStr(ih, "_IUPLIST_OLDVALUE", NULL);
++ }
++ else
++ iupAttribSetInt(ih, "_IUPLIST_OLDVALUE", removed? old_pos-1: old_pos+1);
++ }
++ }
++ else
++ {
++ /* multiple selection on a non drop-down list. */
++ char* value = IupGetAttribute(ih, "VALUE");
++ iupAttribStoreStr(ih, "_IUPLIST_OLDVALUE", value);
++ }
++ }
++ }
++}
++
+ void iupListSingleCallActionCallback(Ihandle* ih, IFnsii cb, int pos)
+ {
+ char* old_str = iupAttribGet(ih, "_IUPLIST_OLDVALUE");
+@@ -77,7 +108,7 @@ void iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in
+ char* old_str = iupAttribGet(ih, "_IUPLIST_OLDVALUE");
+ int old_count = old_str? strlen(old_str): 0;
+ 
+- char* str = iupStrGetMemory(count+1);
++ char* str = malloc(count+1);
+ memset(str, '-', count);
+ str[count]=0;
+ for (i=0; i<sel_count; i++)
+@@ -92,6 +123,7 @@ void iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in
+ if (multi_cb)
+ {
+ int unchanged = 1;
++
+ for (i=0; i<count && old_str; i++)
+ {
+ if (str[i] == old_str[i])
+@@ -101,7 +133,10 @@ void iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in
+ }
+ 
+ if (old_str && unchanged)
++ {
++ free(str);
+ return;
++ }
+ 
+ if (multi_cb(ih, str) == IUP_CLOSE)
+ IupExitLoop();
+@@ -133,6 +168,7 @@ void iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in
+ }
+ 
+ iupAttribStoreStr(ih, "_IUPLIST_OLDVALUE", str);
++ free(str);
+ }
+ 
+ int iupListGetPos(Ihandle* ih, const char* name_id)
+@@ -145,7 +181,8 @@ int iupListGetPos(Ihandle* ih, const char* name_id)
+ pos--; /* IUP items start at 1 */
+ 
+ if (pos < 0) return -1;
+- if (pos > count-1) return -1;
++ if (pos == count) return -2;
++ if (pos > count) return -1;
+ 
+ return pos;
+ }
+@@ -217,7 +254,10 @@ int iupListSetIdValueAttrib(Ihandle* ih, const char* name_id, const char* value)
+ if (pos >= 0 && pos <= count-1)
+ {
+ if (pos == 0)
++ {
+ iupdrvListRemoveAllItems(ih);
++ iupAttribSetStr(ih, "_IUPLIST_OLDVALUE", NULL);
++ }
+ else
+ {
+ int i = pos;
+@@ -245,7 +285,7 @@ int iupListSetIdValueAttrib(Ihandle* ih, const char* name_id, const char* value)
+ 
+ static int iListSetAppendItemAttrib(Ihandle* ih, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ if (value)
+ iupdrvListAppendItem(ih, value);
+@@ -254,27 +294,32 @@ static int iListSetAppendItemAttrib(Ihandle* ih, const char* value)
+ 
+ static int iListSetInsertItemAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ if (value)
+ {
+ int pos = iupListGetPos(ih, name_id);
+- if (pos!=-1)
++ if (pos >= 0)
+ iupdrvListInsertItem(ih, pos, value);
++ else if (pos == -2)
++ iupdrvListAppendItem(ih, value);
+ }
+ return 0;
+ }
+ 
+ static int iListSetRemoveItemAttrib(Ihandle* ih, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ if (!value)
++ {
+ iupdrvListRemoveAllItems(ih);
++ iupAttribSetStr(ih, "_IUPLIST_OLDVALUE", NULL);
++ }
+ else
+ {
+ int pos = iupListGetPos(ih, value);
+- if (pos!=-1)
++ if (pos >= 0)
+ iupdrvListRemoveItem(ih, pos);
+ }
+ return 0;
+diff --git a/iup/src/iup_list.h b/iup/src/iup_list.h
+index 045116b..05fe9f8 100755
+--- a/iup/src/iup_list.h
++++ b/iup/src/iup_list.h
+@@ -30,6 +30,7 @@ char* iupListGetNCAttrib(Ihandle* ih);
+ char* iupListGetPaddingAttrib(Ihandle* ih);
+ char* iupListGetSpacingAttrib(Ihandle* ih);
+ void iupListSingleCallDblClickCallback(Ihandle* ih, IFnis cb, int pos);
++void iupListUpdateOldValue(Ihandle* ih, int pos, int removed);
+ 
+ struct _IcontrolData 
+ {
+diff --git a/iup/src/iup_names.c b/iup/src/iup_names.c
+index 9ec01a6..18ca3ef 100755
+--- a/iup/src/iup_names.c
++++ b/iup/src/iup_names.c
+@@ -14,11 +14,41 @@
+ #include "iup_object.h"
+ #include "iup_class.h"
+ #include "iup_assert.h"
++#include "iup_attrib.h"
+ #include "iup_str.h"
+ 
+ 
+ static Itable *inames_strtable = NULL; /* table indexed by name containing Ihandle* address */
+-static Itable *inames_ihtable = NULL; /* table indexed by Ihandle* address containing names */
++
++void iupNamesInit(void)
++{
++ inames_strtable = iupTableCreate(IUPTABLE_STRINGINDEXED);
++}
++
++void iupNamesFinish(void)
++{
++ iupTableDestroy(inames_strtable);
++ inames_strtable = NULL;
++}
++
++static Ihandle* iNameGetTopParent(Ihandle* ih)
++{
++ Ihandle* parent = ih;
++ while (parent->parent)
++ parent = parent->parent;
++ return parent;
++}
++
++static int iNameCheckArray(Ihandle** ih_array, int count, Ihandle* ih)
++{
++ int i;
++ for (i = 0; i < count; i++)
++ {
++ if (ih_array[i] == ih)
++ return 0;
++ }
++ return 1;
++}
+ 
+ void iupNamesDestroyHandles(void)
+ {
+@@ -37,10 +67,14 @@ void iupNamesDestroyHandles(void)
+ while (name)
+ {
+ ih = (Ihandle*)iupTableGetCurr(inames_strtable);
+- if (iupObjectCheck(ih))
++ if (iupObjectCheck(ih)) /* here must be a handle */
+ {
+- ih_array[i] = ih;
+- i++;
++ ih = iNameGetTopParent(ih);
++ if (iNameCheckArray(ih_array, i, ih))
++ {
++ ih_array[i] = ih;
++ i++;
++ }
+ }
+ name = iupTableNext(inames_strtable);
+ }
+@@ -48,44 +82,28 @@ void iupNamesDestroyHandles(void)
+ count = i;
+ for (i = 0; i < count; i++)
+ {
+- if (iupObjectCheck(ih_array[i]))
++ if (iupObjectCheck(ih_array[i])) /* here must be a handle */
+ IupDestroy(ih_array[i]);
+ }
+ 
+ free(ih_array);
+ }
+ 
+-void iupNamesInit(void)
+-{
+- inames_strtable = iupTableCreate(IUPTABLE_STRINGINDEXED);
+- inames_ihtable = iupTableCreate(IUPTABLE_POINTERINDEXED);
+-}
+-
+-void iupNamesFinish(void)
+-{
+- iupTableDestroy(inames_strtable);
+- inames_strtable = NULL;
+-
+- iupTableDestroy(inames_ihtable);
+- inames_ihtable = NULL;
+-}
+-
+-void iupRemoveAllNames(Ihandle* ih)
++void iupRemoveNames(Ihandle* ih)
+ {
+ char *name;
+- Ihandle *cur_ih;
+ 
+- name = iupTableFirst(inames_strtable);
+- while (name)
+- {
+- cur_ih = (Ihandle*)iupTableGetCurr(inames_strtable);
+- if (iupObjectCheck(cur_ih) && cur_ih == ih)
+- iupTableRemoveCurr(inames_strtable);
++ /* clear the cache */
++ name = iupAttribGet(ih, "_IUP_LASTHANDLENAME");
++ if (name)
++ iupTableRemove(inames_strtable, name);
+ 
+- name = iupTableNext(inames_strtable);
+- }
++ /* check for an internal name */
++ name = iupAttribGetHandleName(ih);
++ if (name)
++ iupTableRemove(inames_strtable, name);
+ 
+- iupTableRemove(inames_ihtable, (char*)ih);
++ /* Do NOT search for other names */
+ }
+ 
+ Ihandle *IupGetHandle(const char *name)
+@@ -104,22 +122,24 @@ Ihandle* IupSetHandle(const char *name, Ihandle *ih)
+ return NULL;
+ 
+ old_ih = iupTableGet(inames_strtable, name);
++
+ if (ih != NULL)
+ {
+ iupTableSet(inames_strtable, name, ih, IUPTABLE_POINTER);
+- iupTableSet(inames_ihtable, (char*)ih, (char*)name, IUPTABLE_STRING); /* keep only the last name set */
++
++ /* save the name in the cache if it is a valid handle */
++ if (iupObjectCheck(ih))
++ iupAttribStoreStr(ih, "_IUP_LASTHANDLENAME", name);
+ }
+ else
+ {
+- ih = iupTableGet(inames_strtable, name);
+ iupTableRemove(inames_strtable, name);
+- if (ih) 
+- {
+- char* cur_name = iupTableGet(inames_ihtable, (char*)ih);
+- if (iupStrEqualNoCase(cur_name, name))
+- iupTableRemove(inames_ihtable, (char*)ih);
+- }
++
++ /* clear the name from the cache if it is a valid handle */
++ if (iupObjectCheck(old_ih))
++ iupAttribSetStr(old_ih, "_IUP_LASTHANDLENAME", NULL);
+ }
++
+ return old_ih;
+ }
+ 
+@@ -151,7 +171,8 @@ static int iNamesCountDialogs(void)
+ while (name)
+ {
+ Ihandle* dlg = (Ihandle*)iupTableGetCurr(inames_strtable);
+- if (iupObjectCheck(dlg) && dlg->iclass->nativetype == IUP_TYPEDIALOG)
++ if (iupObjectCheck(dlg) && /* here must be a handle */
++ dlg->iclass->nativetype == IUP_TYPEDIALOG)
+ i++;
+ 
+ name = iupTableNext(inames_strtable);
+@@ -171,7 +192,8 @@ int IupGetAllDialogs(char** names, int n)
+ while (name)
+ {
+ Ihandle* dlg = (Ihandle*)iupTableGetCurr(inames_strtable);
+- if (iupObjectCheck(dlg) && dlg->iclass->nativetype == IUP_TYPEDIALOG)
++ if (iupObjectCheck(dlg) && /* here must be a handle */
++ dlg->iclass->nativetype == IUP_TYPEDIALOG)
+ {
+ names[i] = name;
+ i++;
+@@ -186,8 +208,32 @@ int IupGetAllDialogs(char** names, int n)
+ 
+ char* IupGetName(Ihandle* ih)
+ {
+- iupASSERT(iupObjectCheck(ih));
+- if (!iupObjectCheck(ih))
++ char *name;
++ if (!ih) /* no iupASSERT needed here */
+ return NULL;
+- return iupTableGet(inames_ihtable, (char*)ih);
++
++ if (iupObjectCheck(ih))
++ {
++ /* check the cache first, but must be a handle */
++ name = iupAttribGet(ih, "_IUP_LASTHANDLENAME");
++ if (name)
++ return name;
++ }
++
++ /* check for an internal name */
++ name = iupAttribGetHandleName(ih);
++ if (name)
++ return name;
++ 
++ /* search for the name */
++ name = iupTableFirst(inames_strtable);
++ while (name)
++ {
++ if ((Ihandle*)iupTableGetCurr(inames_strtable) == ih)
++ return name;
++
++ name = iupTableNext(inames_strtable);
++ }
++
++ return NULL;
+ }
+diff --git a/iup/src/iup_names.h b/iup/src/iup_names.h
+index 9d3adc7..d652594 100755
+--- a/iup/src/iup_names.h
++++ b/iup/src/iup_names.h
+@@ -17,7 +17,7 @@ void iupNamesFinish(void);
+ void iupNamesDestroyHandles(void);
+ 
+ /* called from IupDestroy */
+-void iupRemoveAllNames(Ihandle* ih);
++void iupRemoveNames(Ihandle* ih);
+ 
+ /* Other functions declared in <iup.h> and implemented here.
+ IupGetName
+diff --git a/iup/src/iup_object.c b/iup/src/iup_object.c
+index 7f4ce23..f0d5dc9 100755
+--- a/iup/src/iup_object.c
++++ b/iup/src/iup_object.c
+@@ -148,6 +148,8 @@ Ihandle* IupCreate(const char *name)
+ 
+ void IupDestroy(Ihandle *ih)
+ {
++ Icallback cb;
++
+ iupASSERT(iupObjectCheck(ih));
+ if (!iupObjectCheck(ih))
+ return;
+@@ -156,6 +158,9 @@ void IupDestroy(Ihandle *ih)
+ if (ih->iclass->nativetype == IUP_TYPEDIALOG)
+ IupHide(ih);
+ 
++ cb = IupGetCallback(ih, "DESTROY_CB");
++ if (cb) cb(ih);
++
+ /* Destroy all its children.
+ Just need to remove the first child,
+ IupDetach will update firstchild. */
+@@ -165,6 +170,9 @@ void IupDestroy(Ihandle *ih)
+ /* unmap if mapped and remove from its parent child list */
+ IupDetach(ih);
+ 
++ /* removes names associated with the element */
++ iupRemoveNames(ih);
++
+ /* destroy the element */
+ iupClassObjectDestroy(ih);
+ 
+@@ -172,9 +180,6 @@ void IupDestroy(Ihandle *ih)
+ if (ih->data)
+ free(ih->data);
+ 
+- /* removes all the names associated with the element */
+- iupRemoveAllNames(ih);
+-
+ /* destroy the base handle structure */
+ iHandleDestroy(ih);
+ }
+diff --git a/iup/src/iup_object.h b/iup/src/iup_object.h
+index 6f6b668..a69edc0 100755
+--- a/iup/src/iup_object.h
++++ b/iup/src/iup_object.h
+@@ -113,6 +113,7 @@ Ihandle* iupObjectCreate(Iclass* ic, void** params);
+ void** iupObjectGetParamList(void* first, va_list arglist);
+ 
+ /** Checks if the handle is still valid based on the signature.
++ * But if the handle was destroyed still can access invalid memory.
+ * \ingroup object */
+ int iupObjectCheck(Ihandle* ih);
+ 
+diff --git a/iup/src/iup_open.c b/iup/src/iup_open.c
+index e02561e..bce5c5c 100755
+--- a/iup/src/iup_open.c
++++ b/iup/src/iup_open.c
+@@ -101,8 +101,8 @@ void IupClose(void)
+ 
+ iupdrvSetIdleFunction(NULL); /* stop any idle */
+ 
+- iupDlgListDestroyAll(); /* destroy all dialogs */
+- iupNamesDestroyHandles(); /* destroy everything else that have names */
++ iupDlgListDestroyAll(); /* destroy all dialogs and their children */
++ iupNamesDestroyHandles(); /* destroy everything that do not belong to a dialog */
+ iupImageStockFinish(); /* release stock images hash table and the images */
+ 
+ iupRegisterFinish(); /* release native classes */
+diff --git a/iup/src/iup_register.c b/iup/src/iup_register.c
+index 4c58038..2e9954a 100755
+--- a/iup/src/iup_register.c
++++ b/iup/src/iup_register.c
+@@ -99,6 +99,7 @@ void iupRegisterInternalClasses(void)
+ iupRegisterClass(iupCboxGetClass());
+ iupRegisterClass(iupSboxGetClass());
+ iupRegisterClass(iupNormalizerGetClass());
++ iupRegisterClass(iupSplitGetClass());
+ 
+ iupRegisterClass(iupMenuGetClass());
+ iupRegisterClass(iupItemGetClass());
+diff --git a/iup/src/iup_sbox.c b/iup/src/iup_sbox.c
+index 5a71d33..9998481 100755
+--- a/iup/src/iup_sbox.c
++++ b/iup/src/iup_sbox.c
+@@ -57,6 +57,7 @@ static void iSboxSaveDimension(Ihandle* ih, int w, int h)
+ {
+ ih->data->w = w;
+ ih->data->h = h;
++ iupLayoutSetMinMaxSize(ih, &(ih->data->w), &(ih->data->h));
+ }
+ 
+ static void iSboxAddDecorOffset(Ihandle* ih, int *x, int *y)
+diff --git a/iup/src/iup_show.c b/iup/src/iup_show.c
+index 9ea1408..b42975e 100755
+--- a/iup/src/iup_show.c
++++ b/iup/src/iup_show.c
+@@ -53,35 +53,6 @@ void IupUnmap(Ihandle *ih)
+ ih->handle = NULL;
+ }
+ 
+-static char* iShowGetVisible(Ihandle* ih)
+-{
+- char* value = iupAttribGet(ih, "VISIBLE"); /* Check on the element first */
+- while (!value)
+- {
+- ih = ih->parent; /* iheritance here independs on the attribute */
+- if (!ih)
+- return NULL;
+-
+- value = iupAttribGet(ih, "VISIBLE");
+-
+- /* only recursive up to the native parent */ 
+- if (ih->iclass->nativetype != IUP_TYPEVOID)
+- return value; /* can be NULL */
+- }
+-
+- return value;
+-}
+-
+-static void iShowUpdateVisible(Ihandle* ih)
+-{
+- int inherit;
+- /* although default is VISIBLE=YES, 
+- when mapped the element is still hidden. 
+- So we must manually update the visible state. */
+- char* value = iShowGetVisible(ih);
+- iupClassObjectSetAttribute(ih, "VISIBLE", value, &inherit);
+-}
+-
+ int IupMap(Ihandle* ih)
+ {
+ iupASSERT(iupObjectCheck(ih));
+@@ -108,7 +79,7 @@ int IupMap(Ihandle* ih)
+ return IUP_ERROR;
+ }
+ 
+- /* update FONT, must be the before several others */
++ /* update FONT, must be the before several others, so we do it here */
+ if (ih->iclass->nativetype != IUP_TYPEVOID &&
+ ih->iclass->nativetype != IUP_TYPEIMAGE &&
+ ih->iclass->nativetype != IUP_TYPEMENU)
+@@ -117,18 +88,13 @@ int IupMap(Ihandle* ih)
+ /* ensure attributes default values, at this time only the ones that need to be set after map */
+ iupClassObjectEnsureDefaultAttributes(ih);
+ 
+- /* check visible state if not a dialog */
+- if (ih->iclass->nativetype == IUP_TYPECANVAS || 
+- ih->iclass->nativetype == IUP_TYPECONTROL)
+- iShowUpdateVisible(ih);
+-
+- /* updates the defined attributes in the native system. */
++ /* updates the defined attributes from the hash table to the native system. */
+ iupAttribUpdate(ih); 
+ 
+- /* updates attributes defined in the parent tree */
++ /* updates inheritable attributes defined in the parent tree */
+ iupAttribUpdateFromParent(ih);
+ 
+- /* map children */
++ /* map children independent from childtype */
+ {
+ Ihandle* child = ih->firstchild;
+ while (child)
+@@ -140,6 +106,10 @@ int IupMap(Ihandle* ih)
+ }
+ }
+ 
++ /* updates the defined attributes from the hash table to the native system. */
++ if (ih->iclass->childtype!=IUP_CHILDNONE)
++ iupAttribUpdateChildren(ih);
++
+ /* moves and resizes the elements to reflect the layout computation */
+ /* if the dialog is visible will be reflected in the user interface */
+ if (ih->iclass->nativetype == IUP_TYPEDIALOG)
+diff --git a/iup/src/iup_spin.c b/iup/src/iup_spin.c
+index 6fadab4..514703f 100755
+--- a/iup/src/iup_spin.c
++++ b/iup/src/iup_spin.c
+@@ -175,7 +175,7 @@ static int iSpinCreateMethod(Ihandle* ih, void** params)
+ 
+ static int iSpinboxCreateMethod(Ihandle* ih, void** params)
+ {
+- Ihandle *spin, *ctrl;
++ Ihandle *spin;
+ 
+ if (!params || !(params[0]))
+ return IUP_ERROR;
+@@ -184,8 +184,7 @@ static int iSpinboxCreateMethod(Ihandle* ih, void** params)
+ IupSetAttribute(ih, "MARGIN", "0x0");
+ IupSetAttribute(ih, "ALIGNMENT", "ACENTER");
+ 
+- ctrl = (Ihandle*)(params[0]);
+- iupChildTreeAppend(ih, ctrl);
++ /* IupText is already a child of Spinbox because of the IupHbox Create method */
+ 
+ spin = IupSpin();
+ iupChildTreeAppend(ih, spin);
+@@ -249,7 +248,7 @@ Iclass* iupSpinboxGetClass(void)
+ ic->name = "spinbox";
+ ic->format = "h"; /* one Ihandle */
+ ic->nativetype = IUP_TYPEVOID;
+- ic->childtype = IUP_CHILDNONE;
++ ic->childtype = IUP_CHILD_ONE; /* fake value to define it as a container */
+ ic->is_interactive = 0;
+ 
+ iupClassRegisterCallback(ic, "SPIN_CB", "i");
+@@ -267,7 +266,7 @@ Iclass* iupSpinGetClass(void)
+ ic->name = "spin";
+ ic->format = NULL; /* no parameters */
+ ic->nativetype = IUP_TYPEVOID;
+- ic->childtype = IUP_CHILDNONE;
++ ic->childtype = IUP_CHILD_ONE; /* fake value to define it as a container */
+ ic->is_interactive = 0;
+ 
+ /* Class functions */
+diff --git a/iup/src/iup_stdcontrols.h b/iup/src/iup_stdcontrols.h
+index 11499ae..0f3deb9 100755
+--- a/iup/src/iup_stdcontrols.h
++++ b/iup/src/iup_stdcontrols.h
+@@ -46,6 +46,7 @@ Iclass* iupZboxGetClass(void);
+ Iclass* iupCboxGetClass(void);
+ Iclass* iupSboxGetClass(void);
+ Iclass* iupNormalizerGetClass(void);
++Iclass* iupSplitGetClass(void);
+ 
+ Iclass* iupTimerGetClass(void);
+ Iclass* iupImageGetClass(void);
+diff --git a/iup/src/iup_str.c b/iup/src/iup_str.c
+index 68976f1..5f5b85d 100755
+--- a/iup/src/iup_str.c
++++ b/iup/src/iup_str.c
+@@ -147,8 +147,9 @@ char *iupStrCopyUntil(char **str, int c)
+ return NULL;
+ 
+ p_str=strchr(*str,c);
+- if (!p_str) return NULL;
+-
++ if (!p_str) 
++ return NULL;
++ else
+ {
+ int i;
+ int sl=(int)(p_str - (*str));
+@@ -160,10 +161,10 @@ char *iupStrCopyUntil(char **str, int c)
+ new_str[i] = (*str)[i];
+ 
+ new_str[sl] = 0;
+- }
+ 
+- *str = p_str+1;
+- return new_str;
++ *str = p_str+1;
++ return new_str;
++ }
+ }
+ 
+ char *iupStrCopyUntilNoCase(char **str, int c)
+@@ -174,11 +175,12 @@ char *iupStrCopyUntilNoCase(char **str, int c)
+ 
+ p_str=strchr(*str,c); /* usually the lower case is enough */
+ if (!p_str && isalpha(c)) 
+- {
+ p_str=strchr(*str, toupper(c)); /* but check also for upper case */
+- if (!p_str) return NULL;
+- }
+ 
++ /* if both fail, then abort */
++ if (!p_str) 
++ return NULL;
++ else
+ {
+ int i;
+ int sl=(int)(p_str - (*str));
+@@ -190,10 +192,10 @@ char *iupStrCopyUntilNoCase(char **str, int c)
+ new_str[i] = (*str)[i];
+ 
+ new_str[sl] = 0;
+- }
+ 
+- *str = p_str+1;
+- return new_str;
++ *str = p_str+1;
++ return new_str;
++ }
+ }
+ 
+ char *iupStrGetMemory(int size)
+diff --git a/iup/src/iup_table.c b/iup/src/iup_table.c
+index 9e97ff5..a873191 100755
+--- a/iup/src/iup_table.c
++++ b/iup/src/iup_table.c
+@@ -19,12 +19,12 @@
+ /* Adjust these parameters for optimal performance and memory usage */
+ static const unsigned int itable_maxTableSizeIndex = 8;
+ static const unsigned int itable_hashTableSize[] = { 31, 101, 401, 1601, 4001, 8009, 16001, 32003, 64007 };
+-static const float itable_resizeLimit = 2;
++static const unsigned int itable_resizeLimit = 2;
+ static const unsigned int itable_itemGrow = 5;
+ 
+ /* Iteration context.
+ */
+-typedef struct ItableContext
++typedef struct _ItableContext
+ {
+ unsigned int entryIndex; /* index at the Itable::entries array */
+ unsigned int itemIndex; /* index at the ItableEntry::items array */
+@@ -41,7 +41,7 @@ typedef struct ItableContext
+ * this is simply the pointer (in this case keyIndex
+ * and keyStr are equal).
+ */
+-typedef struct ItableKey
++typedef struct _ItableKey
+ {
+ unsigned long keyIndex; /* the secondary hash number */
+ const char *keyStr;
+@@ -52,11 +52,11 @@ ItableKey;
+ * Such an item is stored in the item list of
+ * an entry.
+ */
+-typedef struct ItableItem
++typedef struct _ItableItem
+ {
+ Itable_Types itemType;
+- ItableKey key;
+- void *value;
++ ItableKey key;
++ void* value;
+ }
+ ItableItem;
+ 
+@@ -67,29 +67,28 @@ ItableItem;
+ * in nextItemIndex.
+ * size is the current size of the items array.
+ */
+-typedef struct ItableEntry
++typedef struct _ItableEntry
+ {
+ unsigned int nextItemIndex;
+- unsigned int size;
+- ItableItem *items;
++ unsigned int itemsSize;
++ ItableItem* items;
+ }
+ ItableEntry;
+ 
+ 
+ /* A hash table.
+- * indexType is the type of the index.
+ * entries is an array of entries. Select an
+ * entry by its index.
+ * size is the number of entries in the hash table...
+ */
+-struct Itable
++struct _Itable
+ {
+- unsigned int size;
+- unsigned int numberOfEntries;
+- unsigned int tableSizeIndex; /* index into itable_hashTableSize array */
+- Itable_IndexTypes indexType;
+- ItableEntry *entries;
+- ItableContext context;
++ unsigned int entriesSize;
++ unsigned int numberOfEntries;
++ unsigned int tableSizeIndex; /* index into itable_hashTableSize array */
++ Itable_IndexTypes indexType; /* type of the index: string or pointer. */
++ ItableEntry *entries;
++ ItableContext context;
+ };
+ 
+ 
+@@ -121,8 +120,7 @@ Itable *iupTableCreate(Itable_IndexTypes indexType)
+ 
+ Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSizeIndex)
+ {
+- Itable *it = (Itable *)malloc(sizeof(struct Itable));
+-
++ Itable *it = (Itable *)malloc(sizeof(Itable));
+ iupASSERT(it!=NULL);
+ if (!it)
+ return 0;
+@@ -130,12 +128,12 @@ Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSiz
+ if (initialSizeIndex > itable_maxTableSizeIndex)
+ initialSizeIndex = itable_maxTableSizeIndex;
+ 
+- it->size = itable_hashTableSize[initialSizeIndex];
++ it->entriesSize = itable_hashTableSize[initialSizeIndex];
+ it->tableSizeIndex = initialSizeIndex;
+ it->numberOfEntries = 0;
+ it->indexType = indexType;
+ 
+- it->entries = (ItableEntry *)malloc(it->size * sizeof(ItableEntry));
++ it->entries = (ItableEntry *)malloc(it->entriesSize * sizeof(ItableEntry));
+ iupASSERT(it->entries!=NULL);
+ if (!it->entries)
+ {
+@@ -143,7 +141,7 @@ Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSiz
+ return 0;
+ }
+ 
+- memset(it->entries, 0, it->size * sizeof(ItableEntry));
++ memset(it->entries, 0, it->entriesSize * sizeof(ItableEntry));
+ 
+ it->context.entryIndex = (unsigned int)-1;
+ it->context.itemIndex = (unsigned int)-1;
+@@ -158,16 +156,19 @@ void iupTableClear(Itable *it)
+ if (!it)
+ return;
+ 
+- for (i = 0; i < it->size; i++)
++ for (i = 0; i < it->entriesSize; i++)
+ {
+ ItableEntry *entry = &(it->entries[i]);
+ if (entry->items)
++ {
+ iTableFreeItemArray(it->indexType, entry->nextItemIndex, entry->items);
++ entry->items = NULL;
++ }
+ }
+ 
+ it->numberOfEntries = 0;
+ 
+- memset(it->entries, 0, it->size * sizeof(ItableEntry));
++ memset(it->entries, 0, it->entriesSize * sizeof(ItableEntry));
+ 
+ it->context.entryIndex = (unsigned int)-1;
+ it->context.itemIndex = (unsigned int)-1;
+@@ -185,7 +186,10 @@ void iupTableDestroy(Itable *it)
+ iupTableClear(it);
+ 
+ if (it->entries)
++ {
+ free(it->entries);
++ it->entries = NULL;
++ }
+ 
+ free(it);
+ }
+@@ -288,17 +292,23 @@ static void iTableRemoveItem(Itable *it, ItableEntry *entry, unsigned int itemIn
+ item = &(entry->items[itemIndex]);
+ 
+ if (it->indexType == IUPTABLE_STRINGINDEXED)
++ {
+ free((void *)item->key.keyStr);
++ item->key.keyStr = NULL;
++ }
+ 
+ if (item->itemType == IUPTABLE_STRING)
++ {
+ free(item->value);
++ item->value = NULL;
++ }
+ 
+- /* order the remaining items */
++ /* re-order the remaining items */
+ for (i = itemIndex; i < entry->nextItemIndex-1; i++)
+ entry->items[i] = entry->items[i+1];
+ 
+- /* clear the non used item */
+- memset(entry->items + entry->nextItemIndex, 0, sizeof (ItableItem));
++ /* clear the released item */
++ memset(entry->items + entry->nextItemIndex-1, 0, sizeof (ItableItem));
+ 
+ entry->nextItemIndex--;
+ it->numberOfEntries--;
+@@ -398,7 +408,7 @@ char *iupTableFirst(Itable *it)
+ it->context.itemIndex = (unsigned int)-1;
+ 
+ /* find the first used entry */
+- for (entryIndex = 0; entryIndex < it->size; entryIndex++)
++ for (entryIndex = 0; entryIndex < it->entriesSize; entryIndex++)
+ {
+ if (it->entries[entryIndex].nextItemIndex > 0)
+ {
+@@ -430,7 +440,7 @@ char *iupTableNext(Itable *it)
+ else
+ {
+ /* find the next used entry */
+- for (entryIndex = it->context.entryIndex+1; entryIndex < it->size; entryIndex++)
++ for (entryIndex = it->context.entryIndex+1; entryIndex < it->entriesSize; entryIndex++)
+ {
+ if (it->entries[entryIndex].nextItemIndex > 0)
+ {
+@@ -471,7 +481,7 @@ char *iupTableRemoveCurr(Itable *it)
+ else
+ {
+ /* find the next used entry */
+- for (entryIndex = it->context.entryIndex+1; entryIndex < it->size; entryIndex++)
++ for (entryIndex = it->context.entryIndex+1; entryIndex < it->entriesSize; entryIndex++)
+ {
+ if (it->entries[entryIndex].nextItemIndex > 0)
+ {
+@@ -498,6 +508,8 @@ static void iTableFreeItemArray(Itable_IndexTypes indexType, unsigned int nextFr
+ {
+ unsigned int i;
+ 
++ /* Used only in iupTableClear */
++
+ iupASSERT(items!=NULL);
+ if (!items)
+ return;
+@@ -505,13 +517,19 @@ static void iTableFreeItemArray(Itable_IndexTypes indexType, unsigned int nextFr
+ if (indexType == IUPTABLE_STRINGINDEXED)
+ {
+ for (i = 0; i < nextFreeIndex; i++)
++ {
+ free((void *)(items[i].key.keyStr));
++ items[i].key.keyStr = NULL;
++ }
+ }
+ 
+ for (i = 0; i < nextFreeIndex; i++)
+ {
+ if (items[i].itemType == IUPTABLE_STRING)
++ {
+ free(items[i].value);
++ items[i].value = NULL;
++ }
+ }
+ 
+ free(items);
+@@ -545,7 +563,7 @@ static unsigned int iTableGetEntryIndex(Itable *it, const char *key, unsigned lo
+ *keyIndex = (unsigned long)key; /* this could NOT be dependent from table size */
+ }
+ 
+- return (unsigned int)((*keyIndex) % it->size);
++ return (unsigned int)((*keyIndex) % it->entriesSize);
+ }
+ 
+ #ifdef DEBUGTABLE
+@@ -603,25 +621,24 @@ static unsigned int iTableFindItem(Itable *it, const char *key, ItableEntry **en
+ 
+ static void iTableUpdateArraySize(ItableEntry *entry)
+ {
+- if (entry->nextItemIndex >= entry->size)
++ if (entry->nextItemIndex >= entry->itemsSize)
+ {
+ /* we have to expand the item array */
+ unsigned int newSize;
+ 
+- newSize = entry->size + itable_itemGrow;
++ newSize = entry->itemsSize + itable_itemGrow;
+ 
+ entry->items = (ItableItem *)realloc(entry->items, newSize * sizeof(ItableItem));
+ iupASSERT(entry->items!=NULL);
+ if (!entry->items)
+ return;
+ 
+- memset(entry->items + entry->size, 0, itable_itemGrow * sizeof(ItableItem));
++ memset(entry->items + entry->itemsSize, 0, itable_itemGrow * sizeof(ItableItem));
+ 
+- entry->size = newSize;
++ entry->itemsSize = newSize;
+ }
+ }
+ 
+-
+ static void iTableAdd(Itable *it, ItableKey *key, void *value, Itable_Types itemType)
+ {
+ unsigned int entryIndex;
+@@ -657,7 +674,7 @@ static unsigned int iTableResize(Itable *it)
+ /* check if we do not need to resize the hash table */
+ if (it->numberOfEntries == 0 ||
+ it->tableSizeIndex >= itable_maxTableSizeIndex ||
+- it->size / it->numberOfEntries >= itable_resizeLimit)
++ it->entriesSize / it->numberOfEntries >= itable_resizeLimit)
+ return 0;
+ 
+ /* create a new hash table and copy the contents of
+@@ -666,7 +683,7 @@ static unsigned int iTableResize(Itable *it)
+ newSizeIndex = it->tableSizeIndex + 1;
+ newTable = iupTableCreateSized(it->indexType, newSizeIndex);
+ 
+- for (entryIndex = 0; entryIndex < it->size; entryIndex++)
++ for (entryIndex = 0; entryIndex < it->entriesSize; entryIndex++)
+ {
+ entry = &(it->entries[entryIndex]);
+ 
+@@ -680,12 +697,13 @@ static unsigned int iTableResize(Itable *it)
+ } 
+ 
+ free(entry->items);
++ entry->items = NULL;
+ }
+ }
+ 
+ free(it->entries);
+ 
+- it->size = newTable->size;
++ it->entriesSize = newTable->entriesSize;
+ it->tableSizeIndex = newTable->tableSizeIndex;
+ it->numberOfEntries = newTable->numberOfEntries;
+ it->entries = newTable->entries;
+@@ -712,11 +730,11 @@ static void iTableShowStatistics(Itable *it)
+ return;
+ }
+ 
+- nofSlots = it->size;
++ nofSlots = it->entriesSize;
+ nofKeys = it->numberOfEntries;
+ optimalNofKeysPerSlot = (double)nofKeys / (double)nofSlots;
+ 
+- for (entryIndex = 0; entryIndex < it->size; entryIndex++)
++ for (entryIndex = 0; entryIndex < it->entriesSize; entryIndex++)
+ {
+ ItableEntry *entry = &(it->entries[entryIndex]);
+ 
+diff --git a/iup/src/iup_table.h b/iup/src/iup_table.h
+index 5222160..f2ff2c7 100755
+--- a/iup/src/iup_table.h
++++ b/iup/src/iup_table.h
+@@ -42,8 +42,8 @@ typedef enum _Itable_Types
+ 
+ typedef void (*Ifunc)(void);
+ 
+-struct Itable;
+-typedef struct Itable Itable;
++struct _Itable;
++typedef struct _Itable Itable;
+ 
+ 
+ /** Creates a hash table with an initial default size.
+@@ -63,7 +63,7 @@ Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSiz
+ /** Destroys the Itable.
+ * Calls \ref iupTableClear.
+ * \ingroup table */
+-void iupTableDestroy(Itable *n);
++void iupTableDestroy(Itable *it);
+ 
+ /** Removes all items in the table.
+ * This function does also free the memory of strings contained in the table!!!!
+@@ -76,33 +76,33 @@ int iupTableCount(Itable *it);
+ 
+ /** Store an element in the table.
+ * \ingroup table */
+-void iupTableSet(Itable *n, const char *key, void *value, Itable_Types itemType);
++void iupTableSet(Itable *it, const char *key, void *value, Itable_Types itemType);
+ 
+ /** Store a function pointer in the table.
+ * Type is set to IUPTABLE_FUNCPOINTER.
+ * \ingroup table */
+-void iupTableSetFunc(Itable *n, const char *key, Ifunc func);
++void iupTableSetFunc(Itable *it, const char *key, Ifunc func);
+ 
+ /** Retrieves an element from the table.
+ * Returns NULL if not found.
+ * \ingroup table */
+-void *iupTableGet(Itable *n, const char *key);
++void *iupTableGet(Itable *it, const char *key);
+ 
+ /** Retrieves a function pointer from the table. 
+ * If not a function or not found returns NULL.
+ * value always contains the element pointer.
+ * \ingroup table */
+-Ifunc iupTableGetFunc(Itable *n, const char *key, void **value);
++Ifunc iupTableGetFunc(Itable *it, const char *key, void **value);
+ 
+ /** Retrieves an element from the table and its type.
+ * \ingroup table */
+-void *iupTableGetTyped(Itable *n, const char *key, Itable_Types *itemType);
++void *iupTableGetTyped(Itable *it, const char *key, Itable_Types *itemType);
+ 
+ /** Removes the entry at the specified key from the
+ * hash table and frees the memory used by it if
+ * it is a string...
+ * \ingroup table */
+-void iupTableRemove(Itable *n, const char *key);
++void iupTableRemove(Itable *it, const char *key);
+ 
+ /** Key iteration function. Returns a key.
+ * To iterate over all keys call iupTableFirst at the first
+diff --git a/iup/src/iup_tabs.c b/iup/src/iup_tabs.c
+index 77b2cf5..2907371 100755
+--- a/iup/src/iup_tabs.c
++++ b/iup/src/iup_tabs.c
+@@ -307,6 +307,25 @@ static char* iTabsGetClientSizeAttrib(Ihandle* ih)
+ return str;
+ }
+ 
++void iupTabsTestRemoveTab(Ihandle* ih, int pos)
++{
++ int cur_pos = iupdrvTabsGetCurrentTab(ih);
++ if (cur_pos == pos)
++ {
++ if (cur_pos == 0)
++ {
++ Ihandle* child = IupGetChild(ih, 1);
++ if (!child) /* not found child, means only one child, do nothing */
++ return;
++
++ cur_pos = 1;
++ }
++ else
++ cur_pos--;
++
++ iupdrvTabsSetCurrentTab(ih, cur_pos);
++ }
++}
+ 
+ /* ------------------------------------------------------------------------- */
+ /* TABS - Methods */
+diff --git a/iup/src/iup_tabs.h b/iup/src/iup_tabs.h
+index 7f5df2e..fd0edf4 100755
+--- a/iup/src/iup_tabs.h
++++ b/iup/src/iup_tabs.h
+@@ -16,6 +16,7 @@ char* iupTabsGetTabOrientationAttrib(Ihandle* ih);
+ char* iupTabsGetTabTypeAttrib(Ihandle* ih);
+ char* iupTabsAttribGetStrId(Ihandle* ih, const char* name, int pos);
+ char* iupTabsGetPaddingAttrib(Ihandle* ih);
++void iupTabsTestRemoveTab(Ihandle* ih, int pos);
+ 
+ int iupdrvTabsExtraDecor(Ihandle* ih);
+ int iupdrvTabsGetLineCountAttrib(Ihandle* ih);
+diff --git a/iup/src/iup_tree.c b/iup/src/iup_tree.c
+index c06e573..b5344f5 100755
+--- a/iup/src/iup_tree.c
++++ b/iup/src/iup_tree.c
+@@ -200,6 +200,240 @@ void iupTreeUpdateImages(Ihandle *ih)
+ iupClassObjectSetAttribute(ih, "IMAGEBRANCHEXPANDED", value, &inherit);
+ }
+ 
++void iupTreeSelectLastCollapsedBranch(Ihandle* ih, int *last_id)
++{
++ /* if last selected item is a branch, then select its children */
++ if (iupStrEqual(IupTreeGetAttribute(ih, "KIND", *last_id), "BRANCH") && 
++ iupStrEqual(IupTreeGetAttribute(ih, "STATE", *last_id), "COLLAPSED"))
++ {
++ int childcount = IupTreeGetInt(ih, "CHILDCOUNT", *last_id);
++ if (childcount > 0)
++ {
++ int start = *last_id + 1;
++ int end = *last_id + childcount;
++ IupSetfAttribute(ih, "MARK", "%d-%d", start, end);
++ *last_id = *last_id + childcount;
++ }
++ }
++}
++
++int iupTreeForEach(Ihandle* ih, iupTreeNodeFunc func, void* userdata)
++{
++ int i;
++ for (i = 0; i < ih->data->node_count; i++)
++ {
++ if (!func(ih, ih->data->node_cache[i].node_handle, i, userdata))
++ return 0;
++ }
++
++ return 1;
++}
++
++int iupTreeFindNodeId(Ihandle* ih, InodeHandle* node_handle)
++{
++ /* Unoptimized version:
++ int i;
++ for (i = 0; i < ih->data->node_count; i++)
++ {
++ if (ih->data->node_cache[i].node_handle == node_handle)
++ return i;
++ }
++ */
++ InodeData *node_cache = ih->data->node_cache;
++ while(node_cache->node_handle != node_handle && 
++ node_cache->node_handle != NULL) /* the cache always have zeros at the end */
++ node_cache++;
++
++ if (node_cache->node_handle != NULL)
++ return node_cache - ih->data->node_cache;
++ else
++ return -1;
++}
++
++static int iTreeFindUserDataId(Ihandle* ih, void* userdata)
++{
++ /* Unoptimized version:
++ int i;
++ for (i = 0; i < ih->data->node_count; i++)
++ {
++ if (ih->data->node_cache[i].node_handle == node_handle)
++ return i;
++ }
++ */
++ InodeData *node_cache = ih->data->node_cache;
++ while(node_cache->userdata != userdata && 
++ node_cache->node_handle != NULL) /* the cache always have zeros at the end */
++ node_cache++;
++
++ if (node_cache->node_handle != NULL)
++ return node_cache - ih->data->node_cache;
++ else
++ return -1;
++}
++
++static int iTreeGetIdFromString(const char* name_id)
++{
++ if (name_id && name_id[0])
++ {
++ int id = -1;
++ iupStrToInt(name_id, &id);
++ return id;
++ }
++ else
++ return -2;
++}
++
++InodeHandle* iupTreeGetNode(Ihandle* ih, int id)
++{
++ if (id >= 0 && id < ih->data->node_count)
++ return ih->data->node_cache[id].node_handle;
++ else if (id == -2)
++ return iupdrvTreeGetFocusNode(ih);
++ else
++ return NULL;
++}
++
++InodeHandle* iupTreeGetNodeFromString(Ihandle* ih, const char* name_id)
++{
++ return iupTreeGetNode(ih, iTreeGetIdFromString(name_id));
++}
++
++static void iTreeAddToCache(Ihandle* ih, int id, InodeHandle* node_handle)
++{
++ iupASSERT(id >= 0 && id < ih->data->node_count);
++ if (id < 0 || id >= ih->data->node_count)
++ return;
++
++ /* node_count here already contains the final count */
++
++ if (id == ih->data->node_count-1)
++ ih->data->node_cache[id].node_handle = node_handle;
++ else
++ {
++ /* open space for the new id */
++ int remain_count = ih->data->node_count-id;
++ memmove(ih->data->node_cache+id+1, ih->data->node_cache+id, remain_count*sizeof(InodeData));
++ ih->data->node_cache[id].node_handle = node_handle;
++ }
++
++ ih->data->node_cache[id].userdata = NULL;
++}
++
++static void iTreeIncCacheMem(Ihandle* ih)
++{
++ /* node_count here already contains the final count */
++
++ if (ih->data->node_count+10 > ih->data->node_cache_max)
++ {
++ int old_node_cache_max = ih->data->node_cache_max;
++ ih->data->node_cache_max += 20;
++ ih->data->node_cache = realloc(ih->data->node_cache, ih->data->node_cache_max*sizeof(InodeData));
++ memset(ih->data->node_cache+old_node_cache_max, 0, 20*sizeof(InodeData));
++ }
++}
++
++void iupTreeAddToCache(Ihandle* ih, int add, int kindPrev, InodeHandle* prevNode, InodeHandle* node_handle)
++{
++ int new_id = 0;
++
++ ih->data->node_count++;
++
++ /* node_count here already contains the final count */
++ iTreeIncCacheMem(ih);
++
++ if (prevNode)
++ {
++ if (add || kindPrev == ITREE_LEAF)
++ {
++ /* ADD implies always that id=prev_id+1 */
++ /* INSERT after a leaf implies always that new_id=prev_id+1 */
++ int prev_id = iupTreeFindNodeId(ih, prevNode);
++ new_id = prev_id+1;
++ }
++ else
++ {
++ /* INSERT after a branch implies always that new_id=prev_id+1+child_count */
++ int prev_id = iupTreeFindNodeId(ih, prevNode);
++ int child_count = iupdrvTreeTotalChildCount(ih, prevNode);
++ new_id = prev_id+1+child_count;
++ }
++ }
++
++ iTreeAddToCache(ih, new_id, node_handle);
++ iupAttribSetInt(ih, "LASTADDNODE", new_id);
++}
++
++void iupTreeDelFromCache(Ihandle* ih, int id, int count)
++{
++ int remain_count;
++
++ /* id can be the last node, actually==node_count becase node_count is already updated */
++ iupASSERT(id >= 0 && id <= ih->data->node_count); 
++ if (id < 0 || id > ih->data->node_count)
++ return;
++
++ /* node_count here already contains the final count */
++
++ /* remove id+count */
++ remain_count = ih->data->node_count-id;
++ memmove(ih->data->node_cache+id, ih->data->node_cache+id+count, remain_count*sizeof(InodeData));
++
++ /* clear the remaining space */
++ memset(ih->data->node_cache+ih->data->node_count, 0, count*sizeof(InodeData));
++}
++
++void iupTreeCopyMoveCache(Ihandle* ih, int id_src, int id_dst, int count, int is_copy)
++{
++ int remain_count;
++
++ iupASSERT(id_src >= 0 && id_src < ih->data->node_count);
++ if (id_src < 0 || id_src >= ih->data->node_count)
++ return;
++
++ iupASSERT(id_dst >= 0 && id_dst < ih->data->node_count);
++ if (id_dst < 0 || id_dst >= ih->data->node_count)
++ return;
++
++ iupASSERT(id_dst < id_src || id_dst > id_src+count);
++ if (id_dst >= id_src && id_dst <= id_src+count)
++ return;
++
++ /* id_dst here points to the final position for a copy operation */
++
++ /* node_count here contains the final count for a copy operation */
++ iTreeIncCacheMem(ih);
++
++ /* add space for new nodes */
++ remain_count = ih->data->node_count - (id_dst + count);
++ memmove(ih->data->node_cache+id_dst+count, ih->data->node_cache+id_dst, remain_count*sizeof(InodeData));
++
++ /* compensate because we add space for new nodes */
++ if (id_src > id_dst)
++ id_src += count;
++
++ if (is_copy) 
++ {
++ /* during a copy, the userdata is not reused, so clear it */
++ memset(ih->data->node_cache+id_dst, 0, count*sizeof(InodeData));
++ }
++ else /* move = copy + delete */
++ {
++ /* copy userdata from src to dst */
++ memcpy(ih->data->node_cache+id_dst, ih->data->node_cache+id_src, count*sizeof(InodeData));
++
++ /* remove the src */
++ remain_count = ih->data->node_count - (id_src + count);
++ memmove(ih->data->node_cache+id_src, ih->data->node_cache+id_src+count, remain_count*sizeof(InodeData));
++
++ /* clear the remaining space */
++ memset(ih->data->node_cache+ih->data->node_count-count, 0, count*sizeof(InodeData));
++ }
++}
++
++
++/*************************************************************************/
++
++
+ char* iupTreeGetSpacingAttrib(Ihandle* ih)
+ {
+ char *str = iupStrGetMemory(50);
+@@ -221,8 +455,10 @@ static int iTreeSetMarkModeAttrib(Ihandle* ih, const char* value)
+ ih->data->mark_mode = ITREE_MARK_MULTIPLE; 
+ else 
+ ih->data->mark_mode = ITREE_MARK_SINGLE;
++
+ if (ih->handle)
+- iupdrvTreeUpdateMarkMode(ih);
++ iupdrvTreeUpdateMarkMode(ih); /* for this to work, must update during map */
++
+ return 0;
+ }
+ 
+@@ -290,7 +526,7 @@ static int iTreeSetShowDragDropAttrib(Ihandle* ih, const char* value)
+ 
+ static int iTreeSetAddLeafAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ iupdrvTreeAddNode(ih, name_id, ITREE_LEAF, value, 1);
+ return 0;
+@@ -298,7 +534,7 @@ static int iTreeSetAddLeafAttrib(Ihandle* ih, const char* name_id, const char* v
+ 
+ static int iTreeSetAddBranchAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ iupdrvTreeAddNode(ih, name_id, ITREE_BRANCH, value, 1);
+ return 0;
+@@ -306,7 +542,7 @@ static int iTreeSetAddBranchAttrib(Ihandle* ih, const char* name_id, const char*
+ 
+ static int iTreeSetInsertLeafAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ iupdrvTreeAddNode(ih, name_id, ITREE_LEAF, value, 0);
+ return 0;
+@@ -314,7 +550,7 @@ static int iTreeSetInsertLeafAttrib(Ihandle* ih, const char* name_id, const char
+ 
+ static int iTreeSetInsertBranchAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ iupdrvTreeAddNode(ih, name_id, ITREE_BRANCH, value, 0);
+ return 0;
+@@ -338,6 +574,74 @@ static int iTreeSetAddExpandedAttrib(Ihandle* ih, const char* value)
+ return 0;
+ }
+ 
++static char* iTreeGetCountAttrib(Ihandle* ih)
++{
++ char* str = iupStrGetMemory(10);
++ sprintf(str, "%d", ih->data->node_count);
++ return str;
++}
++
++static char* iTreeGetTotalChildCountAttrib(Ihandle* ih, const char* name_id)
++{
++ char* str;
++ InodeHandle* node_handle = iupTreeGetNodeFromString(ih, name_id);
++ if (!node_handle)
++ return NULL;
++
++ str = iupStrGetMemory(10);
++ sprintf(str, "%d", iupdrvTreeTotalChildCount(ih, node_handle));
++ return str;
++}
++
++
++static char* iTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id)
++{
++ int id;
++ char* str = (char*)(name_id+1); /* skip ':' */
++ void* userdata = NULL;
++ if (sscanf(str, "%p", &userdata)!=1)
++ return NULL;
++ id = iTreeFindUserDataId(ih, userdata);
++ if (id == -1)
++ return NULL;
++ str = iupStrGetMemory(16);
++ sprintf(str, "%d", id);
++ return str;
++}
++
++static char* iTreeGetUserDataAttrib(Ihandle* ih, const char* name_id)
++{
++ int id = iTreeGetIdFromString(name_id);
++ if (id >= 0 && id < ih->data->node_count)
++ return ih->data->node_cache[id].userdata;
++ else if (id == -2)
++ {
++ InodeHandle* node_handle = iupdrvTreeGetFocusNode(ih);
++ id = iupTreeFindNodeId(ih, node_handle);
++ if (id >= 0 && id < ih->data->node_count)
++ return ih->data->node_cache[id].userdata;
++ }
++ return NULL;
++}
++
++static int iTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value)
++{
++ int id = iTreeGetIdFromString(name_id);
++ if (id >= 0 && id < ih->data->node_count)
++ ih->data->node_cache[id].userdata = (void*)value;
++ else if (id == -2)
++ {
++ InodeHandle* node_handle = iupdrvTreeGetFocusNode(ih);
++ id = iupTreeFindNodeId(ih, node_handle);
++ if (id >= 0 && id < ih->data->node_count)
++ ih->data->node_cache[id].userdata = (void*)value;
++ }
++ return 0;
++}
++
++
++/*************************************************************************/
++
+ static int iTreeCreateMethod(Ihandle* ih, void **params)
+ {
+ (void)params;
+@@ -348,10 +652,20 @@ static int iTreeCreateMethod(Ihandle* ih, void **params)
+ IupSetAttribute(ih, "EXPAND", "YES");
+ 
+ ih->data->add_expanded = 1;
++ ih->data->node_cache_max = 20;
++ ih->data->node_cache = calloc(ih->data->node_cache_max, sizeof(InodeData));
+ 
+ return IUP_NOERROR;
+ }
+ 
++static void iTreeDestroyMethod(Ihandle* ih)
++{
++ if (ih->data->node_cache)
++ free(ih->data->node_cache);
++}
++
++/*************************************************************************/
++
+ Ihandle* IupTree(void)
+ {
+ return IupCreate("tree");
+@@ -371,15 +685,15 @@ Iclass* iupTreeGetClass(void)
+ /* Class functions */
+ ic->Create = iTreeCreateMethod;
+ ic->LayoutUpdate = iupdrvBaseLayoutUpdateMethod;
+- ic->UnMap = iupdrvBaseUnMapMethod;
++ ic->Destroy = iTreeDestroyMethod;
+ 
+ /* Callbacks */
+ iupClassRegisterCallback(ic, "SELECTION_CB", "ii");
+ iupClassRegisterCallback(ic, "MULTISELECTION_CB", "Ii");
++ iupClassRegisterCallback(ic, "MULTIUNSELECTION_CB", "Ii");
+ iupClassRegisterCallback(ic, "BRANCHOPEN_CB", "i");
+ iupClassRegisterCallback(ic, "BRANCHCLOSE_CB", "i");
+ iupClassRegisterCallback(ic, "EXECUTELEAF_CB", "i");
+- iupClassRegisterCallback(ic, "RENAMENODE_CB", "is");
+ iupClassRegisterCallback(ic, "SHOWRENAME_CB", "i");
+ iupClassRegisterCallback(ic, "RENAME_CB", "is");
+ iupClassRegisterCallback(ic, "DRAGDROP_CB", "iiii");
+@@ -392,9 +706,12 @@ Iclass* iupTreeGetClass(void)
+ iupBaseRegisterVisualAttrib(ic);
+ 
+ /* IupTree Attributes - GENERAL */
+- iupClassRegisterAttribute(ic, "SHOWDRAGDROP", iTreeGetShowDragDropAttrib, iTreeSetShowDragDropAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+- iupClassRegisterAttribute(ic, "SHOWRENAME", iTreeGetShowRenameAttrib, iTreeSetShowRenameAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+- iupClassRegisterAttribute(ic, "ADDEXPANDED", iTreeGetAddExpandedAttrib, iTreeSetAddExpandedAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "SHOWDRAGDROP", iTreeGetShowDragDropAttrib, iTreeSetShowDragDropAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "SHOWRENAME", iTreeGetShowRenameAttrib, iTreeSetShowRenameAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "ADDEXPANDED", iTreeGetAddExpandedAttrib, iTreeSetAddExpandedAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "COUNT", iTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "LASTADDNODE", NULL, NULL, IUPAF_SAMEASSYSTEM, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "ADDROOT", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);
+ 
+ /* IupTree Attributes - MARKS */
+ iupClassRegisterAttribute(ic, "CTRL", NULL, iTreeSetCtrlAttrib, NULL, NULL, IUPAF_NOT_MAPPED);
+@@ -406,6 +723,11 @@ Iclass* iupTreeGetClass(void)
+ iupClassRegisterAttributeId(ic, "ADDBRANCH", NULL, iTreeSetAddBranchAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "INSERTLEAF", NULL, iTreeSetInsertLeafAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "INSERTBRANCH", NULL, iTreeSetInsertBranchAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
++
++ /* IupTree Attributes - NODES */
++ iupClassRegisterAttributeId(ic, "TOTALCHILDCOUNT", iTreeGetTotalChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
++ iupClassRegisterAttributeId(ic, "FINDUSERDATA", iTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
++ iupClassRegisterAttributeId(ic, "USERDATA", iTreeGetUserDataAttrib, iTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
+ 
+ /* Default node images */
+ iTreeInitializeImages();
+@@ -415,18 +737,23 @@ Iclass* iupTreeGetClass(void)
+ return ic;
+ }
+ 
+-
+ /********************************************************************************************/
+ 
+-
+-void IupTreeSetAttribute(Ihandle* ih, const char* a, int id, char* v)
++void IupTreeSetAttribute(Ihandle* ih, const char* a, int id, const char* v)
+ {
+ char* attr = iupStrGetMemory(50);
+ sprintf(attr, "%s%d", a, id);
+ IupSetAttribute(ih, attr, v);
+ }
+ 
+-void IupTreeStoreAttribute(Ihandle* ih, const char* a, int id, char* v)
++void IupTreeSetAttributeHandle(Ihandle* ih, const char* a, int id, Ihandle* ih_named)
++{
++ char* attr = iupStrGetMemory(50);
++ sprintf(attr, "%s%d", a, id);
++ IupSetAttributeHandle(ih, attr, ih_named);
++}
++
++void IupTreeStoreAttribute(Ihandle* ih, const char* a, int id, const char* v)
+ {
+ char* attr = iupStrGetMemory(50);
+ sprintf(attr, "%s%d", a, id);
+@@ -454,7 +781,7 @@ float IupTreeGetFloat(Ihandle* ih, const char* a, int id)
+ return IupGetFloat(ih, attr);
+ }
+ 
+-void IupTreeSetfAttribute(Ihandle* ih, const char* a, int id, char* f, ...)
++void IupTreeSetfAttribute(Ihandle* ih, const char* a, int id, const char* f, ...)
+ {
+ static char v[SHRT_MAX];
+ char* attr = iupStrGetMemory(50);
+@@ -466,34 +793,40 @@ void IupTreeSetfAttribute(Ihandle* ih, const char* a, int id, char* f, ...)
+ IupStoreAttribute(ih, attr, v);
+ }
+ 
+-
+ /************************************************************************************/
+ 
+-
+ int IupTreeSetUserId(Ihandle* ih, int id, void* userdata)
+ {
+- char attr[30];
+- sprintf(attr,"USERDATA%d",id);
+- IupSetAttribute(ih, attr, userdata);
+- return IupGetAttribute(ih, attr)? 1: 0;
++ iupASSERT(iupObjectCheck(ih));
++ if (!iupObjectCheck(ih))
++ return 0;
++
++ if (id >= 0 && id < ih->data->node_count)
++ {
++ ih->data->node_cache[id].userdata = userdata;
++ return 1;
++ }
++
++ return 0;
+ }
+ 
+ int IupTreeGetId(Ihandle* ih, void *userdata)
+ {
+- int id = -1;
+- char* value;
+- char attr[30];
+- sprintf(attr,"FINDUSERDATA:%p",userdata);
+- value = IupGetAttribute(ih, attr);
+- if (!value) return -1;
++ iupASSERT(iupObjectCheck(ih));
++ if (!iupObjectCheck(ih))
++ return -1;
+ 
+- iupStrToInt(value, &id);
+- return id;
++ return iTreeFindUserDataId(ih, userdata);
+ }
+ 
+ void* IupTreeGetUserId(Ihandle* ih, int id)
+ {
+- char attr[30];
+- sprintf(attr,"USERDATA%d",id);
+- return IupGetAttribute(ih, attr);
++ iupASSERT(iupObjectCheck(ih));
++ if (!iupObjectCheck(ih))
++ return NULL;
++
++ if (id >= 0 && id < ih->data->node_count)
++ return ih->data->node_cache[id].userdata;
++
++ return NULL;
+ }
+diff --git a/iup/src/iup_tree.h b/iup/src/iup_tree.h
+index f96a698..44acc83 100755
+--- a/iup/src/iup_tree.h
++++ b/iup/src/iup_tree.h
+@@ -29,6 +29,36 @@ void iupdrvTreeUpdateMarkMode(Ihandle *ih);
+ 
+ char* iupTreeGetSpacingAttrib(Ihandle* ih);
+ 
++#if defined(GTK_MAJOR_VERSION)
++typedef void InodeHandle;
++#elif defined(XmVERSION)
++typedef struct _WidgetRec InodeHandle;
++#elif defined(WINVER)
++typedef struct _TREEITEM InodeHandle;
++#else
++typedef struct _InodeData InodeHandle;
++#endif
++
++typedef struct _InodeData
++{
++ InodeHandle* node_handle;
++ void* userdata;
++} InodeData;
++
++typedef int (*iupTreeNodeFunc)(Ihandle* ih, InodeHandle* node_handle, int id, void* userdata);
++int iupTreeForEach(Ihandle* ih, iupTreeNodeFunc func, void* userdata);
++InodeHandle* iupTreeGetNode(Ihandle* ih, int id);
++InodeHandle* iupTreeGetNodeFromString(Ihandle* ih, const char* name_id);
++int iupTreeFindNodeId(Ihandle* ih, InodeHandle* node_handle);
++
++InodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih);
++int iupdrvTreeTotalChildCount(Ihandle* ih, InodeHandle* node_handle);
++void iupTreeSelectLastCollapsedBranch(Ihandle* ih, int *last_id);
++
++void iupTreeDelFromCache(Ihandle* ih, int id, int count);
++void iupTreeAddToCache(Ihandle* ih, int add, int kindPrev, InodeHandle* prevNode, InodeHandle* node_handle);
++void iupTreeCopyMoveCache(Ihandle* ih, int id_src, int id_dst, int count, int is_copy);
++
+ /* Structure of the tree */
+ struct _IcontrolData
+ {
+@@ -36,6 +66,7 @@ struct _IcontrolData
+ add_expanded,
+ show_dragdrop,
+ show_rename,
++ stamp, /* GTK only */
+ spacing;
+ 
+ void* def_image_leaf; /* Default image leaf */
+@@ -44,9 +75,10 @@ struct _IcontrolData
+ 
+ void* def_image_leaf_mask; /* Motif Only */
+ void* def_image_collapsed_mask; 
+- void* def_image_expanded_mask; 
++ void* def_image_expanded_mask; 
+ 
+- int id_control; /* auxiliary variable for computing or finding the id of a node */
++ InodeData *node_cache;
++ int node_cache_max, node_count;
+ };
+ 
+ 
+diff --git a/iup/src/iup_vbox.c b/iup/src/iup_vbox.c
+index f71aa51..23e8e3a 100755
+--- a/iup/src/iup_vbox.c
++++ b/iup/src/iup_vbox.c
+@@ -215,6 +215,13 @@ static void iVboxSetChildrenCurrentSizeMethod(Ihandle* ih, int shrink)
+ else
+ {
+ int empty = (child->expand & IUP_EXPAND_H1)? empty_h1: ((child->expand & IUP_EXPAND_H0)? empty_h0: 0);
++ char* weigth_str = iupAttribGet(child, "EXPANDWEIGTH");
++ if (weigth_str)
++ {
++ float weigth; 
++ if (iupStrToFloat(weigth_str, &weigth))
++ empty = iupROUND(empty * weigth);
++ }
+ iupBaseSetCurrentSize(child, client_width, child->naturalheight+empty, shrink);
+ }
+ 
+diff --git a/iup/src/iup_zbox.c b/iup/src/iup_zbox.c
+index 3f79892..dd4a0e4 100755
+--- a/iup/src/iup_zbox.c
++++ b/iup/src/iup_zbox.c
+@@ -210,7 +210,7 @@ static int iZboxSetVisibleAttrib(Ihandle* ih, const char* value)
+ {
+ if (iupObjectCheck(ih->data->value_handle))
+ IupSetAttribute(ih->data->value_handle, "VISIBLE", (char*)value);
+- return 0;
++ return 1; /* must be 1 to mark when set at the element */
+ }
+ 
+ static void iZboxComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *expand)
+@@ -368,8 +368,8 @@ Iclass* iupZboxGetClass(void)
+ iupClassRegisterAttribute(ic, "VALUEPOS", iZboxGetValuePosAttrib, iZboxSetValuePosAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "VALUE_HANDLE", NULL, iZboxSetValueHandleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);
+ 
+- /* Intercept VISIBLE since ZBOX works showing and hidding its children */
+- iupClassRegisterAttribute(ic, "VISIBLE", NULL, iZboxSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
++ /* Intercept VISIBLE since ZBOX works by showing and hidding its children */
++ iupClassRegisterAttribute(ic, "VISIBLE", NULL, iZboxSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED);
+ 
+ return ic;
+ }
+diff --git a/iup/src/make_uname b/iup/src/make_uname
+index 7fec9f8..6542234 100755
+--- a/iup/src/make_uname
++++ b/iup/src/make_uname
+@@ -1,4 +1,4 @@
+ #This builds all the libraries of the folder for 1 uname
+ 
+-tecmake $1 $2 $3 $4 $5 $6 $7
++tecmake USE_MOTIF=Yes $1 $2 $3 $4 $5 $6 $7
+ tecmake USE_GTK=Yes $1 $2 $3 $4 $5 $6 $7
+diff --git a/iup/src/mot/iupmot_button.c b/iup/src/mot/iupmot_button.c
+index 2d93588..f6e383f 100755
+--- a/iup/src/mot/iupmot_button.c
++++ b/iup/src/mot/iupmot_button.c
+@@ -112,8 +112,10 @@ static int motButtonSetPaddingAttrib(Ihandle* ih, const char* value)
+ {
+ XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding,
+ XmNmarginWidth, ih->data->horiz_padding, NULL);
++ return 0;
+ }
+- return 0;
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int motButtonSetBgColorAttrib(Ihandle* ih, const char* value)
+@@ -189,43 +191,43 @@ static int motButtonMapMethod(Ihandle* ih)
+ if (value)
+ {
+ ih->data->type = IUP_BUTTON_IMAGE;
+- iupmotSetArg(args, num_args, XmNlabelType, XmPIXMAP);
++ iupMOT_SETARG(args, num_args, XmNlabelType, XmPIXMAP);
+ }
+ else
+ {
+ ih->data->type = IUP_BUTTON_TEXT;
+- iupmotSetArg(args, num_args, XmNlabelType, XmSTRING);
++ iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING);
+ }
+ 
+ /* Core */
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ /* Label */
+- iupmotSetArg(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */
+- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+- iupmotSetArg(args, num_args, XmNmarginTop, 0); /* no extra margins */
+- iupmotSetArg(args, num_args, XmNmarginLeft, 0);
+- iupmotSetArg(args, num_args, XmNmarginBottom, 0);
+- iupmotSetArg(args, num_args, XmNmarginRight, 0);
++ iupMOT_SETARG(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginTop, 0); /* no extra margins */
++ iupMOT_SETARG(args, num_args, XmNmarginLeft, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginBottom, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginRight, 0);
+ /* PushButton */
+- iupmotSetArg(args, num_args, XmNfillOnArm, False);
++ iupMOT_SETARG(args, num_args, XmNfillOnArm, False);
+ 
+ /* Primitive */
+ if (iupAttribGetBoolean(ih, "FOCUSONCLICK"))
+ {
+ if (iupAttribGetBoolean(ih, "CANFOCUS"))
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
+ else
+- iupmotSetArg(args, num_args, XmNtraversalOn, False);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
+ }
+ else
+- iupmotSetArg(args, num_args, XmNtraversalOn, False);
+- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
+- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
++ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
+ 
+ ih->handle = XtCreateManagedWidget(
+ iupDialogGetChildIdStr(ih), /* child identifier */
+diff --git a/iup/src/mot/iupmot_canvas.c b/iup/src/mot/iupmot_canvas.c
+index 7777cf3..299bbcd 100755
+--- a/iup/src/mot/iupmot_canvas.c
++++ b/iup/src/mot/iupmot_canvas.c
+@@ -434,6 +434,10 @@ static void motCanvasLayoutUpdateMethod(Ihandle *ih)
+ 
+ XtVaGetValues(sb_win, XmNborderWidth, &border, NULL);
+ 
++ /* avoid abort in X */
++ if (ih->currentwidth <= 2*border) ih->currentwidth = 2*border+1;
++ if (ih->currentheight <= 2*border) ih->currentheight = 2*border+1;
++
+ XtVaSetValues(sb_win,
+ XmNx, (XtArgVal)ih->x,
+ XmNy, (XtArgVal)ih->y,
+@@ -458,19 +462,19 @@ static int motCanvasMapMethod(Ihandle* ih)
+ /* Create the scrolled window */
+ /******************************/
+ 
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+- iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);
+- iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE);
+- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and draw area */
+- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);
++ iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE);
++ iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and draw area */
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
+ 
+ if (iupAttribGetBoolean(ih, "BORDER"))
+ {
+- iupmotSetArg(args, num_args, XmNborderWidth, 1);
+- iupmotSetArg(args, num_args, XmNborderColor, iupmotColorGetPixelStr("0 0 0"));
++ iupMOT_SETARG(args, num_args, XmNborderWidth, 1);
++ iupMOT_SETARG(args, num_args, XmNborderColor, iupmotColorGetPixelStr("0 0 0"));
+ }
+ else
+- iupmotSetArg(args, num_args, XmNborderWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNborderWidth, 0);
+ 
+ sb_win = XtCreateManagedWidget(
+ iupDialogGetChildIdStr(ih), /* child identifier */
+@@ -488,36 +492,36 @@ static int motCanvasMapMethod(Ihandle* ih)
+ /****************************/
+ 
+ num_args = 0;
+- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* no shadow margins */
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0); /* no shadow margins */
+- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
+- iupmotSetArg(args, num_args, XmNresizePolicy, XmRESIZE_NONE); /* no automatic resize of children */
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* no shadow margins */
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); /* no shadow margins */
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNresizePolicy, XmRESIZE_NONE); /* no automatic resize of children */
+ if (ih->iclass->is_interactive)
+ {
+- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); /* include in navigation */
++ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); /* include in navigation */
+ 
+ if (iupAttribGetBoolean(ih, "CANFOCUS"))
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
+ else
+- iupmotSetArg(args, num_args, XmNtraversalOn, False);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
+ }
+ else
+ {
+- iupmotSetArg(args, num_args, XmNnavigationType, XmNONE);
+- iupmotSetArg(args, num_args, XmNtraversalOn, False);
++ iupMOT_SETARG(args, num_args, XmNnavigationType, XmNONE);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
+ }
+ 
+- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ 
+ visual = IupGetAttribute(ih, "VISUAL"); /* defined by the OpenGL Canvas or NULL */
+ if (visual)
+ {
+ Colormap colormap = (Colormap)iupAttribGet(ih, "COLORMAP");
+ if (colormap)
+- iupmotSetArg(args, num_args, XmNcolormap,colormap);
++ iupMOT_SETARG(args, num_args, XmNcolormap,colormap);
+ 
+ iupmotDialogSetVisual(ih, visual);
+ }
+diff --git a/iup/src/mot/iupmot_common.c b/iup/src/mot/iupmot_common.c
+index 7b3f8b7..286e075 100755
+--- a/iup/src/mot/iupmot_common.c
++++ b/iup/src/mot/iupmot_common.c
+@@ -167,6 +167,10 @@ void iupdrvBaseLayoutUpdateMethod(Ihandle *ih)
+ Widget widget = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT");
+ if (!widget) widget = ih->handle;
+ 
++ /* avoid abort in X */
++ if (ih->currentwidth == 0) ih->currentwidth = 1;
++ if (ih->currentheight == 0) ih->currentheight = 1;
++
+ XtVaSetValues(widget,
+ XmNx, (XtArgVal)ih->x,
+ XmNy, (XtArgVal)ih->y,
+@@ -184,7 +188,7 @@ void iupdrvBaseUnMapMethod(Ihandle* ih)
+ XtDestroyWidget(widget); /* To match the call to XtCreateManagedWidget */
+ }
+ 
+-void iupdrvDisplayUpdate(Ihandle *ih)
++void iupdrvPostRedraw(Ihandle *ih)
+ {
+ XExposeEvent evt;
+ Dimension w, h;
+@@ -209,12 +213,12 @@ void iupdrvDisplayUpdate(Ihandle *ih)
+ XSendEvent(iupmot_display, XtWindow(ih->handle), False, ExposureMask, (XEvent*)&evt);
+ }
+ 
+-void iupdrvDisplayRedraw(Ihandle *ih)
++void iupdrvRedrawNow(Ihandle *ih)
+ {
+ Widget w;
+ 
+ /* POST a Redraw */
+- iupdrvDisplayUpdate(ih);
++ iupdrvPostRedraw(ih);
+ 
+ /* if this element has an inner native parent (like IupTabs), 
+ then redraw that native parent if different from the element. */
+@@ -223,7 +227,7 @@ void iupdrvDisplayRedraw(Ihandle *ih)
+ {
+ Widget handle = ih->handle;
+ ih->handle = w;
+- iupdrvDisplayUpdate(ih);
++ iupdrvPostRedraw(ih);
+ ih->handle = handle;
+ }
+ 
+@@ -276,10 +280,11 @@ int iupdrvBaseSetZorderAttrib(Ihandle* ih, const char* value)
+ {
+ if (iupdrvIsVisible(ih))
+ {
++ Widget widget = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT");
+ if (iupStrEqualNoCase(value, "TOP"))
+- XRaiseWindow(iupmot_display, XtWindow(ih->handle));
++ XRaiseWindow(iupmot_display, XtWindow(widget));
+ else
+- XLowerWindow(iupmot_display, XtWindow(ih->handle));
++ XLowerWindow(iupmot_display, XtWindow(widget));
+ }
+ 
+ return 0;
+@@ -455,9 +460,11 @@ static Cursor motGetCursor(Ihandle* ih, const char* name)
+ { "RESIZE_N", XC_top_side},
+ { "RESIZE_S", XC_bottom_side},
+ { "RESIZE_NS", XC_sb_v_double_arrow},
++ { "SPLITTER_HORIZ", XC_sb_v_double_arrow},
+ { "RESIZE_W", XC_left_side},
+ { "RESIZE_E", XC_right_side},
+ { "RESIZE_WE", XC_sb_h_double_arrow},
++ { "SPLITTER_VERT", XC_sb_h_double_arrow},
+ { "RESIZE_NE", XC_top_right_corner},
+ { "RESIZE_SE", XC_bottom_right_corner},
+ { "RESIZE_NW", XC_top_left_corner},
+diff --git a/iup/src/mot/iupmot_dialog.c b/iup/src/mot/iupmot_dialog.c
+index 4eeb834..7a27d74 100755
+--- a/iup/src/mot/iupmot_dialog.c
++++ b/iup/src/mot/iupmot_dialog.c
+@@ -134,12 +134,13 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
+ static int native_border = 0;
+ static int native_caption = 0;
+ 
+- int has_caption = iupAttribGetBoolean(ih, "MAXBOX") ||
+- iupAttribGetBoolean(ih, "MINBOX") ||
+- iupAttribGetBoolean(ih, "MENUBOX") || 
+- IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */
++ int has_titlebar = iupAttribGetBoolean(ih, "RESIZE") || /* GTK and Motif only */
++ iupAttribGetBoolean(ih, "MAXBOX") ||
++ iupAttribGetBoolean(ih, "MINBOX") ||
++ iupAttribGetBoolean(ih, "MENUBOX") || 
++ IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */
+ 
+- int has_border = has_caption ||
++ int has_border = has_titlebar ||
+ iupAttribGetBoolean(ih, "RESIZE") ||
+ iupAttribGetBoolean(ih, "BORDER");
+ 
+@@ -155,7 +156,7 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
+ *border = win_border;
+ 
+ *caption = 0;
+- if (has_caption)
++ if (has_titlebar)
+ *caption = win_caption;
+ 
+ if (!native_border && *border)
+@@ -181,7 +182,7 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
+ }
+ 
+ *caption = 0;
+- if (has_caption)
++ if (has_titlebar)
+ {
+ if (native_caption)
+ *caption = native_caption;
+@@ -853,6 +854,7 @@ static int motDialogMapMethod(Ihandle* ih)
+ InativeHandle* parent;
+ int mwm_decor = 0;
+ int num_args = 0;
++ int has_titlebar = 0;
+ Arg args[20];
+ 
+ if (iupAttribGetBoolean(ih, "DIALOGFRAME")) 
+@@ -867,32 +869,46 @@ static int motDialogMapMethod(Ihandle* ih)
+ /****************************/
+ 
+ if (iupAttribGet(ih, "TITLE"))
+- mwm_decor |= MWM_DECOR_TITLE;
++ has_titlebar = 1;
+ if (iupAttribGetBoolean(ih, "MENUBOX"))
+- mwm_decor |= MWM_DECOR_MENU;
++ {
++ mwm_decor |= MWM_DECOR_MENU;
++ has_titlebar = 1;
++ }
+ if (iupAttribGetBoolean(ih, "MINBOX"))
+- mwm_decor |= MWM_DECOR_MINIMIZE;
++ {
++ mwm_decor |= MWM_DECOR_MINIMIZE;
++ has_titlebar = 1;
++ }
+ if (iupAttribGetBoolean(ih, "MAXBOX"))
+- mwm_decor |= MWM_DECOR_MAXIMIZE;
++ {
++ mwm_decor |= MWM_DECOR_MAXIMIZE;
++ has_titlebar = 1;
++ }
+ if (iupAttribGetBoolean(ih, "RESIZE"))
+- mwm_decor |= MWM_DECOR_RESIZEH;
+- if (iupAttribGetBoolean(ih, "BORDER"))
+- mwm_decor |= MWM_DECOR_BORDER;
+-
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* so XtRealizeWidget will not show the dialog */
+- iupmotSetArg(args, num_args, XmNdeleteResponse, XmDO_NOTHING);
+- iupmotSetArg(args, num_args, XmNallowShellResize, True); /* Used so the BulletinBoard can control the shell size */
+- iupmotSetArg(args, num_args, XmNtitle, "");
+- iupmotSetArg(args, num_args, XmNvisual, iupmot_visual);
++ {
++ mwm_decor |= MWM_DECOR_RESIZEH;
++ mwm_decor |= MWM_DECOR_BORDER; /* has_border */
++ }
++ if (has_titlebar)
++ mwm_decor |= MWM_DECOR_TITLE;
++ if (iupAttribGetBoolean(ih, "BORDER") || has_titlebar) 
++ mwm_decor |= MWM_DECOR_BORDER; /* has_border */
++
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* so XtRealizeWidget will not show the dialog */
++ iupMOT_SETARG(args, num_args, XmNdeleteResponse, XmDO_NOTHING);
++ iupMOT_SETARG(args, num_args, XmNallowShellResize, True); /* Used so the BulletinBoard can control the shell size */
++ iupMOT_SETARG(args, num_args, XmNtitle, "");
++ iupMOT_SETARG(args, num_args, XmNvisual, iupmot_visual);
+ 
+ if (iupmotColorMap()) 
+- iupmotSetArg(args, num_args, XmNcolormap, iupmotColorMap());
++ iupMOT_SETARG(args, num_args, XmNcolormap, iupmotColorMap());
+ 
+ if (mwm_decor != 0x7E) 
+- iupmotSetArg(args, num_args, XmNmwmDecorations, mwm_decor);
++ iupMOT_SETARG(args, num_args, XmNmwmDecorations, mwm_decor);
+ 
+ if (iupAttribGetBoolean(ih, "SAVEUNDER"))
+- iupmotSetArg(args, num_args, XmNsaveUnder, True);
++ iupMOT_SETARG(args, num_args, XmNsaveUnder, True);
+ 
+ parent = iupDialogGetNativeParent(ih);
+ if (parent)
+diff --git a/iup/src/mot/iupmot_drv.h b/iup/src/mot/iupmot_drv.h
+index 8a536ef..424ae9f 100755
+--- a/iup/src/mot/iupmot_drv.h
++++ b/iup/src/mot/iupmot_drv.h
+@@ -65,7 +65,7 @@ void iupmotGetWindowSize(Ihandle *ih, int *width, int *height);
+ 
+ char* iupmotGetXWindowAttrib(Ihandle *ih);
+ 
+-#define iupmotSetArg(_a, _i, _n, _d) ((_a)[(_i)].name = (_n), (_a)[(_i)].value = (XtArgVal)(_d), (_i)++)
++#define iupMOT_SETARG(_a, _i, _n, _d) ((_a)[(_i)].name = (_n), (_a)[(_i)].value = (XtArgVal)(_d), (_i)++)
+ 
+ 
+ #ifdef __cplusplus
+diff --git a/iup/src/mot/iupmot_filedlg.c b/iup/src/mot/iupmot_filedlg.c
+index 768dd2b..0be6319 100755
+--- a/iup/src/mot/iupmot_filedlg.c
++++ b/iup/src/mot/iupmot_filedlg.c
+@@ -17,6 +17,7 @@
+ #include <Xm/DrawingA.h>
+ #include <Xm/PushB.h>
+ #include <Xm/Frame.h>
++#include <Xm/List.h>
+ 
+ #include "iup.h"
+ #include "iupcbs.h"
+@@ -28,6 +29,7 @@
+ #include "iup_dialog.h"
+ #include "iup_strmessage.h"
+ #include "iup_drvinfo.h"
++#include "iup_array.h"
+ 
+ #include "iupmot_drv.h"
+ 
+@@ -87,14 +89,14 @@ static int motFileDlgCheckValue(Ihandle* ih, Widget w)
+ return 0;
+ }
+ }
+- else
++ else if (!iupAttribGetBoolean(ih, "MULTIPLEFILES"))
+ {
+ if (iupdrvIsDirectory(value)) /* selected a directory */
+ {
+ iupStrMessageShowError(ih, "IUP_INVALIDDIR");
+ return 0;
+ }
+- else if (!iupdrvIsFile(value)) /* new file */
++ else if (!iupdrvIsFile(value)) /* not a file == new file */
+ {
+ value = iupAttribGet(ih, "ALLOWNEW");
+ if (!value)
+@@ -132,6 +134,51 @@ static void motFileDlgCBclose(Widget w, XtPointer client_data, XtPointer call_da
+ iupAttribSetStr(ih, "_IUP_WM_DELETE", "1");
+ }
+ 
++static int motFileDlgGetMultipleFiles(Ihandle* ih, const char* dir, Widget wList)
++{
++ int *pos, sel_count, dir_len;
++ int i, len, cur_len;
++ char *filename, *all_names;
++ Iarray* names_array;
++ XmString* items;
++
++ if (!XmListGetSelectedPos(wList, &pos, &sel_count))
++ return 0;
++
++ names_array = iupArrayCreate(1024, 1); /* just set an initial size, but count is 0 */
++ XtVaGetValues(wList, XmNitems, &items, NULL);
++
++ cur_len = strlen(dir);
++
++ all_names = iupArrayAdd(names_array, cur_len+1);
++ memcpy(all_names, dir, cur_len);
++ all_names[cur_len] = '|';
++ dir_len = cur_len;
++ cur_len++; /* skip separator */
++
++ for (i = 0; i<sel_count; i++)
++ {
++ filename = iupmotConvertString(items[pos[i]-1]); /* XmListGetSelectedPos starts at 1 */
++ len = strlen(filename)-dir_len;
++
++ cur_len = iupArrayCount(names_array);
++ all_names = iupArrayAdd(names_array, len+1);
++ memcpy(all_names+cur_len, filename+dir_len, len);
++ all_names[cur_len+len] = '|';
++ }
++
++ XtFree((char*)pos);
++
++ cur_len = iupArrayCount(names_array);
++ all_names = iupArrayInc(names_array);
++ all_names[cur_len+1] = 0;
++
++ iupAttribStoreStr(ih, "VALUE", all_names);
++
++ iupArrayDestroy(names_array);
++ return 1;
++}
++
+ static void motFileDlgCallback(Widget w, Ihandle* ih, XmFileSelectionBoxCallbackStruct* call_data)
+ {
+ (void)w;
+@@ -151,14 +198,38 @@ static void motFileDlgCallback(Widget w, Ihandle* ih, XmFileSelectionBoxCallback
+ iupAttribSetStr(ih, "STATUS", "0");
+ iupAttribSetStr(ih, "FILEEXIST", NULL);
+ }
++ else if (iupAttribGetBoolean(ih, "MULTIPLEFILES"))
++ {
++ Widget wList = XmFileSelectionBoxGetChild(w, XmDIALOG_LIST);
++
++ /* VALUE obtained above contains exactly the DIRECTORY */
++ char* dir = iupAttribGet(ih, "VALUE");
++ int len = strlen(dir);
++ if (dir[len-1]=='/') dir[len-1] = 0; /* remove last '/' */
++ iupAttribStoreStr(ih, "DIRECTORY", dir);
++
++ if (!motFileDlgGetMultipleFiles(ih, iupAttribGet(ih, "DIRECTORY"), wList))
++ {
++ iupStrMessageShowError(ih, "IUP_FILENOTEXIST");
++ return;
++ }
++
++ iupAttribSetStr(ih, "STATUS", "0");
++ iupAttribSetStr(ih, "FILEEXIST", "YES");
++ }
+ else
+ {
+ IFnss file_cb = (IFnss)IupGetCallback(ih, "FILE_CB");
+- if (file_cb && file_cb(ih, iupAttribGet(ih, "VALUE"), "OK") == IUP_IGNORE)
++ filename = iupAttribGet(ih, "VALUE");
++ if (file_cb && file_cb(ih, filename, "OK") == IUP_IGNORE)
+ return;
+ 
+- if (iupdrvIsFile(iupAttribGet(ih, "VALUE"))) /* check if file exists */
++ if (iupdrvIsFile(filename)) /* check if file exists */
+ {
++ char* dir = iupStrFileGetPath(filename);
++ iupAttribStoreStr(ih, "DIRECTORY", dir);
++ free(dir);
++
+ iupAttribSetStr(ih, "FILEEXIST", "YES");
+ iupAttribSetStr(ih, "STATUS", "0");
+ }
+@@ -188,9 +259,8 @@ static void motFileDlgCallback(Widget w, Ihandle* ih, XmFileSelectionBoxCallback
+ }
+ }
+ 
+-static void motFileDlgHelpCallback(Widget w, XtPointer client_data, XtPointer call_data)
++static void motFileDlgHelpCallback(Widget w, Ihandle *ih, XtPointer call_data)
+ {
+- Ihandle *ih = (Ihandle*)client_data;
+ Icallback cb = IupGetCallback(ih, "HELP_CB");
+ if (cb && cb(ih) == IUP_CLOSE)
+ {
+@@ -340,14 +410,15 @@ static void motFileDlgPreviewCanvasExposeCallback(Widget w, Ihandle *ih, XtPoint
+ static void motFileDlgBrowseSelectionCallback(Widget w, Ihandle* ih, XmListCallbackStruct* list_data)
+ {
+ char* filename;
++ IFnss cb;
+ 
+ XmStringGetLtoR(list_data->item, XmSTRING_DEFAULT_CHARSET, &filename);
+ 
++ cb = (IFnss)IupGetCallback(ih, "FILE_CB");
+ if (iupdrvIsFile(filename))
+- {
+- IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");
+ cb(ih, filename, "SELECT");
+- }
++ else
++ cb(ih, filename, "OTHER");
+ 
+ XtFree(filename);
+ (void)w;
+@@ -417,6 +488,13 @@ static int motFileDlgPopup(Ihandle* ih, int x, int y)
+ if (dialogtype == IUP_DIALOGDIR)
+ XtVaSetValues(filebox, XmNfileTypeMask, XmFILE_DIRECTORY, NULL);
+ 
++ if (iupAttribGetBoolean(ih, "MULTIPLEFILES"))
++ {
++ Widget wList = XmFileSelectionBoxGetChild(filebox, XmDIALOG_LIST);
++ XtVaSetValues(wList, XmNselectionPolicy, XmEXTENDED_SELECT, NULL);
++ XtAddCallback(wList, XmNextendedSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih);
++ }
++
+ /* just check for the path inside FILE */
+ value = iupAttribGet(ih, "FILE");
+ if (value && value[0] == '/')
+@@ -501,8 +579,10 @@ static int motFileDlgPopup(Ihandle* ih, int x, int y)
+ file_cb = (IFnss)IupGetCallback(ih, "FILE_CB");
+ if (file_cb)
+ {
+- Widget file_list = XmFileSelectionBoxGetChild(filebox, XmDIALOG_LIST);
+- XtAddCallback(file_list, XmNbrowseSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih);
++ Widget list = XmFileSelectionBoxGetChild(filebox, XmDIALOG_LIST);
++ XtAddCallback(list, XmNbrowseSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih);
++ list = XmFileSelectionBoxGetChild(filebox, XmDIALOG_DIR_LIST);
++ XtAddCallback(list, XmNbrowseSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih);
+ 
+ if (iupAttribGetBoolean(ih, "SHOWPREVIEW"))
+ {
+@@ -575,4 +655,6 @@ static int motFileDlgPopup(Ihandle* ih, int x, int y)
+ void iupdrvFileDlgInitClass(Iclass* ic)
+ {
+ ic->DlgPopup = motFileDlgPopup;
++
++ iupClassRegisterAttribute(ic, "MULTIPLEFILES", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT);
+ }
+diff --git a/iup/src/mot/iupmot_font.c b/iup/src/mot/iupmot_font.c
+index 8da06dd..42154b6 100755
+--- a/iup/src/mot/iupmot_font.c
++++ b/iup/src/mot/iupmot_font.c
+@@ -135,19 +135,19 @@ static XmFontList motFontCreateRenderTable(XFontStruct* fontstruct, int is_under
+ Arg args[10];
+ int num_args = 0;
+ 
+- iupmotSetArg(args, num_args, XmNfontType, XmFONT_IS_FONT);
+- iupmotSetArg(args, num_args, XmNfont, (XtPointer)fontstruct);
+- iupmotSetArg(args, num_args, XmNloadModel, XmLOAD_IMMEDIATE);
++ iupMOT_SETARG(args, num_args, XmNfontType, XmFONT_IS_FONT);
++ iupMOT_SETARG(args, num_args, XmNfont, (XtPointer)fontstruct);
++ iupMOT_SETARG(args, num_args, XmNloadModel, XmLOAD_IMMEDIATE);
+ 
+ if (is_underline)
+- iupmotSetArg(args, num_args, XmNunderlineType, XmSINGLE_LINE);
++ iupMOT_SETARG(args, num_args, XmNunderlineType, XmSINGLE_LINE);
+ else
+- iupmotSetArg(args, num_args, XmNunderlineType, XmNO_LINE);
++ iupMOT_SETARG(args, num_args, XmNunderlineType, XmNO_LINE);
+ 
+ if (is_strikeout)
+- iupmotSetArg(args, num_args, XmNstrikethruType, XmSINGLE_LINE);
++ iupMOT_SETARG(args, num_args, XmNstrikethruType, XmSINGLE_LINE);
+ else
+- iupmotSetArg(args, num_args, XmNstrikethruType, XmNO_LINE);
++ iupMOT_SETARG(args, num_args, XmNstrikethruType, XmNO_LINE);
+ 
+ rendition = XmRenditionCreate(NULL, "", args, num_args);
+ 
+diff --git a/iup/src/mot/iupmot_frame.c b/iup/src/mot/iupmot_frame.c
+index 39de5d8..cfda44f 100755
+--- a/iup/src/mot/iupmot_frame.c
++++ b/iup/src/mot/iupmot_frame.c
+@@ -42,22 +42,33 @@ static int motFrameSetBgColorAttrib(Ihandle* ih, const char* value)
+ {
+ Pixel color;
+ 
+- /* ignore given value, must use only from parent */
+- value = iupBaseNativeParentGetBgColor(ih);
++ if (!iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
++ {
++ /* ignore given value, must use only from parent */
++ value = iupBaseNativeParentGetBgColor(ih);
++ }
+ 
+ color = iupmotColorGetPixelStr(value);
+ if (color != (Pixel)-1)
+ {
+ Widget title_label, child_manager;
+ 
+- iupmotSetBgColor(ih->handle, color);
++ if (!iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
++ {
++ iupmotSetBgColor(ih->handle, color);
+ 
+- child_manager = XtNameToWidget(ih->handle, "*child_manager");
+- iupmotSetBgColor(child_manager, color);
++ child_manager = XtNameToWidget(ih->handle, "*child_manager");
++ iupmotSetBgColor(child_manager, color);
+ 
+- title_label = XtNameToWidget(ih->handle, "*title_label");
+- if (!title_label) return 1;
+- iupmotSetBgColor(title_label, color);
++ title_label = XtNameToWidget(ih->handle, "*title_label");
++ if (!title_label) return 1;
++ iupmotSetBgColor(title_label, color);
++ }
++ else
++ {
++ child_manager = XtNameToWidget(ih->handle, "*child_manager");
++ iupmotSetBgColor(child_manager, color);
++ }
+ 
+ return 1;
+ }
+@@ -171,22 +182,25 @@ static int motFrameMapMethod(Ihandle* ih)
+ {
+ char* value = iupAttribGetStr(ih, "SUNKEN");
+ if (iupStrBoolean(value))
+- iupmotSetArg(args, num_args, XmNshadowType, XmSHADOW_IN); 
++ iupMOT_SETARG(args, num_args, XmNshadowType, XmSHADOW_IN); 
+ else
+- iupmotSetArg(args, num_args, XmNshadowType, XmSHADOW_ETCHED_IN); 
++ iupMOT_SETARG(args, num_args, XmNshadowType, XmSHADOW_ETCHED_IN); 
++
++ if (iupAttribGet(ih, "BGCOLOR"))
++ iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1");
+ }
+ 
+ /* Core */
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ /* Manager */
+- iupmotSetArg(args, num_args, XmNshadowThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);
+ /* Frame */
+- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* no shadow margins */
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0); /* no shadow margins */
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* no shadow margins */
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); /* no shadow margins */
+ 
+ ih->handle = XtCreateManagedWidget(
+ iupDialogGetChildIdStr(ih), /* child identifier */
+@@ -204,11 +218,11 @@ static int motFrameMapMethod(Ihandle* ih)
+ Widget title_label;
+ num_args = 0;
+ /* Label */
+- iupmotSetArg(args, num_args, XmNlabelType, XmSTRING); 
+- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING); 
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
+ /* Frame Constraint */
+- iupmotSetArg(args, num_args, XmNchildType, XmFRAME_TITLE_CHILD);
++ iupMOT_SETARG(args, num_args, XmNchildType, XmFRAME_TITLE_CHILD);
+ title_label = XtCreateManagedWidget("title_label", xmLabelWidgetClass, ih->handle, args, num_args);
+ iupmotSetString(title_label, XmNlabelString, title);
+ }
+diff --git a/iup/src/mot/iupmot_key.c b/iup/src/mot/iupmot_key.c
+index 835b5d7..9897741 100755
+--- a/iup/src/mot/iupmot_key.c
++++ b/iup/src/mot/iupmot_key.c
+@@ -393,33 +393,33 @@ void iupmotKeyPressEvent(Widget w, Ihandle *ih, XEvent *evt, Boolean *cont)
+ void iupmotButtonKeySetStatus(unsigned int state, unsigned int but, char* status, int doubleclick)
+ {
+ if (state & ShiftMask)
+- iupKEYSETSHIFT(status);
++ iupKEY_SETSHIFT(status);
+ 
+ if (state & ControlMask)
+- iupKEYSETCONTROL(status); 
++ iupKEY_SETCONTROL(status); 
+ 
+ if ((state & Button1Mask) || but==Button1)
+- iupKEYSETBUTTON1(status);
++ iupKEY_SETBUTTON1(status);
+ 
+ if ((state & Button2Mask) || but==Button2)
+- iupKEYSETBUTTON2(status);
++ iupKEY_SETBUTTON2(status);
+ 
+ if ((state & Button3Mask) || but==Button3)
+- iupKEYSETBUTTON3(status);
++ iupKEY_SETBUTTON3(status);
+ 
+ if ((state & Button4Mask) || but==Button4)
+- iupKEYSETBUTTON4(status);
++ iupKEY_SETBUTTON4(status);
+ 
+ if ((state & Button5Mask) || but==Button5)
+- iupKEYSETBUTTON5(status);
++ iupKEY_SETBUTTON5(status);
+ 
+ if (state & Mod1Mask || state & Mod5Mask) /* Alt */
+- iupKEYSETALT(status);
++ iupKEY_SETALT(status);
+ 
+ if (state & Mod4Mask) /* Apple/Win */
+- iupKEYSETSYS(status);
++ iupKEY_SETSYS(status);
+ 
+ if (doubleclick)
+- iupKEYSETDOUBLE(status);
++ iupKEY_SETDOUBLE(status);
+ }
+ 
+diff --git a/iup/src/mot/iupmot_label.c b/iup/src/mot/iupmot_label.c
+index 52dfc9a..afff3c3 100755
+--- a/iup/src/mot/iupmot_label.c
++++ b/iup/src/mot/iupmot_label.c
+@@ -147,8 +147,10 @@ static int motLabelSetPaddingAttrib(Ihandle* ih, const char* value)
+ {
+ XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding,
+ XmNmarginWidth, ih->data->horiz_padding, NULL);
++ return 0;
+ }
+- return 0;
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int motLabelMapMethod(Ihandle* ih)
+@@ -165,12 +167,12 @@ static int motLabelMapMethod(Ihandle* ih)
+ if (iupStrEqualNoCase(value, "HORIZONTAL"))
+ {
+ ih->data->type = IUP_LABEL_SEP_HORIZ;
+- iupmotSetArg(args, num_args, XmNorientation, XmHORIZONTAL);
++ iupMOT_SETARG(args, num_args, XmNorientation, XmHORIZONTAL);
+ }
+ else /* "VERTICAL" */
+ {
+ ih->data->type = IUP_LABEL_SEP_VERT;
+- iupmotSetArg(args, num_args, XmNorientation, XmVERTICAL);
++ iupMOT_SETARG(args, num_args, XmNorientation, XmVERTICAL);
+ }
+ }
+ else
+@@ -180,32 +182,32 @@ static int motLabelMapMethod(Ihandle* ih)
+ if (value)
+ {
+ ih->data->type = IUP_LABEL_IMAGE;
+- iupmotSetArg(args, num_args, XmNlabelType, XmPIXMAP); 
++ iupMOT_SETARG(args, num_args, XmNlabelType, XmPIXMAP); 
+ }
+ else
+ {
+ ih->data->type = IUP_LABEL_TEXT;
+- iupmotSetArg(args, num_args, XmNlabelType, XmSTRING); 
++ iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING); 
+ }
+ }
+ 
+ /* Core */
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ /* Primitive */
+- iupmotSetArg(args, num_args, XmNtraversalOn, False);
+- iupmotSetArg(args, num_args, XmNhighlightThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
++ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 0);
+ /* Label */
+- iupmotSetArg(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */
+- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+- iupmotSetArg(args, num_args, XmNmarginTop, 0); /* no extra margins */
+- iupmotSetArg(args, num_args, XmNmarginLeft, 0);
+- iupmotSetArg(args, num_args, XmNmarginBottom, 0);
+- iupmotSetArg(args, num_args, XmNmarginRight, 0);
++ iupMOT_SETARG(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginTop, 0); /* no extra margins */
++ iupMOT_SETARG(args, num_args, XmNmarginLeft, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginBottom, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginRight, 0);
+ 
+ ih->handle = XtCreateManagedWidget(
+ iupDialogGetChildIdStr(ih), /* child identifier */
+diff --git a/iup/src/mot/iupmot_list.c b/iup/src/mot/iupmot_list.c
+index f8e73ed..800e6e9 100755
+--- a/iup/src/mot/iupmot_list.c
++++ b/iup/src/mot/iupmot_list.c
+@@ -143,15 +143,36 @@ void iupdrvListInsertItem(Ihandle* ih, int pos, const char* value)
+ motListAddSortedItem(ih, value);
+ else
+ motListAddItem(ih, pos, value);
++
++ iupListUpdateOldValue(ih, pos, 0);
+ }
+ 
+ void iupdrvListRemoveItem(Ihandle* ih, int pos)
+ {
+ /* The utility functions use 0=last 1=first */
+ if (ih->data->is_dropdown || ih->data->has_editbox)
++ {
++ if (ih->data->is_dropdown && !ih->data->has_editbox)
++ {
++ /* must check if removing the current item */
++ int curpos;
++ XtVaGetValues(ih->handle, XmNselectedPosition, &curpos, NULL);
++ if (pos == curpos && iupdrvListGetCount(ih)>1)
++ {
++ if (curpos > 0) curpos--;
++ else curpos++;
++
++ XtRemoveCallback(ih->handle, XmNselectionCallback, (XtCallbackProc)motListComboBoxSelectionCallback, (XtPointer)ih);
++ XtVaSetValues(ih->handle, XmNselectedPosition, curpos, NULL); 
++ XtAddCallback(ih->handle, XmNselectionCallback, (XtCallbackProc)motListComboBoxSelectionCallback, (XtPointer)ih);
++ }
++ }
+ XmComboBoxDeletePos(ih->handle, pos+1);
++ }
+ else
+ XmListDeletePos(ih->handle, pos+1);
++
++ iupListUpdateOldValue(ih, pos, 1);
+ }
+ 
+ void iupdrvListRemoveAllItems(Ihandle* ih)
+@@ -174,7 +195,7 @@ void iupdrvListRemoveAllItems(Ihandle* ih)
+ static char* motListGetIdValueAttrib(Ihandle* ih, const char* name_id)
+ {
+ int pos = iupListGetPos(ih, name_id);
+- if (pos != -1)
++ if (pos >= 0)
+ {
+ XmString* items;
+ XtVaGetValues(ih->handle, XmNitems, &items, NULL);
+@@ -852,8 +873,10 @@ static int motListSetNCAttrib(Ihandle* ih, const char* value)
+ Widget cbedit;
+ XtVaGetValues(ih->handle, XmNtextField, &cbedit, NULL);
+ XtVaSetValues(cbedit, XmNmaxLength, ih->data->nc, NULL);
++ return 0;
+ }
+- return 0;
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int motListSetClipboardAttrib(Ihandle *ih, const char *value)
+@@ -1181,32 +1204,32 @@ static int motListMapMethod(Ihandle* ih)
+ if (ih->data->is_dropdown || ih->data->has_editbox)
+ {
+ /* could not set XmNmappedWhenManaged to False because the list and the edit box where not displayed */
+- /* iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); */
+- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+- iupmotSetArg(args, num_args, XmNmarginHeight, 0);
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
++ /* iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); */
++ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
+ 
+ if (iupAttribGetBoolean(ih, "CANFOCUS"))
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
+ else
+- iupmotSetArg(args, num_args, XmNtraversalOn, False);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
+ 
+- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
+- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
+- iupmotSetArg(args, num_args, XmNshadowThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
++ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);
+ 
+ if (ih->data->has_editbox)
+ {
+ if (ih->data->is_dropdown)
+- iupmotSetArg(args, num_args, XmNcomboBoxType, XmDROP_DOWN_COMBO_BOX); /* hidden-list+edit */
++ iupMOT_SETARG(args, num_args, XmNcomboBoxType, XmDROP_DOWN_COMBO_BOX); /* hidden-list+edit */
+ else
+- iupmotSetArg(args, num_args, XmNcomboBoxType, XmCOMBO_BOX); /* visible-list+edit */
++ iupMOT_SETARG(args, num_args, XmNcomboBoxType, XmCOMBO_BOX); /* visible-list+edit */
+ }
+ else
+- iupmotSetArg(args, num_args, XmNcomboBoxType, XmDROP_DOWN_LIST); /* hidden-list */
++ iupMOT_SETARG(args, num_args, XmNcomboBoxType, XmDROP_DOWN_LIST); /* hidden-list */
+ 
+ ih->handle = XtCreateManagedWidget(
+ child_id, /* child identifier */
+@@ -1220,13 +1243,13 @@ static int motListMapMethod(Ihandle* ih)
+ 
+ /* Create the scrolled window */
+ 
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+- iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);
+- iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE);
+- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */
+- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */
+- iupmotSetArg(args, num_args, XmNborderWidth, 0);
+- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);
++ iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE);
++ iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */
++ iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */
++ iupMOT_SETARG(args, num_args, XmNborderWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
+ 
+ sb_win = XtCreateManagedWidget(
+ child_id, /* child identifier */
+@@ -1243,34 +1266,34 @@ static int motListMapMethod(Ihandle* ih)
+ /* Create the list */
+ 
+ num_args = 0;
+- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ 
+ if (iupAttribGetBoolean(ih, "CANFOCUS"))
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
+ else
+- iupmotSetArg(args, num_args, XmNtraversalOn, False);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
+ 
+- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
+- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
+- iupmotSetArg(args, num_args, XmNshadowThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
++ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);
+ 
+- iupmotSetArg(args, num_args, XmNlistMarginHeight, 0); /* default padding */
+- iupmotSetArg(args, num_args, XmNlistMarginWidth, 0);
+- iupmotSetArg(args, num_args, XmNlistSpacing, 0);
+- iupmotSetArg(args, num_args, XmNlistSizePolicy, XmCONSTANT); /* don't grow to fit, add scrollbar */
++ iupMOT_SETARG(args, num_args, XmNlistMarginHeight, 0); /* default padding */
++ iupMOT_SETARG(args, num_args, XmNlistMarginWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNlistSpacing, 0);
++ iupMOT_SETARG(args, num_args, XmNlistSizePolicy, XmCONSTANT); /* don't grow to fit, add scrollbar */
+ 
+ if (ih->data->is_multiple)
+- iupmotSetArg(args, num_args, XmNselectionPolicy, XmEXTENDED_SELECT);
++ iupMOT_SETARG(args, num_args, XmNselectionPolicy, XmEXTENDED_SELECT);
+ else
+- iupmotSetArg(args, num_args, XmNselectionPolicy, XmBROWSE_SELECT);
++ iupMOT_SETARG(args, num_args, XmNselectionPolicy, XmBROWSE_SELECT);
+ 
+ if (iupAttribGetBoolean(ih, "AUTOHIDE"))
+- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED);
++ iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED);
+ else
+- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC);
++ iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC);
+ 
+ ih->handle = XtCreateManagedWidget(
+ child_id, /* child identifier */
+diff --git a/iup/src/mot/iupmot_loop.c b/iup/src/mot/iupmot_loop.c
+index 828ddcd..c1f92ec 100755
+--- a/iup/src/mot/iupmot_loop.c
++++ b/iup/src/mot/iupmot_loop.c
+@@ -56,7 +56,7 @@ void iupdrvSetIdleFunction(Icallback f)
+ mot_idle_id = XtAppAddWorkProc(iupmot_appcontext, motIdlecbWorkProc, NULL);
+ }
+ 
+-static int motLoopStep(void)
++static int motLoopProcessEvent(void)
+ {
+ XtAppProcessEvent(iupmot_appcontext, XtIMAll);
+ return (mot_exitmainloop)? IUP_CLOSE : IUP_DEFAULT;
+@@ -79,7 +79,7 @@ int IupMainLoop(void)
+ 
+ while (!mot_exitmainloop)
+ {
+- if (motLoopStep() == IUP_CLOSE)
++ if (motLoopProcessEvent() == IUP_CLOSE)
+ break;
+ }
+ 
+@@ -88,19 +88,26 @@ int IupMainLoop(void)
+ return IUP_NOERROR;
+ }
+ 
++int IupLoopStepWait(void)
++{
++ while(!XtAppPending(iupmot_appcontext));
++
++ return motLoopProcessEvent();
++}
++
+ int IupLoopStep(void)
+ {
+ if (!XtAppPending(iupmot_appcontext)) 
+ return IUP_DEFAULT;
+ 
+- return motLoopStep();
++ return motLoopProcessEvent();
+ }
+ 
+ void IupFlush(void)
+ {
+ while (XPending(iupmot_display) != 0)
+ {
+- if (motLoopStep() == IUP_CLOSE)
++ if (motLoopProcessEvent() == IUP_CLOSE)
+ break;
+ }
+ 
+diff --git a/iup/src/mot/iupmot_menu.c b/iup/src/mot/iupmot_menu.c
+index be9b953..8f51334 100755
+--- a/iup/src/mot/iupmot_menu.c
++++ b/iup/src/mot/iupmot_menu.c
+@@ -125,7 +125,10 @@ static void motPopupMenuUnmapCallback(Widget w, Ihandle* ih, XtPointer call_data
+ static void motMenuUnMapMethod(Ihandle* ih)
+ {
+ if (iupMenuIsMenuBar(ih))
++ {
+ XtDestroyWidget(ih->handle);
++ ih->parent = NULL;
++ }
+ else
+ XtDestroyWidget(XtParent(ih->handle)); /* in this case the RowColumn widget is a child of a MenuShell. */
+ }
+@@ -146,7 +149,6 @@ static int motMenuMapMethod(Ihandle* ih)
+ XmNrowColumnType, XmMENU_BAR,
+ XmNmarginHeight, 0,
+ XmNmarginWidth, 0,
+- XmNresizeWidth, False,
+ NULL);
+ if (!ih->handle)
+ return IUP_ERROR;
+@@ -161,8 +163,8 @@ static int motMenuMapMethod(Ihandle* ih)
+ 
+ if (iupAttribGetBoolean(ih, "RADIO"))
+ {
+- iupmotSetArg(args, num_args, XmNpacking, XmPACK_COLUMN);
+- iupmotSetArg(args, num_args, XmNradioBehavior, TRUE);
++ iupMOT_SETARG(args, num_args, XmNpacking, XmPACK_COLUMN);
++ iupMOT_SETARG(args, num_args, XmNradioBehavior, TRUE);
+ }
+ 
+ ih->handle = XmCreatePulldownMenu(
+@@ -183,7 +185,7 @@ static int motMenuMapMethod(Ihandle* ih)
+ {
+ /* top level menu used for IupPopup */
+ 
+- iupmotSetArg(args, num_args, XmNpopupEnabled, XmPOPUP_AUTOMATIC);
++ iupMOT_SETARG(args, num_args, XmNpopupEnabled, XmPOPUP_AUTOMATIC);
+ 
+ ih->handle = XmCreatePopupMenu(
+ iupmot_appshell, 
+@@ -307,19 +309,19 @@ static int motItemMapMethod(Ihandle* ih)
+ 
+ if (iupAttribGetBoolean(ih->parent, "RADIO"))
+ {
+- iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);
+- iupmotSetArg(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND);
+- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX);
+- iupmotSetArg(args, num_args, XmNindicatorSize, 13);
+- iupmotSetArg(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0));
++ iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);
++ iupMOT_SETARG(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND);
++ iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX);
++ iupMOT_SETARG(args, num_args, XmNindicatorSize, 13);
++ iupMOT_SETARG(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0));
+ }
+ else
+ {
+ if (iupAttribGetBoolean(ih, "HIDEMARK"))
+- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_NONE);
++ iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_NONE);
+ else
+- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK);
+- iupmotSetArg(args, num_args, XmNlabelType, iupAttribGet(ih, "TITLEIMAGE")? XmPIXMAP: XmSTRING);
++ iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK);
++ iupMOT_SETARG(args, num_args, XmNlabelType, iupAttribGet(ih, "TITLEIMAGE")? XmPIXMAP: XmSTRING);
+ }
+ 
+ ih->handle = XtCreateManagedWidget(
+diff --git a/iup/src/mot/iupmot_progressbar.c b/iup/src/mot/iupmot_progressbar.c
+index 7266d38..82fa178 100755
+--- a/iup/src/mot/iupmot_progressbar.c
++++ b/iup/src/mot/iupmot_progressbar.c
+@@ -98,25 +98,25 @@ static int motProgressBarMapMethod(Ihandle* ih)
+ Arg args[30];
+ 
+ /* Core */
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ /* Primitive */
+- iupmotSetArg(args, num_args, XmNtraversalOn, False);
+- iupmotSetArg(args, num_args, XmNhighlightThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
++ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 0);
+ /* Scale */
+- iupmotSetArg(args, num_args, XmNminimum, 0);
+- iupmotSetArg(args, num_args, XmNmaximum, SHRT_MAX);
+- iupmotSetArg(args, num_args, XmNslidingMode, XmTHERMOMETER); /* thermometer effect */
+- iupmotSetArg(args, num_args, XmNsliderMark, XmNONE);
+- iupmotSetArg(args, num_args, XmNeditable, False);
+- iupmotSetArg(args, num_args, XmNshowValue, XmNONE);
++ iupMOT_SETARG(args, num_args, XmNminimum, 0);
++ iupMOT_SETARG(args, num_args, XmNmaximum, SHRT_MAX);
++ iupMOT_SETARG(args, num_args, XmNslidingMode, XmTHERMOMETER); /* thermometer effect */
++ iupMOT_SETARG(args, num_args, XmNsliderMark, XmNONE);
++ iupMOT_SETARG(args, num_args, XmNeditable, False);
++ iupMOT_SETARG(args, num_args, XmNshowValue, XmNONE);
+ 
+ if (iupStrEqualNoCase(iupAttribGetStr(ih, "ORIENTATION"), "VERTICAL"))
+ {
+- iupmotSetArg(args, num_args, XmNorientation, XmVERTICAL);
++ iupMOT_SETARG(args, num_args, XmNorientation, XmVERTICAL);
+ 
+ if (ih->currentheight < ih->currentwidth)
+ {
+@@ -126,7 +126,7 @@ static int motProgressBarMapMethod(Ihandle* ih)
+ }
+ }
+ else
+- iupmotSetArg(args, num_args, XmNorientation, XmHORIZONTAL);
++ iupMOT_SETARG(args, num_args, XmNorientation, XmHORIZONTAL);
+ 
+ ih->handle = XtCreateManagedWidget(
+ iupDialogGetChildIdStr(ih), /* child identifier */
+diff --git a/iup/src/mot/iupmot_tabs.c b/iup/src/mot/iupmot_tabs.c
+index 7c8a6b5..cafc41d 100755
+--- a/iup/src/mot/iupmot_tabs.c
++++ b/iup/src/mot/iupmot_tabs.c
+@@ -52,8 +52,10 @@ void iupdrvTabsSetCurrentTab(Ihandle* ih, int pos)
+ {
+ Ihandle* child = IupGetChild(ih, pos);
+ Ihandle* prev_child = IupGetChild(ih, iupdrvTabsGetCurrentTab(ih));
+- IupSetAttribute(child, "VISIBLE", "YES");
+- IupSetAttribute(prev_child, "VISIBLE", "NO");
++ Widget child_manager = (Widget)iupAttribGet(child, "_IUPTAB_CONTAINER");
++ Widget prev_child_manager = (Widget)iupAttribGet(prev_child, "_IUPTAB_CONTAINER");
++ XtMapWidget(child_manager);
++ if (prev_child_manager) XtUnmapWidget(prev_child_manager);
+ 
+ XtVaSetValues(ih->handle, XmNcurrentPageNumber, pos, NULL);
+ }
+@@ -200,7 +202,7 @@ static int motTabsSetTabTypeAttrib(Ihandle* ih, const char* value)
+ ih->data->type = ITABS_TOP;
+ 
+ if (ih->handle)
+- motTabsUpdateTabType(ih);
++ motTabsUpdateTabType(ih); /* for this to work must be updated in map */
+ 
+ return 0;
+ }
+@@ -313,8 +315,10 @@ void motTabsPageChangedCallback(Widget w, Ihandle* ih, XmNotebookCallbackStruct
+ IFnnn cb;
+ Ihandle* child = IupGetChild(ih, nptr->page_number);
+ Ihandle* prev_child = IupGetChild(ih, nptr->prev_page_number);
+- IupSetAttribute(child, "VISIBLE", "YES");
+- IupSetAttribute(prev_child, "VISIBLE", "NO");
++ Widget child_manager = (Widget)iupAttribGet(child, "_IUPTAB_CONTAINER");
++ Widget prev_child_manager = (Widget)iupAttribGet(prev_child, "_IUPTAB_CONTAINER");
++ XtMapWidget(child_manager);
++ if (prev_child_manager) XtUnmapWidget(prev_child_manager);
+ 
+ cb = (IFnnn)IupGetCallback(ih, "TABCHANGE_CB");
+ if (cb)
+@@ -397,12 +401,12 @@ static void motTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
+ 
+ /* Create tabs */
+ /* Label */
+- iupmotSetArg(args, num_args, XmNlabelType, tabtitle? XmSTRING: XmPIXMAP);
+- iupmotSetArg(args, num_args, XmNmarginHeight, 0);
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNlabelType, tabtitle? XmSTRING: XmPIXMAP);
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
+ /* Notebook Constraint */
+- iupmotSetArg(args, num_args, XmNnotebookChildType, XmMAJOR_TAB);
+- iupmotSetArg(args, num_args, XmNpageNumber, pos);
++ iupMOT_SETARG(args, num_args, XmNnotebookChildType, XmMAJOR_TAB);
++ iupMOT_SETARG(args, num_args, XmNpageNumber, pos);
+ tab_button = XtCreateManagedWidget("tab_button", xmPushButtonWidgetClass, ih->handle, args, num_args);
+ 
+ /* Disable Drag Source */
+@@ -450,10 +454,8 @@ static void motTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
+ iupAttribSetStr(child, "_IUPMOT_TABBUTTON", (char*)tab_button);
+ iupAttribSetInt(child, "_IUPMOT_TABNUMBER", pos);
+ 
+- if (pos == iupdrvTabsGetCurrentTab(ih))
+- IupSetAttribute(child, "VISIBLE", "YES");
+- else
+- IupSetAttribute(child, "VISIBLE", "NO");
++ if (pos != iupdrvTabsGetCurrentTab(ih))
++ XtUnmapWidget(child_manager);
+ }
+ }
+ 
+@@ -464,20 +466,11 @@ static void motTabsChildRemovedMethod(Ihandle* ih, Ihandle* child)
+ Widget child_manager = (Widget)iupAttribGet(child, "_IUPTAB_CONTAINER");
+ if (child_manager)
+ {
+- int cur_pos, pos;
++ int pos;
+ Widget tab_button = (Widget)iupAttribGet(child, "_IUPMOT_TABBUTTON");
+ 
+- cur_pos = iupdrvTabsGetCurrentTab(ih);
+ pos = iupAttribGetInt(child, "_IUPMOT_TABNUMBER"); /* did not work when using XtVaGetValues(child_manager, XmNpageNumber) */
+- if (cur_pos == pos)
+- {
+- if (cur_pos == 0)
+- cur_pos = 1;
+- else
+- cur_pos--;
+-
+- iupdrvTabsSetCurrentTab(ih, cur_pos);
+- }
++ iupTabsTestRemoveTab(ih, pos);
+ 
+ XtDestroyWidget(tab_button);
+ XtDestroyWidget(child_manager);
+@@ -501,22 +494,22 @@ static int motTabsMapMethod(Ihandle* ih)
+ return IUP_ERROR;
+ 
+ /* Core */
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ /* Manager */
+- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+- iupmotSetArg(args, num_args, XmNhighlightThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
++ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 0);
+ /* Notebook */
+- iupmotSetArg(args, num_args, XmNbindingType, XmNONE);
+- iupmotSetArg(args, num_args, XmNbindingWidth, 0);
+- iupmotSetArg(args, num_args, XmNfirstPageNumber, 0); /* IupTabs index always starts with zero */
+- iupmotSetArg(args, num_args, XmNbackPageSize, 0);
+- iupmotSetArg(args, num_args, XmNbackPageNumber, 1);
+- iupmotSetArg(args, num_args, XmNframeShadowThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNbindingType, XmNONE);
++ iupMOT_SETARG(args, num_args, XmNbindingWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNfirstPageNumber, 0); /* IupTabs index always starts with zero */
++ iupMOT_SETARG(args, num_args, XmNbackPageSize, 0);
++ iupMOT_SETARG(args, num_args, XmNbackPageNumber, 1);
++ iupMOT_SETARG(args, num_args, XmNframeShadowThickness, 2);
+ 
+ ih->handle = XtCreateManagedWidget(
+ iupDialogGetChildIdStr(ih), /* child identifier */
+@@ -589,5 +582,5 @@ void iupdrvTabsInitClass(Iclass* ic)
+ iupClassRegisterAttribute(ic, "TABORIENTATION", iupTabsGetTabOrientationAttrib, NULL, IUPAF_SAMEASSYSTEM, "HORIZONTAL", IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); /* can not be set, always HORIZONTAL in Motif */
+ iupClassRegisterAttributeId(ic, "TABTITLE", NULL, motTabsSetTabTitleAttrib, IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, motTabsSetTabImageAttrib, IUPAF_NO_INHERIT);
+- iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, motTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);
++ iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, motTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ }
+diff --git a/iup/src/mot/iupmot_text.c b/iup/src/mot/iupmot_text.c
+index 4a8f936..d9d2c74 100755
+--- a/iup/src/mot/iupmot_text.c
++++ b/iup/src/mot/iupmot_text.c
+@@ -142,8 +142,10 @@ static int motTextSetPaddingAttrib(Ihandle* ih, const char* value)
+ {
+ XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding,
+ XmNmarginWidth, ih->data->horiz_padding, NULL);
++ return 0;
+ }
+- return 0;
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int motTextSetReadOnlyAttrib(Ihandle* ih, const char* value)
+@@ -164,7 +166,7 @@ static char* motTextGetReadOnlyAttrib(Ihandle* ih)
+ 
+ static int motTextSetInsertAttrib(Ihandle* ih, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ if (!value)
+ return 0;
+@@ -207,12 +209,12 @@ static char* motTextGetSelectedTextAttrib(Ihandle* ih)
+ static int motTextSetAppendAttrib(Ihandle* ih, const char* value)
+ {
+ XmTextPosition pos;
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ pos = XmTextGetLastPosition(ih->handle);
+ /* disable callbacks */
+ iupAttribSetStr(ih, "_IUPMOT_DISABLE_TEXT_CB", "1");
+- if (ih->data->is_multiline && ih->data->append_newline)
++ if (ih->data->is_multiline && ih->data->append_newline && pos!=0)
+ XmTextInsert(ih->handle, pos, "\n");
+ if (value)
+ XmTextInsert(ih->handle, pos+1, (char*)value);
+@@ -482,8 +484,12 @@ static int motTextSetNCAttrib(Ihandle* ih, const char* value)
+ if (!iupStrToInt(value, &ih->data->nc))
+ ih->data->nc = INT_MAX;
+ if (ih->handle)
++ {
+ XtVaSetValues(ih->handle, XmNmaxLength, ih->data->nc, NULL);
+- return 0;
++ return 0;
++ }
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int motTextSetClipboardAttrib(Ihandle *ih, const char *value)
+@@ -911,6 +917,10 @@ static void motTextLayoutUpdateMethod(Ihandle* ih)
+ Widget spinbox = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT");
+ if (spinbox && XmIsSpinBox(spinbox))
+ {
++ /* avoid abort in X */
++ if (ih->currentwidth == 0) ih->currentwidth = 1;
++ if (ih->currentheight == 0) ih->currentheight = 1;
++
+ XtVaSetValues(ih->handle,
+ XmNwidth, (XtArgVal)ih->currentwidth-ih->currentheight/2,
+ XmNheight, (XtArgVal)ih->currentheight,
+@@ -952,13 +962,13 @@ static int motTextMapMethod(Ihandle* ih)
+ /* Create the scrolled window */
+ /******************************/
+ 
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+- iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);
+- iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE);
+- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */
+- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */
+- iupmotSetArg(args, num_args, XmNborderWidth, 0);
+- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);
++ iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE);
++ iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */
++ iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */
++ iupMOT_SETARG(args, num_args, XmNborderWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
+ 
+ sb_win = XtCreateManagedWidget(
+ child_id, /* child identifier */
+@@ -973,9 +983,9 @@ static int motTextMapMethod(Ihandle* ih)
+ child_id = "text";
+ 
+ num_args = 0;
+- iupmotSetArg(args, num_args, XmNeditMode, XmMULTI_LINE_EDIT);
++ iupMOT_SETARG(args, num_args, XmNeditMode, XmMULTI_LINE_EDIT);
+ if (wordwrap)
+- iupmotSetArg(args, num_args, XmNwordWrap, True);
++ iupMOT_SETARG(args, num_args, XmNwordWrap, True);
+ }
+ else
+ {
+@@ -986,18 +996,18 @@ static int motTextMapMethod(Ihandle* ih)
+ Widget spinbox;
+ 
+ num_args = 0;
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between spin and text */
+- iupmotSetArg(args, num_args, XmNborderWidth, 0);
+- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
+- iupmotSetArg(args, num_args, XmNmarginHeight, 0);
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+- iupmotSetArg(args, num_args, XmNarrowSize, 8);
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between spin and text */
++ iupMOT_SETARG(args, num_args, XmNborderWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNarrowSize, 8);
+ 
+ if (iupStrEqualNoCase(iupAttribGetStr(ih, "SPINALIGN"), "LEFT"))
+- iupmotSetArg(args, num_args, XmNarrowLayout, XmARROWS_BEGINNING);
++ iupMOT_SETARG(args, num_args, XmNarrowLayout, XmARROWS_BEGINNING);
+ else
+- iupmotSetArg(args, num_args, XmNarrowLayout, XmARROWS_END);
++ iupMOT_SETARG(args, num_args, XmNarrowLayout, XmARROWS_END);
+ 
+ spinbox = XtCreateManagedWidget(
+ child_id, /* child identifier */
+@@ -1019,61 +1029,61 @@ static int motTextMapMethod(Ihandle* ih)
+ }
+ 
+ num_args = 0;
+- iupmotSetArg(args, num_args, XmNeditMode, XmSINGLE_LINE_EDIT);
++ iupMOT_SETARG(args, num_args, XmNeditMode, XmSINGLE_LINE_EDIT);
+ 
+ if (spin)
+ {
+ /* Spin Constraints */
+- iupmotSetArg(args, num_args, XmNspinBoxChildType, XmNUMERIC);
+- iupmotSetArg(args, num_args, XmNminimumValue, 0);
+- iupmotSetArg(args, num_args, XmNmaximumValue, 100);
+- iupmotSetArg(args, num_args, XmNposition, 0);
++ iupMOT_SETARG(args, num_args, XmNspinBoxChildType, XmNUMERIC);
++ iupMOT_SETARG(args, num_args, XmNminimumValue, 0);
++ iupMOT_SETARG(args, num_args, XmNmaximumValue, 100);
++ iupMOT_SETARG(args, num_args, XmNposition, 0);
+ 
+ if (iupAttribGetBoolean(ih, "SPINWRAP"))
+- iupmotSetArg(args, num_args, XmNwrap, TRUE);
++ iupMOT_SETARG(args, num_args, XmNwrap, TRUE);
+ else
+- iupmotSetArg(args, num_args, XmNwrap, FALSE);
++ iupMOT_SETARG(args, num_args, XmNwrap, FALSE);
+ }
+ else
+ {
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+ }
+ }
+ 
+- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ 
+- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
+ 
+ if (iupAttribGetBoolean(ih, "CANFOCUS"))
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
+ else
+- iupmotSetArg(args, num_args, XmNtraversalOn, False);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
+ 
+- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
+- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
+- iupmotSetArg(args, num_args, XmNverifyBell, False);
+- iupmotSetArg(args, num_args, XmNspacing, 0);
++ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
++ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNverifyBell, False);
++ iupMOT_SETARG(args, num_args, XmNspacing, 0);
+ 
+ if (iupAttribGetBoolean(ih, "BORDER"))
+- iupmotSetArg(args, num_args, XmNshadowThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);
+ else
+- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
+ 
+ if (ih->data->is_multiline)
+ {
+ if (ih->data->sb & IUP_SB_HORIZ)
+- iupmotSetArg(args, num_args, XmNscrollHorizontal, True);
++ iupMOT_SETARG(args, num_args, XmNscrollHorizontal, True);
+ else
+- iupmotSetArg(args, num_args, XmNscrollHorizontal, False);
++ iupMOT_SETARG(args, num_args, XmNscrollHorizontal, False);
+ 
+ if (ih->data->sb & IUP_SB_VERT)
+- iupmotSetArg(args, num_args, XmNscrollVertical, True);
++ iupMOT_SETARG(args, num_args, XmNscrollVertical, True);
+ else
+- iupmotSetArg(args, num_args, XmNscrollVertical, False);
++ iupMOT_SETARG(args, num_args, XmNscrollVertical, False);
+ }
+ 
+ ih->handle = XtCreateManagedWidget(
+diff --git a/iup/src/mot/iupmot_toggle.c b/iup/src/mot/iupmot_toggle.c
+index b18f24d..1fda258 100755
+--- a/iup/src/mot/iupmot_toggle.c
++++ b/iup/src/mot/iupmot_toggle.c
+@@ -236,8 +236,10 @@ static int motToggleSetPaddingAttrib(Ihandle* ih, const char* value)
+ {
+ XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding,
+ XmNmarginWidth, ih->data->horiz_padding, NULL);
++ return 0;
+ }
+- return 0;
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static char* motToggleGetSelectColorAttrib(Ihandle* ih)
+@@ -336,40 +338,40 @@ static int motToggleMapMethod(Ihandle* ih)
+ if (value)
+ {
+ ih->data->type = IUP_TOGGLE_IMAGE;
+- iupmotSetArg(args, num_args, XmNlabelType, XmPIXMAP); 
++ iupMOT_SETARG(args, num_args, XmNlabelType, XmPIXMAP); 
+ }
+ else
+ {
+ ih->data->type = IUP_TOGGLE_TEXT;
+- iupmotSetArg(args, num_args, XmNlabelType, XmSTRING); 
++ iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING); 
+ }
+ 
+ /* Core */
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ /* Primitive */
+ if (iupAttribGetBoolean(ih, "CANFOCUS"))
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
+ else
+- iupmotSetArg(args, num_args, XmNtraversalOn, False);
+- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
+- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
++ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
+ /* Label */
+- iupmotSetArg(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */
+- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+- iupmotSetArg(args, num_args, XmNmarginTop, 0); /* no extra margins */
+- iupmotSetArg(args, num_args, XmNmarginLeft, 0);
+- iupmotSetArg(args, num_args, XmNmarginBottom, 0);
+- iupmotSetArg(args, num_args, XmNmarginRight, 0);
++ iupMOT_SETARG(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginTop, 0); /* no extra margins */
++ iupMOT_SETARG(args, num_args, XmNmarginLeft, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginBottom, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginRight, 0);
+ 
+ if (radio)
+ {
+- iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);
+- iupmotSetArg(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND);
++ iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);
++ iupMOT_SETARG(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND);
+ 
+ if (!iupAttribGet(radio, "_IUPMOT_LASTTOGGLE"))
+ {
+@@ -380,33 +382,33 @@ static int motToggleMapMethod(Ihandle* ih)
+ else
+ {
+ if (ih->data->type == IUP_TOGGLE_TEXT && iupAttribGetBoolean(ih, "3STATE"))
+- iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_INDETERMINATE);
++ iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_INDETERMINATE);
+ else
+- iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);
+- iupmotSetArg(args, num_args, XmNindicatorType, XmN_OF_MANY);
++ iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);
++ iupMOT_SETARG(args, num_args, XmNindicatorType, XmN_OF_MANY);
+ }
+ 
+ if (ih->data->type == IUP_TOGGLE_IMAGE)
+ {
+- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_NONE);
+- iupmotSetArg(args, num_args, XmNalignment, XmALIGNMENT_CENTER);
+- iupmotSetArg(args, num_args, XmNshadowThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_NONE);
++ iupMOT_SETARG(args, num_args, XmNalignment, XmALIGNMENT_CENTER);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);
+ }
+ else
+ {
+- iupmotSetArg(args, num_args, XmNspacing, 3);
+- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX);
+- iupmotSetArg(args, num_args, XmNalignment, XmALIGNMENT_BEGINNING);
++ iupMOT_SETARG(args, num_args, XmNspacing, 3);
++ iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX);
++ iupMOT_SETARG(args, num_args, XmNalignment, XmALIGNMENT_BEGINNING);
+ if (radio)
+ {
+- iupmotSetArg(args, num_args, XmNindicatorSize, 13);
+- iupmotSetArg(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0));
++ iupMOT_SETARG(args, num_args, XmNindicatorSize, 13);
++ iupMOT_SETARG(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0));
+ }
+ else
+- iupmotSetArg(args, num_args, XmNindicatorSize, 15);
++ iupMOT_SETARG(args, num_args, XmNindicatorSize, 15);
+ 
+- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
+- iupmotSetArg(args, num_args, XmNdetailShadowThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNdetailShadowThickness, 2);
+ }
+ 
+ ih->handle = XtCreateManagedWidget(
+diff --git a/iup/src/mot/iupmot_tree.c b/iup/src/mot/iupmot_tree.c
+index eb230af..fa5ef09 100755
+--- a/iup/src/mot/iupmot_tree.c
++++ b/iup/src/mot/iupmot_tree.c
+@@ -46,48 +46,20 @@ typedef struct _motTreeItemData
+ Pixmap image, image_mask;
+ Pixmap image_expanded, image_expanded_mask;
+ unsigned char kind;
+- void* userdata;
+ } motTreeItemData;
+ 
+ 
+ static void motTreeShowEditField(Ihandle* ih, Widget wItem);
+-static int motTreeGetNodeId(Ihandle* ih, Widget wItem);
++static void motTreeRemoveNode(Ihandle* ih, Widget wItem, int del_data, int call_cb);
+ 
+-typedef int (*motTreeNodeFunc)(Ihandle* ih, Widget wItem, void* userdata);
+-
+-static int motTreeForEach(Ihandle* ih, Widget wItem, motTreeNodeFunc func, void* userdata)
+-{
+- WidgetList wItemChildList = NULL;
+- int i, numChild;
+-
+- if (!wItem)
+- wItem = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+-
+- if (!func(ih, wItem, userdata))
+- return 0;
+-
+- numChild = XmContainerGetItemChildren(ih->handle, wItem, &wItemChildList);
+- for (i=0; i<numChild; i++)
+- {
+- /* Recursively traverse child items */
+- if (!motTreeForEach(ih, wItemChildList[i], func, userdata))
+- {
+- XtFree((char*)wItemChildList);
+- return 0;
+- }
+- }
+- if (wItemChildList) XtFree((char*)wItemChildList);
+-
+- return 1;
+-}
+ 
+ /*****************************************************************************/
+ /* COPYING ITEMS (Branches and its children) */
+ /*****************************************************************************/
+ /* Insert the copied item in a new location. Returns the new item. */
+-static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos, int full_copy)
++static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos, int is_copy)
+ {
+- Widget wNewItem;
++ Widget wItemNew;
+ XmString title;
+ motTreeItemData *itemData;
+ Pixel fgcolor, bgcolor;
+@@ -96,13 +68,13 @@ static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos
+ Pixmap image = XmUNSPECIFIED_PIXMAP, mask = XmUNSPECIFIED_PIXMAP;
+ unsigned char state;
+ 
+- iupmotSetArg(args, num_args, XmNentryParent, wParent);
+- iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing);
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+- iupmotSetArg(args, num_args, XmNviewType, XmSMALL_ICON);
+- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNentryParent, wParent);
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, ih->data->spacing);
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNviewType, XmSMALL_ICON);
++ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
+ 
+ /* Get values to copy */
+ XtVaGetValues(wItem, XmNlabelString, &title,
+@@ -113,49 +85,73 @@ static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos
+ XmNoutlineState, &state,
+ NULL);
+ 
+- if (full_copy) /* during a full copy the userdata reference is not copied */
++ if (is_copy) /* during a copy the itemdata reference is not reused */
+ {
+ /* create a new one */
+ motTreeItemData* itemDataNew = malloc(sizeof(motTreeItemData));
+ memcpy(itemDataNew, itemData, sizeof(motTreeItemData));
+- itemDataNew->userdata = NULL;
+ itemData = itemDataNew;
+ }
+ 
+- iupmotSetArg(args, num_args, XmNlabelString, title);
+- iupmotSetArg(args, num_args, XmNuserData, itemData);
+- iupmotSetArg(args, num_args, XmNforeground, fgcolor);
+- iupmotSetArg(args, num_args, XmNsmallIconPixmap, image);
+- iupmotSetArg(args, num_args, XmNsmallIconMask, mask);
+- iupmotSetArg(args, num_args, XmNoutlineState, state);
++ iupMOT_SETARG(args, num_args, XmNlabelString, title);
++ iupMOT_SETARG(args, num_args, XmNuserData, itemData);
++ iupMOT_SETARG(args, num_args, XmNforeground, fgcolor);
++ iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, image);
++ iupMOT_SETARG(args, num_args, XmNsmallIconMask, mask);
++ iupMOT_SETARG(args, num_args, XmNoutlineState, state);
+ 
+- iupmotSetArg(args, num_args, XmNentryParent, wParent);
+- iupmotSetArg(args, num_args, XmNpositionIndex, pos);
++ iupMOT_SETARG(args, num_args, XmNentryParent, wParent);
++ iupMOT_SETARG(args, num_args, XmNpositionIndex, pos);
+ 
+ XtVaGetValues(ih->handle, XmNbackground, &bgcolor, NULL);
+- iupmotSetArg(args, num_args, XmNbackground, bgcolor);
++ iupMOT_SETARG(args, num_args, XmNbackground, bgcolor);
++
++ /* Add the new node */
++ wItemNew = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);
++ ih->data->node_count++;
++
++ XtRealizeWidget(wItemNew);
++
++ return wItemNew;
++}
++
++static void motTreeChildRebuildCacheRec(Ihandle* ih, Widget wItem, int *id)
++{
++ WidgetList itemChildList = NULL;
++ int i, numChild;
+ 
+- wNewItem = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);
++ /* Check whether we have child items */
++ numChild = XmContainerGetItemChildren(ih->handle, wItem, &itemChildList);
++
++ for (i = 0; i < numChild; i++)
++ {
++ (*id)++;
++ ih->data->node_cache[*id].node_handle = itemChildList[i];
+ 
+- /* Root always expanded */
+- XtVaSetValues((Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"), XmNoutlineState, XmEXPANDED, NULL);
++ /* go recursive to children */
++ motTreeChildRebuildCacheRec(ih, itemChildList[i], id);
++ }
+ 
+- XtRealizeWidget(wNewItem);
++ if (itemChildList) XtFree((char*)itemChildList);
++}
+ 
+- return wNewItem;
++static void motTreeRebuildNodeCache(Ihandle* ih, int id, Widget wItem)
++{
++ ih->data->node_cache[id].node_handle = wItem;
++ motTreeChildRebuildCacheRec(ih, wItem, &id);
+ }
+ 
+-static void motTreeCopyChildren(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int full_copy)
++static void motTreeCopyChildren(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int is_copy)
+ {
+ WidgetList wItemChildList = NULL;
+ int i = 0;
+ int numChild = XmContainerGetItemChildren(ih->handle, wItemSrc, &wItemChildList);
+ while(i != numChild)
+ {
+- Widget wNewItem = motTreeCopyItem(ih, wItemChildList[i], wItemDst, i, full_copy); /* Use the same order they where enumerated */
++ Widget wItemNew = motTreeCopyItem(ih, wItemChildList[i], wItemDst, i, is_copy); /* Use the same order they where enumerated */
+ 
+ /* Recursively transfer all the items */
+- motTreeCopyChildren(ih, wItemChildList[i], wNewItem, full_copy); 
++ motTreeCopyChildren(ih, wItemChildList[i], wItemNew, is_copy); 
+ 
+ /* Go to next sibling item */
+ i++;
+@@ -165,12 +161,18 @@ static void motTreeCopyChildren(Ihandle* ih, Widget wItemSrc, Widget wItemDst, i
+ }
+ 
+ /* Copies all items in a branch to a new location. Returns the new branch node. */
+-static Widget motTreeCopyNode(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int full_copy)
++static Widget motTreeCopyMoveNode(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int is_copy)
+ {
+- Widget wNewItem, wParent;
++ Widget wItemNew, wParent;
+ motTreeItemData *itemDataDst;
+ unsigned char stateDst;
+- int pos;
++ int pos, id_new, count, id_src, id_dst;
++
++ int old_count = ih->data->node_count;
++
++ id_src = iupTreeFindNodeId(ih, wItemSrc);
++ id_dst = iupTreeFindNodeId(ih, wItemDst);
++ id_new = id_dst+1; /* contains the position for a copy operation */
+ 
+ XtVaGetValues(wItemDst, XmNoutlineState, &stateDst, 
+ XmNuserData, &itemDataDst, 
+@@ -184,17 +186,46 @@ static Widget motTreeCopyNode(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int
+ }
+ else
+ {
++ if (itemDataDst->kind == ITREE_BRANCH)
++ {
++ int child_count = iupdrvTreeTotalChildCount(ih, wItemDst);
++ id_new += child_count;
++ }
++
+ /* copy as next brother of item or collapsed branch */
+ XtVaGetValues(wItemDst, XmNentryParent, &wParent, NULL);
+ XtVaGetValues(wItemDst, XmNpositionIndex, &pos, NULL);
+ pos++;
+ }
+ 
+- wNewItem = motTreeCopyItem(ih, wItemSrc, wParent, pos, full_copy);
++ /* move to the same place does nothing */
++ if (!is_copy && id_new == id_src)
++ return NULL;
++
++ wItemNew = motTreeCopyItem(ih, wItemSrc, wParent, pos, is_copy);
++
++ motTreeCopyChildren(ih, wItemSrc, wItemNew, is_copy);
++
++ count = ih->data->node_count - old_count;
++ iupTreeCopyMoveCache(ih, id_src, id_new, count, is_copy);
+ 
+- motTreeCopyChildren(ih, wItemSrc, wNewItem, full_copy);
++ if (!is_copy)
++ {
++ /* Deleting the node (and its children) from the old position */
++ /* do not delete the itemdata, we reuse the references in CopyNode */
++ motTreeRemoveNode(ih, wItemSrc, 0, 0);
++
++ /* restore count, because we remove src */
++ ih->data->node_count = old_count;
++
++ /* compensate position for a move */
++ if (id_new > id_src)
++ id_new -= count;
++ }
+ 
+- return wNewItem;
++ motTreeRebuildNodeCache(ih, id_new, wItemNew);
++
++ return wItemNew;
+ }
+ 
+ static void motTreeContainerDeselectAll(Ihandle *ih)
+@@ -233,229 +264,181 @@ static void motTreeContainerSelectAll(Ihandle *ih)
+ XtCallActionProc(ih->handle, "ContainerSelectAll", (XEvent*)&ev, 0, 0);
+ }
+ 
+-static Widget motTreeGetLastVisibleNode(Ihandle* ih, Widget wItem)
++static int motTreeIsNodeVisible(Widget wItem, Widget *wLastItemParent)
+ {
+- unsigned char itemState;
+-
+- XtVaGetValues(wItem, XmNoutlineState, &itemState, NULL);
+-
+- if (itemState == XmEXPANDED)
++ unsigned char itemParentState;
++ Widget wItemParent = NULL;
++ XtVaGetValues(wItem, XmNentryParent, &wItemParent, NULL);
++ if (!wItemParent || wItemParent == *wLastItemParent)
++ return 1;
++ while(wItemParent)
+ {
+- WidgetList wChildrenTree = NULL;
+- int numChildren = XmContainerGetItemChildren(ih->handle, wItem, &wChildrenTree);
+- if(numChildren)
+- wItem = motTreeGetLastVisibleNode(ih, wChildrenTree[numChildren - 1]);
+- if (wChildrenTree) XtFree((char*)wChildrenTree);
++ XtVaGetValues(wItemParent, XmNoutlineState, &itemParentState, NULL);
++ if (itemParentState != XmEXPANDED)
++ return 0;
++
++ XtVaGetValues(wItemParent, XmNentryParent, &wItemParent, NULL);
+ }
+ 
+- return wItem;
++ /* save last parent */
++ XtVaGetValues(wItem, XmNentryParent, &wItemParent, NULL);
++ *wLastItemParent = wItemParent;
++ return 1;
+ }
+ 
+-static Widget motTreeFindVisibleNodeId(Ihandle* ih, WidgetList itemList, int numItems, Widget itemNode)
++static Widget motTreeGetLastVisibleNode(Ihandle* ih)
+ {
+- Widget itemChild;
+- WidgetList itemChildList;
+- int i = 0;
+- int numChild;
+- unsigned char itemState;
++ int i;
++ Widget wLastItemParent = NULL;
+ 
+- while(i != numItems)
++ for (i = ih->data->node_count-1; i >= 0; i--)
+ {
+- /* ID control to traverse items */
+- ih->data->id_control++; /* not the real id since it counts only the visible ones */
+-
+- /* StateID founded! */
+- if(itemList[i] == itemNode)
+- return itemList[i];
+-
+- /* Check whether we have child items */
+- itemChildList = NULL;
+- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
+- XtVaGetValues(itemList[i], XmNoutlineState, &itemState, NULL);
+-
+- /* The itemWidget has child and it is expanded (visible) */
+- if (numChild && itemState == XmEXPANDED)
+- {
+- /* pass the list of children of this item */
+- itemChild = motTreeFindVisibleNodeId(ih, itemChildList, numChild, itemNode);
+-
+- /* StateID founded! */
+- if(itemChild)
+- {
+- XtFree((char*)itemChildList);
+- return itemChild;
+- }
+- }
+-
+- if (itemChildList) XtFree((char*)itemChildList);
+- /* Go to next sibling item */
+- i++;
++ if (motTreeIsNodeVisible(ih->data->node_cache[i].node_handle, &wLastItemParent))
++ return ih->data->node_cache[i].node_handle;
+ }
+ 
+- return NULL;
++ return ih->data->node_cache[0].node_handle; /* root is always visible */
+ }
+ 
+-static Widget motTreeFindVisibleNodeFromId(Ihandle* ih, WidgetList itemList, int numItems)
++static Widget motTreeGetNextVisibleNode(Ihandle* ih, Widget wItem, int count)
+ {
+- Widget itemChild;
+- WidgetList itemChildList;
+- int i = 0;
+- int numChild;
+- unsigned char itemState;
++ int i, id;
++ Widget wLastItemParent = NULL;
+ 
+- while(i != numItems)
+- {
+- /* ID control to traverse items */
+- ih->data->id_control--; /* not the real id since it counts only the visible ones */
++ id = iupTreeFindNodeId(ih, wItem);
++ id += count;
+ 
+- /* StateID founded! */
+- if(ih->data->id_control < 0)
+- return itemList[i];
++ for (i = id; i < ih->data->node_count; i++)
++ {
++ if (motTreeIsNodeVisible(ih->data->node_cache[i].node_handle, &wLastItemParent))
++ return ih->data->node_cache[i].node_handle;
++ }
+ 
+- /* Check whether we have child items */
+- itemChildList = NULL;
+- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
+- XtVaGetValues(itemList[i], XmNoutlineState, &itemState, NULL);
++ return ih->data->node_cache[0].node_handle; /* root is always visible */
++}
+ 
+- /* The itemWidget has child and it is expanded (visible) */
+- if (numChild && itemState == XmEXPANDED)
+- {
+- /* pass the list of children of this item */
+- itemChild = motTreeFindVisibleNodeFromId(ih, itemChildList, numChild);
++static Widget motTreeGetPreviousVisibleNode(Ihandle* ih, Widget wItem, int count)
++{
++ int i, id;
++ Widget wLastItemParent = NULL;
+ 
+- /* StateID founded! */
+- if(ih->data->id_control < 0)
+- {
+- if (itemChildList) XtFree((char*)itemChildList);
+- return itemChild;
+- }
+- }
++ id = iupTreeFindNodeId(ih, wItem);
++ id -= count;
+ 
+- if (itemChildList) XtFree((char*)itemChildList);
+- /* Go to next sibling item */
+- i++;
++ for (i = id; i >= 0; i--)
++ {
++ if (motTreeIsNodeVisible(ih->data->node_cache[i].node_handle, &wLastItemParent))
++ return ih->data->node_cache[i].node_handle;
+ }
+ 
+- return NULL;
++ return motTreeGetLastVisibleNode(ih);
+ }
+ 
+-static Widget motTreeGetNextVisibleNode(Ihandle* ih, Widget wRoot, Widget wItem)
++static void motTreeChildCountRec(Ihandle* ih, Widget wItem, int *count)
+ {
+- Widget wNext;
++ WidgetList itemChildList = NULL;
++ int i, numChild;
+ 
+- ih->data->id_control = -1;
+- motTreeFindVisibleNodeId(ih, &wRoot, 1, wItem);
+- ih->data->id_control++; /* more 1 visible node */
++ /* Check whether we have child items */
++ numChild = XmContainerGetItemChildren(ih->handle, wItem, &itemChildList);
+ 
+- wNext = motTreeFindVisibleNodeFromId(ih, &wRoot, 1);
++ for (i = 0; i < numChild; i++)
++ {
++ (*count)++;
+ 
+- if (ih->data->id_control >= 0)
+- wNext = motTreeGetLastVisibleNode(ih, wRoot);
++ /* go recursive to children */
++ motTreeChildCountRec(ih, itemChildList[i], count);
++ }
+ 
+- return wNext;
++ if (itemChildList) XtFree((char*)itemChildList);
+ }
+ 
+-static Widget motTreeGetPreviousVisibleNode(Ihandle* ih, Widget wRoot, Widget wItem)
++int iupdrvTreeTotalChildCount(Ihandle* ih, Widget wItem)
+ {
+- ih->data->id_control = -1;
+- motTreeFindVisibleNodeId(ih, &wRoot, 1, wItem);
+- ih->data->id_control--; /* less 1 visible node */
+-
+- if (ih->data->id_control < 0)
+- ih->data->id_control = 0; /* Begin of tree = Root id */
+-
+- return motTreeFindVisibleNodeFromId(ih, &wRoot, 1);
++ int count = 0;
++ motTreeChildCountRec(ih, wItem, &count);
++ return count;
+ }
+ 
+-static void motTreeUpdateBgColor(Ihandle* ih, WidgetList itemList, int numItems, Pixel bgcolor)
++static void motTreeUpdateBgColor(Ihandle* ih, Pixel bgcolor)
+ {
+- WidgetList itemChildList;
+- int i = 0;
+- int numChild;
+-
+- while(i != numItems)
++ int i;
++ for (i = 0; i < ih->data->node_count; i++)
+ {
+- XtVaSetValues(itemList[i], XmNbackground, bgcolor, NULL);
+-
+- /* Check whether we have child items */
+- itemChildList = NULL;
+- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
+- if(numChild)
+- motTreeUpdateBgColor(ih, itemChildList, numChild, bgcolor);
+- if (itemChildList) XtFree((char*)itemChildList);
+-
+- /* Go to next sibling item */
+- i++;
++ XtVaSetValues(ih->data->node_cache[i].node_handle, XmNbackground, bgcolor, NULL);
+ }
+ }
+ 
+-static void motTreeUpdateImages(Ihandle* ih, WidgetList itemList, int numItems, int mode)
++static void motTreeUpdateImages(Ihandle* ih, int mode)
+ {
+- motTreeItemData *itemData;
+- int i = 0;
+-
++ int i;
+ /* called when one of the default images is changed */
+-
+- while(i != numItems)
++ for (i = 0; i < ih->data->node_count; i++)
+ {
+- /* Get node attributes */
+- XtVaGetValues(itemList[i], XmNuserData, &itemData, NULL);
+- 
++ motTreeItemData *itemData;
++ Widget wItem = ih->data->node_cache[i].node_handle;
++
++ XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
++
+ if (itemData->kind == ITREE_BRANCH)
+ {
+ unsigned char itemState;
+- XtVaGetValues(itemList[i], XmNoutlineState, &itemState, NULL);
++ XtVaGetValues(wItem, XmNoutlineState, &itemState, NULL);
+ 
+ if (itemState == XmEXPANDED)
+ {
+ if (mode == ITREE_UPDATEIMAGE_EXPANDED)
+ {
+- XtVaSetValues(itemList[i], XmNsmallIconPixmap, (itemData->image_expanded!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded: (Pixmap)ih->data->def_image_expanded, NULL);
+- XtVaSetValues(itemList[i], XmNsmallIconMask, (itemData->image_expanded_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded_mask: (Pixmap)ih->data->def_image_expanded_mask, NULL);
++ XtVaSetValues(wItem, XmNsmallIconPixmap, (itemData->image_expanded!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded: (Pixmap)ih->data->def_image_expanded, NULL);
++ XtVaSetValues(wItem, XmNsmallIconMask, (itemData->image_expanded_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded_mask: (Pixmap)ih->data->def_image_expanded_mask, NULL);
+ }
+ }
+ else 
+ {
+ if (mode == ITREE_UPDATEIMAGE_COLLAPSED)
+ {
+- XtVaSetValues(itemList[i], XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_collapsed, NULL);
+- XtVaSetValues(itemList[i], XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_collapsed_mask, NULL);
++ XtVaSetValues(wItem, XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_collapsed, NULL);
++ XtVaSetValues(wItem, XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_collapsed_mask, NULL);
+ }
+ }
+-
+- /* Recursively traverse child items */
+- {
+- WidgetList itemChildList;
+- int numChild;
+- itemChildList = NULL;
+- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
+- motTreeUpdateImages(ih, itemChildList, numChild, mode);
+- if (itemChildList) XtFree((char*)itemChildList);
+- }
+ }
+ else 
+ {
+ if (mode == ITREE_UPDATEIMAGE_LEAF)
+ {
+- XtVaSetValues(itemList[i], XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_leaf, NULL);
+- XtVaSetValues(itemList[i], XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_leaf_mask, NULL);
++ XtVaSetValues(wItem, XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_leaf, NULL);
++ XtVaSetValues(wItem, XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_leaf_mask, NULL);
+ }
+ }
+-
+- /* Go to next sibling node */
+- i++;
+ }
+ }
+ 
+-static int motTreeSelectFunc(Ihandle* ih, Widget wItem, int *select)
++static int motTreeIsNodeSelected(Widget wItem)
++{
++ unsigned char isSelected;
++ XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL);
++ if(isSelected == XmSELECTED)
++ return 1;
++ else
++ return 0;
++}
++
++static void motTreeSelectNode(Widget wItem, int select)
++{
++ if (select == -1)
++ select = !motTreeIsNodeSelected(wItem); /* toggle */
++
++ if (select)
++ XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);
++ else
++ XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
++}
++
++static int motTreeSelectFunc(Ihandle* ih, Widget wItem, int id, int *select)
+ {
+ int do_select = *select;
+ if (do_select == -1)
+- {
+- unsigned char isSelected;
+- XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL);
+- do_select = (isSelected == XmSELECTED)? 0: 1; /* toggle */
+- }
++ do_select = !motTreeIsNodeSelected(wItem); /* toggle */
+ 
+ if (do_select)
+ XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);
+@@ -463,272 +446,111 @@ static int motTreeSelectFunc(Ihandle* ih, Widget wItem, int *select)
+ XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
+ 
+ (void)ih;
++ (void)id;
+ return 1;
+ }
+ 
+ static void motTreeInvertAllNodeMarking(Ihandle* ih)
+ {
+ int select = -1;
+- motTreeForEach(ih, NULL, (motTreeNodeFunc)motTreeSelectFunc, &select);
++ iupTreeForEach(ih, (iupTreeNodeFunc)motTreeSelectFunc, &select);
+ }
+ 
+-typedef struct _motTreeRange{
+- Widget wItem1, wItem2;
+- char inside, clear;
+-}motTreeRange;
+-
+-static int motTreeSelectRangeFunc(Ihandle* ih, Widget wItem, motTreeRange* range)
++static void motTreeSelectRange(Ihandle* ih, Widget wItem1, Widget wItem2, int clear)
+ {
+- int end_range = 0;
+-
+- if (range->inside == 0) /* detect the range start */
+- {
+- if (range->wItem1 == wItem) range->inside=1;
+- else if (range->wItem2 == wItem) range->inside=1;
+- }
+- else if (range->inside == 1) /* detect the range end */
++ int i;
++ int id1 = iupTreeFindNodeId(ih, wItem1);
++ int id2 = iupTreeFindNodeId(ih, wItem2);
++ if (id1 > id2)
+ {
+- if (range->wItem1 == wItem) end_range=1;
+- else if (range->wItem2 == wItem) end_range=1;
++ int tmp = id1;
++ id1 = id2;
++ id2 = tmp;
+ }
+ 
+- if (range->inside == 1) /* if inside, select */
+- XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);
+- else if (range->clear) /* if outside and clear, unselect */
+- XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
+-
+- if (end_range || (range->inside && range->wItem1==range->wItem2))
+- range->inside=-1; /* update after selecting the node */
+-
+- (void)ih;
+- return 1;
+-}
+-
+-static void motTreeSelectRange(Ihandle* ih, Widget wItem1, Widget wItem2, int clear)
+-{
+- motTreeRange range;
+- range.wItem1 = wItem1;
+- range.wItem2 = wItem2;
+- range.inside = 0;
+- range.clear = (char)clear;
+- motTreeForEach(ih, NULL, (motTreeNodeFunc)motTreeSelectRangeFunc, &range);
+-}
+-
+-void motTreeExpandCollapseAllNodes(Ihandle* ih, WidgetList itemList, int numItems, unsigned char itemState)
+-{
+- WidgetList itemChildList;
+- int numChild;
+- int i = 0;
+-
+- while(i != numItems)
++ for (i = 0; i < ih->data->node_count; i++)
+ {
+- /* Check whether we have child items */
+- itemChildList = NULL;
+- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
+-
+- if(numChild)
++ if (i < id1 || i > id2)
+ {
+- XtVaSetValues(itemList[i], XmNoutlineState, itemState, NULL);
+- motTreeExpandCollapseAllNodes(ih, itemChildList, numChild, itemState);
++ if (clear)
++ XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
+ }
+-
+- if (itemChildList) XtFree((char*)itemChildList);
+- /* Go to next sibling item */
+- i++;
++ else
++ XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmSELECTED, NULL);
+ }
+ }
+ 
+-static void motTreeDestroyItemData(Ihandle* ih, Widget wItem)
++void motTreeExpandCollapseAllNodes(Ihandle* ih, unsigned char itemState)
+ {
+- motTreeItemData *itemData = NULL;
+- XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
+- if (itemData)
++ int i;
++ /* called when one of the default images is changed */
++ for (i = 0; i < ih->data->node_count; i++)
+ {
+- IFnis cb = (IFnis)IupGetCallback(ih, "NODEREMOVED_CB");
+- if (cb) cb(ih, motTreeGetNodeId(ih, wItem), (char*)itemData->userdata);
+- free(itemData);
+- XtVaSetValues(wItem, XmNuserData, NULL, NULL);
+- }
+-}
+-
+-static void motTreeRemoveChildren(Ihandle* ih, WidgetList itemList, int numItems, int del_userdata)
+-{
+- WidgetList itemChildList;
+- int numChild;
+- int i = 0;
++ motTreeItemData *itemData;
++ Widget wItem = ih->data->node_cache[i].node_handle;
+ 
+- while(i != numItems)
+- { 
++ XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
++ 
+ /* Check whether we have child items */
+- itemChildList = NULL;
+- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
+- if (numChild)
+- motTreeRemoveChildren(ih, itemChildList, numChild, del_userdata);
+-
+- if (del_userdata)
+- motTreeDestroyItemData(ih, itemList[i]);
+-
+- XtDestroyWidget(itemList[i]);
+-
+- if (itemChildList) XtFree((char*)itemChildList);
+- /* Go to next sibling item */
+- i++;
++ if (itemData->kind == ITREE_BRANCH)
++ XtVaSetValues(wItem, XmNoutlineState, itemState, NULL);
+ }
+ }
+ 
+-static void motTreeRemoveNode(Ihandle* ih, Widget wItem, int del_userdata)
++static void motTreeDestroyItemData(Ihandle* ih, Widget wItem, int del_data, IFns cb, int id)
+ {
+- WidgetList wChildList = NULL;
+- int numChild = XmContainerGetItemChildren(ih->handle, wItem, &wChildList);
+- if (numChild)
+- motTreeRemoveChildren(ih, wChildList, numChild, del_userdata);
+- if (del_userdata)
+- motTreeDestroyItemData(ih, wItem);
+- XtDestroyWidget(wItem);
+- if (wChildList) XtFree((char*)wChildList);
+-}
+-
+-static Widget motTreeFindNodeID(Ihandle* ih, WidgetList itemList, int numItems, Widget itemNode)
+-{
+- Widget itemChild;
+- WidgetList itemChildList;
+- int i = 0;
+- int numChild;
+-
+- while(i != numItems)
++ motTreeItemData *itemData = NULL;
++ XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
++ if (itemData)
+ {
+- /* ID control to traverse items */
+- ih->data->id_control++;
++ if (cb) 
++ cb(ih, (char*)ih->data->node_cache[id].userdata);
+ 
+- /* StateID founded! */
+- if(itemList[i] == itemNode)
+- return itemList[i];
+-
+- /* Check whether we have child items */
+- itemChildList = NULL;
+- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
+- if(numChild)
++ if (del_data)
+ {
+- /* pass the list of children of this item */
+- itemChild = motTreeFindNodeID(ih, itemChildList, numChild, itemNode);
+-
+- /* StateID founded! */
+- if(itemChild)
+- {
+- if (itemChildList) XtFree((char*)itemChildList);
+- return itemChild;
+- }
++ free(itemData);
++ XtVaSetValues(wItem, XmNuserData, NULL, NULL);
+ }
+-
+- if (itemChildList) XtFree((char*)itemChildList);
+- /* Go to next sibling item */
+- i++;
+ }
+-
+- return NULL;
+ }
+ 
+-static Widget motTreeFindNodeFromID(Ihandle* ih, WidgetList itemList, int numItems)
++static void motTreeRemoveNodeRec(Ihandle* ih, Widget wItem, int del_data, IFns cb, int *id)
+ {
+- Widget itemChild;
+- WidgetList itemChildList;
+- int i = 0;
+- int numChild;
++ WidgetList itemChildList = NULL;
++ int i, numChild;
++ int old_id = *id;
+ 
+- while(i != numItems)
++ /* Check whether we have child items */
++ /* remove from children first */
++ numChild = XmContainerGetItemChildren(ih->handle, wItem, &itemChildList);
++ for (i = 0; i < numChild; i++)
+ {
+- /* ID control to traverse items */
+- ih->data->id_control--;
+-
+- /* StateID founded! */
+- if(ih->data->id_control < 0)
+- return itemList[i];
+-
+- /* Check whether we have child items */
+- itemChildList = NULL;
+- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
+- if(numChild)
+- {
+- /* pass the list of children of this item */
+- itemChild = motTreeFindNodeFromID(ih, itemChildList, numChild);
+-
+- /* StateID founded! */
+- if(ih->data->id_control < 0)
+- {
+- if (itemChildList) XtFree((char*)itemChildList);
+- return itemChild;
+- }
+- }
+-
+- if (itemChildList) XtFree((char*)itemChildList);
+- /* Go to next sibling item */
+- i++;
++ /* go recursive to children */
++ motTreeRemoveNodeRec(ih, itemChildList[i], del_data, cb, id);
+ }
++ if (itemChildList) XtFree((char*)itemChildList);
+ 
+- return NULL;
+-}
++ /* actually do it for the node */
++ ih->data->node_count--;
++ (*id)++;
+ 
+-static int motTreeGetNodeId(Ihandle* ih, Widget wItem)
+-{
+- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+- ih->data->id_control = -1;
+- if (motTreeFindNodeID(ih, &wRoot, 1, wItem))
+- return ih->data->id_control;
+- else
+- return -1;
++ if (del_data || cb)
++ motTreeDestroyItemData(ih, wItem, del_data, cb, old_id);
++
++ XtDestroyWidget(wItem); /* must manually destroy each node, this is NOT recursive */
+ }
+ 
+-static Widget motTreeFindUserDataID(Ihandle* ih, WidgetList itemList, int numItems, void* userdata)
++static void motTreeRemoveNode(Ihandle* ih, Widget wItem, int del_data, int call_cb)
+ {
+- Widget itemChild;
+- WidgetList itemChildList;
+- motTreeItemData *itemData;
+- int i = 0;
+- int numChild;
+-
+- while(i != numItems)
+- {
+- /* ID control to traverse items */
+- ih->data->id_control++;
+-
+- XtVaGetValues(itemList[i], XmNuserData, &itemData, NULL);
+-
+- /* StateID founded! */
+- if(itemData->userdata == userdata)
+- return itemList[i];
++ IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL;
++ int old_count = ih->data->node_count;
++ int id = iupTreeFindNodeId(ih, wItem);
++ int old_id = id;
+ 
+- /* Check whether we have child items */
+- itemChildList = NULL;
+- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);
+- if(numChild)
+- {
+- /* pass the list of children of this item */
+- itemChild = motTreeFindUserDataID(ih, itemChildList, numChild, userdata);
+-
+- /* StateID founded! */
+- if (itemChild)
+- {
+- if (itemChildList) XtFree((char*)itemChildList);
+- return itemChild;
+- }
+- }
++ motTreeRemoveNodeRec(ih, wItem, del_data, cb, &id);
+ 
+- if (itemChildList) XtFree((char*)itemChildList);
+- /* Go to next sibling item */
+- i++;
+- }
+-
+- return NULL;
+-}
+-
+-static int motTreeGetUserDataId(Ihandle* ih, void* userdata)
+-{
+- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+- ih->data->id_control = -1;
+- if (motTreeFindUserDataID(ih, &wRoot, 1, userdata))
+- return ih->data->id_control;
+- else
+- return -1;
++ if (call_cb)
++ iupTreeDelFromCache(ih, old_id, old_count-ih->data->node_count);
+ }
+ 
+ static void motTreeSetFocusNode(Ihandle* ih, Widget wItem)
+@@ -737,7 +559,7 @@ static void motTreeSetFocusNode(Ihandle* ih, Widget wItem)
+ XmProcessTraversal(wItem, XmTRAVERSE_CURRENT);
+ }
+ 
+-static Widget motTreeGetFocusNode(Ihandle* ih)
++Widget iupdrvTreeGetFocusNode(Ihandle* ih)
+ {
+ Widget wItem = XmGetFocusWidget(ih->handle); /* returns the focus in the dialog */
+ if (wItem && XtParent(wItem) == ih->handle) /* is a node */
+@@ -746,18 +568,6 @@ static Widget motTreeGetFocusNode(Ihandle* ih)
+ return (Widget)iupAttribGet(ih, "_IUPTREE_LAST_FOCUS");
+ }
+ 
+-static Widget motTreeFindNodeFromString(Ihandle* ih, const char* name_id)
+-{
+- if (name_id[0])
+- {
+- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+- iupStrToInt(name_id, &ih->data->id_control);
+- return motTreeFindNodeFromID(ih, &wRoot, 1);
+- }
+- else
+- return motTreeGetFocusNode(ih);
+-}
+-
+ static void motTreeEnterLeaveWindowEvent(Widget w, Ihandle *ih, XEvent *evt, Boolean *cont)
+ {
+ if (iupAttribGet(ih, "_IUPTREE_EDITFIELD"))
+@@ -812,16 +622,24 @@ static void motTreeFocusChangeEvent(Widget w, Ihandle *ih, XEvent *evt, Boolean
+ 
+ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* title, int add)
+ {
+- Widget wItemPrev = motTreeFindNodeFromString(ih, name_id);
+- Widget wNewItem;
++ Widget wItemPrev = iupTreeGetNodeFromString(ih, name_id);
++ Widget wItemNew;
+ XmString itemTitle;
+- motTreeItemData *itemData, *itemDataPrev;
++ motTreeItemData *itemData;
+ Pixel bgcolor, fgcolor;
+- int kindPrev, num_args = 0;
++ int kindPrev = 0, num_args = 0;
+ Arg args[30];
+ 
+ if (!wItemPrev)
+- return;
++ {
++ /* check if the root was really specified */
++ int id = 0;
++ if (!iupStrToInt(name_id, &id) || id != -1)
++ return;
++ }
++
++ if (!title)
++ title = "";
+ 
+ itemData = calloc(1, sizeof(motTreeItemData));
+ itemData->image = XmUNSPECIFIED_PIXMAP;
+@@ -836,138 +654,103 @@ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t
+ XtVaGetValues(ih->handle, XmNforeground, &fgcolor, NULL);
+ XtVaGetValues(ih->handle, XmNbackground, &bgcolor, NULL);
+ 
+- /* Get the kind of previous item */
+- XtVaGetValues(wItemPrev, XmNuserData, &itemDataPrev, NULL);
+- kindPrev = itemDataPrev->kind;
+-
+- if (kindPrev == ITREE_BRANCH && add)
++ if (wItemPrev)
+ {
+- /* wItemPrev is parent of the new item (firstchild of it) */
+- iupmotSetArg(args, num_args, XmNentryParent, wItemPrev);
+- iupmotSetArg(args, num_args, XmNpositionIndex, 0);
+- }
+- else
+- {
+- /* wItemPrev is sibling of the new item (set its parent to the new item) */
+- Widget wItemParent;
+- int pos;
++ motTreeItemData *itemDataPrev;
+ 
+- XtVaGetValues(wItemPrev, XmNentryParent, &wItemParent, NULL);
+- XtVaGetValues(wItemPrev, XmNpositionIndex, &pos, NULL);
++ /* Get the kind of previous item */
++ XtVaGetValues(wItemPrev, XmNuserData, &itemDataPrev, NULL);
++ kindPrev = itemDataPrev->kind;
++
++ if (kindPrev == ITREE_BRANCH && add)
++ {
++ /* wItemPrev is parent of the new item (firstchild of it) */
++ iupMOT_SETARG(args, num_args, XmNentryParent, wItemPrev);
++ iupMOT_SETARG(args, num_args, XmNpositionIndex, 0);
++ }
++ else
++ {
++ /* wItemPrev is sibling of the new item (set its parent to the new item) */
++ Widget wItemParent;
++ int pos;
+ 
+- iupmotSetArg(args, num_args, XmNentryParent, wItemParent);
+- iupmotSetArg(args, num_args, XmNpositionIndex, pos+1);
++ XtVaGetValues(wItemPrev, XmNentryParent, &wItemParent, NULL);
++ XtVaGetValues(wItemPrev, XmNpositionIndex, &pos, NULL);
++
++ iupMOT_SETARG(args, num_args, XmNentryParent, wItemParent);
++ iupMOT_SETARG(args, num_args, XmNpositionIndex, pos+1);
++ }
+ }
+ 
+- iupmotSetArg(args, num_args, XmNuserData, itemData);
+- iupmotSetArg(args, num_args, XmNforeground, fgcolor);
+- iupmotSetArg(args, num_args, XmNbackground, bgcolor);
+- iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing);
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+- iupmotSetArg(args, num_args, XmNviewType, XmSMALL_ICON);
+- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
+- iupmotSetArg(args, num_args, XmNlabelString, itemTitle);
++ iupMOT_SETARG(args, num_args, XmNuserData, itemData);
++ iupMOT_SETARG(args, num_args, XmNforeground, fgcolor);
++ iupMOT_SETARG(args, num_args, XmNbackground, bgcolor);
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, ih->data->spacing);
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNviewType, XmSMALL_ICON);
++ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNlabelString, itemTitle);
+ 
+ if (kind == ITREE_BRANCH)
+ {
+ if (ih->data->add_expanded)
+ {
+- iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_expanded);
+- iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_expanded_mask);
++ iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, ih->data->def_image_expanded);
++ iupMOT_SETARG(args, num_args, XmNsmallIconMask, ih->data->def_image_expanded_mask);
+ }
+ else
+ {
+- iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_collapsed);
+- iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_collapsed_mask);
++ iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, ih->data->def_image_collapsed);
++ iupMOT_SETARG(args, num_args, XmNsmallIconMask, ih->data->def_image_collapsed_mask);
+ }
+ }
+ else
+ {
+- iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_leaf);
+- iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_leaf_mask);
++ iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, ih->data->def_image_leaf);
++ iupMOT_SETARG(args, num_args, XmNsmallIconMask, ih->data->def_image_leaf_mask);
+ }
+ 
++ /* Add the new node */
++ wItemNew = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);
++ if (wItemPrev)
++ iupTreeAddToCache(ih, add, kindPrev, wItemPrev, wItemNew);
++ else
++ {
++ iupTreeAddToCache(ih, 0, 0, NULL, wItemNew);
++
++ if (ih->data->node_count == 1)
++ {
++ /* MarkStart node */
++ iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)wItemNew);
+ 
+- wNewItem = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);
++ /* Set the default VALUE */
++ motTreeSetFocusNode(ih, wItemNew);
++ }
++ }
+ 
+ if (kind == ITREE_BRANCH)
+ {
++ iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", "1");
+ if (ih->data->add_expanded)
+- {
+- iupAttribSetStr(ih, "_IUP_IGNORE_BRANCHOPEN", "1");
+- XtVaSetValues(wNewItem, XmNoutlineState, XmEXPANDED, NULL);
+- }
++ XtVaSetValues(wItemNew, XmNoutlineState, XmEXPANDED, NULL);
+ else
+- XtVaSetValues(wNewItem, XmNoutlineState, XmCOLLAPSED, NULL);
++ XtVaSetValues(wItemNew, XmNoutlineState, XmCOLLAPSED, NULL);
++ iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", NULL);
+ }
+ 
+- /* Root always expanded */
+- XtVaSetValues((Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"), XmNoutlineState, XmEXPANDED, NULL);
+-
+- XtRealizeWidget(wNewItem);
++ XtRealizeWidget(wItemNew);
+ XmStringFree(itemTitle);
+ }
+ 
+-static void motTreeAddRootNode(Ihandle* ih)
+-{
+- Widget wRootItem;
+- motTreeItemData *itemData;
+- Pixel bgcolor, fgcolor;
+- int num_args = 0;
+- Arg args[30];
+-
+- itemData = calloc(1, sizeof(motTreeItemData));
+- itemData->image = XmUNSPECIFIED_PIXMAP;
+- itemData->image_expanded = XmUNSPECIFIED_PIXMAP;
+- itemData->image_mask = XmUNSPECIFIED_PIXMAP;
+- itemData->image_expanded_mask = XmUNSPECIFIED_PIXMAP;
+- itemData->kind = ITREE_BRANCH;
+-
+- /* Get default foreground color */
+- XtVaGetValues(ih->handle, XmNforeground, &fgcolor, NULL);
+- XtVaGetValues(ih->handle, XmNbackground, &bgcolor, NULL);
+-
+- iupmotSetArg(args, num_args, XmNentryParent, NULL);
+- iupmotSetArg(args, num_args, XmNuserData, itemData);
+- iupmotSetArg(args, num_args, XmNforeground, fgcolor);
+- iupmotSetArg(args, num_args, XmNbackground, bgcolor);
+- iupmotSetArg(args, num_args, XmNoutlineState, XmEXPANDED);
+- iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing);
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+- iupmotSetArg(args, num_args, XmNviewType, XmSMALL_ICON);
+- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
+- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
+- iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_expanded);
+- iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_expanded_mask);
+-
+- wRootItem = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);
+-
+- /* Select the new item */
+- XtVaSetValues(wRootItem, XmNvisualEmphasis, XmSELECTED, NULL);
+-
+- XtRealizeWidget(wRootItem);
+-
+- /* Save the root node for later use */
+- iupAttribSetStr(ih, "_IUPTREE_ROOTITEM", (char*)wRootItem);
+-
+- /* MarkStart node */
+- iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)wRootItem);
+-
+- /* Set the default VALUE */
+- /* In Motif this will set also the current focus */
+- motTreeSetFocusNode(ih, wRootItem);
+-}
+-
+ /*****************************************************************************/
+ 
+ static int motTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+ motTreeItemData *itemData;
+ unsigned char itemState;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem)
+ return 0;
+ 
+@@ -1003,7 +786,7 @@ static int motTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const
+ static int motTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+ motTreeItemData *itemData;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem) 
+ return 0;
+ 
+@@ -1053,7 +836,6 @@ static int motTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v
+ 
+ static int motTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value)
+ {
+- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+ ih->data->def_image_expanded = iupImageGetImage(value, ih, 0);
+ if (!ih->data->def_image_expanded) 
+ {
+@@ -1067,14 +849,13 @@ static int motTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value)
+ }
+ 
+ /* Update all images, starting at root node */
+- motTreeUpdateImages(ih, &wRoot, 1, ITREE_UPDATEIMAGE_EXPANDED);
++ motTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED);
+ 
+ return 1;
+ }
+ 
+ static int motTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value)
+ {
+- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+ ih->data->def_image_collapsed = iupImageGetImage(value, ih, 0);
+ if (!ih->data->def_image_collapsed) 
+ {
+@@ -1088,14 +869,13 @@ static int motTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value)
+ }
+ 
+ /* Update all images, starting at root node */
+- motTreeUpdateImages(ih, &wRoot, 1, ITREE_UPDATEIMAGE_COLLAPSED);
++ motTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED);
+ 
+ return 1;
+ }
+ 
+ static int motTreeSetImageLeafAttrib(Ihandle* ih, const char* value)
+ {
+- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+ ih->data->def_image_leaf = iupImageGetImage(value, ih, 0);
+ if (!ih->data->def_image_leaf) 
+ {
+@@ -1109,7 +889,7 @@ static int motTreeSetImageLeafAttrib(Ihandle* ih, const char* value)
+ }
+ 
+ /* Update all images, starting at root node */
+- motTreeUpdateImages(ih, &wRoot, 1, ITREE_UPDATEIMAGE_LEAF);
++ motTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF);
+ 
+ return 1;
+ }
+@@ -1118,7 +898,7 @@ static char* motTreeGetStateAttrib(Ihandle* ih, const char* name_id)
+ {
+ int hasChildren;
+ unsigned char itemState;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem) 
+ return 0;
+ 
+@@ -1138,14 +918,21 @@ static char* motTreeGetStateAttrib(Ihandle* ih, const char* name_id)
+ 
+ static int motTreeSetStateAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+- if (!wItem) 
++ motTreeItemData *itemData;
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
++ if (!wItem)
+ return 0;
+ 
+- if (iupStrEqualNoCase(value, "EXPANDED"))
+- XtVaSetValues(wItem, XmNoutlineState, XmEXPANDED, NULL);
+- else 
+- XtVaSetValues(wItem, XmNoutlineState, XmCOLLAPSED, NULL);
++ XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
++ if (itemData->kind == ITREE_BRANCH)
++ {
++ iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", "1");
++ if (iupStrEqualNoCase(value, "EXPANDED"))
++ XtVaSetValues(wItem, XmNoutlineState, XmEXPANDED, NULL);
++ else 
++ XtVaSetValues(wItem, XmNoutlineState, XmCOLLAPSED, NULL);
++ iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", NULL);
++ }
+ 
+ return 0;
+ }
+@@ -1155,7 +942,7 @@ static char* motTreeGetColorAttrib(Ihandle* ih, const char* name_id)
+ unsigned char r, g, b;
+ Pixel color;
+ char* str;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id); 
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id); 
+ if (!wItem) 
+ return NULL;
+ 
+@@ -1170,7 +957,7 @@ static char* motTreeGetColorAttrib(Ihandle* ih, const char* name_id)
+ static int motTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+ Pixel color;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id); 
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id); 
+ if (!wItem) 
+ return 0;
+ 
+@@ -1182,36 +969,33 @@ static int motTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v
+ 
+ static char* motTreeGetDepthAttrib(Ihandle* ih, const char* name_id)
+ {
+- Widget wRoot;
+- int dep = 0;
+- char* depth;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id); 
++ int depth = -1;
++ char* str;
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id); 
+ if (!wItem) 
+ return NULL;
+ 
+- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+-
+- while((wRoot != wItem) && (wItem != NULL))
++ while(wItem != NULL)
+ {
+ XtVaGetValues(wItem, XmNentryParent, &wItem, NULL);
+- dep++;
++ depth++;
+ }
+ 
+- depth = iupStrGetMemory(10);
+- sprintf(depth, "%d", dep);
+- return depth;
++ str = iupStrGetMemory(10);
++ sprintf(str, "%d", depth);
++ return str;
+ }
+ 
+ static int motTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+ Widget wItemDst, wParent, wItemSrc;
+ 
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+- wItemSrc = motTreeFindNodeFromString(ih, name_id);
++ wItemSrc = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItemSrc)
+ return 0;
+- wItemDst = motTreeFindNodeFromString(ih, value);
++ wItemDst = iupTreeGetNodeFromString(ih, value);
+ if (!wItemDst)
+ return 0;
+ 
+@@ -1224,11 +1008,8 @@ static int motTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char
+ return 0;
+ }
+ 
+- /* Copying the node and its children to the new position */
+- motTreeCopyNode(ih, wItemSrc, wItemDst, 0); /* not a full copy, preserve user data */
+-
+- /* Deleting the node (and its children) inserted into the old position */
+- motTreeRemoveNode(ih, wItemSrc, 0); /* do not delete the user data, we copy the references in CopyNode */
++ /* Move the node and its children to the new position */
++ motTreeCopyMoveNode(ih, wItemSrc, wItemDst, 0);
+ 
+ return 0;
+ }
+@@ -1237,12 +1018,12 @@ static int motTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char
+ {
+ Widget wItemDst, wParent, wItemSrc;
+ 
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+- wItemSrc = motTreeFindNodeFromString(ih, name_id);
++ wItemSrc = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItemSrc)
+ return 0;
+- wItemDst = motTreeFindNodeFromString(ih, value);
++ wItemDst = iupTreeGetNodeFromString(ih, value);
+ if (!wItemDst)
+ return 0;
+ 
+@@ -1255,8 +1036,8 @@ static int motTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char
+ return 0;
+ }
+ 
+- /* Copying the node and its children to the new position */
+- motTreeCopyNode(ih, wItemSrc, wItemDst, 1);
++ /* Copy the node and its children to the new position */
++ motTreeCopyMoveNode(ih, wItemSrc, wItemDst, 1);
+ 
+ return 0;
+ }
+@@ -1265,7 +1046,7 @@ static char* motTreeGetParentAttrib(Ihandle* ih, const char* name_id)
+ {
+ Widget wItemParent;
+ char* str;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem) 
+ return NULL;
+ 
+@@ -1275,7 +1056,7 @@ static char* motTreeGetParentAttrib(Ihandle* ih, const char* name_id)
+ return NULL;
+ 
+ str = iupStrGetMemory(10);
+- sprintf(str, "%d", motTreeGetNodeId(ih, wItemParent));
++ sprintf(str, "%d", iupTreeFindNodeId(ih, wItemParent));
+ return str;
+ }
+ 
+@@ -1283,7 +1064,7 @@ static char* motTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)
+ {
+ char* str;
+ WidgetList wList = NULL;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem) 
+ return NULL;
+ 
+@@ -1293,30 +1074,10 @@ static char* motTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)
+ return str;
+ }
+ 
+-static int motTreeCount(Ihandle* ih, Widget wItem)
+-{
+- WidgetList wList = NULL;
+- int i, count = 0;
+- int childCount = XmContainerGetItemChildren(ih->handle, wItem, &wList);
+- count++;
+- for (i=0; i<childCount; i++)
+- count += motTreeCount(ih, wList[i]);
+- if (wList) XtFree((char*)wList);
+- return count;
+-}
+-
+-static char* motTreeGetCountAttrib(Ihandle* ih)
+-{
+- char* str = iupStrGetMemory(10);
+- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+- sprintf(str, "%d", motTreeCount(ih, wRoot));
+- return str;
+-}
+-
+ static char* motTreeGetKindAttrib(Ihandle* ih, const char* name_id)
+ {
+ motTreeItemData *itemData;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem) 
+ return NULL;
+ 
+@@ -1331,15 +1092,64 @@ static char* motTreeGetKindAttrib(Ihandle* ih, const char* name_id)
+ static char* motTreeGetValueAttrib(Ihandle* ih)
+ {
+ char* str;
+- Widget wItem = motTreeGetFocusNode(ih);
++ Widget wItem = iupdrvTreeGetFocusNode(ih);
+ if (!wItem)
+- return "0"; /* default VALUE is root */
++ {
++ if (ih->data->node_count)
++ return "0"; /* default VALUE is root */
++ else
++ return "-1";
++ }
+ 
+ str = iupStrGetMemory(10);
+- sprintf(str, "%d", motTreeGetNodeId(ih, wItem));
++ sprintf(str, "%d", iupTreeFindNodeId(ih, wItem));
++ return str;
++}
++
++static char* motTreeGetMarkedNodesAttrib(Ihandle* ih)
++{
++ char* str;
++ int i;
++
++ if (ih->data->mark_mode==ITREE_MARK_SINGLE)
++ return NULL;
++
++ str = iupStrGetMemory(ih->data->node_count+1);
++
++ for (i=0; i<ih->data->node_count; i++)
++ {
++ if (motTreeIsNodeSelected(ih->data->node_cache[i].node_handle))
++ str[i] = '+';
++ else
++ str[i] = '-';
++ }
++
++ str[ih->data->node_count] = 0;
+ return str;
+ }
+ 
++static int motTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value)
++{
++ int count, i;
++
++ if (ih->data->mark_mode==ITREE_MARK_SINGLE || !value)
++ return 0;
++
++ count = strlen(value);
++ if (count > ih->data->node_count)
++ count = ih->data->node_count;
++
++ for (i=0; i<count; i++)
++ {
++ if (value[i] == '+')
++ XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmSELECTED, NULL);
++ else
++ XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
++ }
++
++ return 0;
++}
++
+ static int motTreeSetMarkAttrib(Ihandle* ih, const char* value)
+ {
+ if (ih->data->mark_mode==ITREE_MARK_SINGLE)
+@@ -1353,21 +1163,16 @@ static int motTreeSetMarkAttrib(Ihandle* ih, const char* value)
+ motTreeInvertAllNodeMarking(ih);
+ else if(iupStrEqualPartial(value, "INVERT"))
+ {
+- unsigned char isSelected;
+- Widget wItem = motTreeFindNodeFromString(ih, &value[strlen("INVERT")]);
++ Widget wItem = iupTreeGetNodeFromString(ih, &value[strlen("INVERT")]);
+ if (!wItem) 
+ return 0;
+ 
+- XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL);
+- if (isSelected == XmSELECTED)
+- XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
+- else
+- XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);
++ motTreeSelectNode(wItem, -1);
+ }
+ else if(iupStrEqualNoCase(value, "BLOCK"))
+ {
+ Widget wItem = (Widget)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE");
+- Widget wFocusItem = motTreeGetFocusNode(ih);
++ Widget wFocusItem = iupdrvTreeGetFocusNode(ih);
+ if(!wFocusItem || !wItem)
+ return 0;
+ motTreeSelectRange(ih, wFocusItem, wItem, 0);
+@@ -1379,10 +1184,10 @@ static int motTreeSetMarkAttrib(Ihandle* ih, const char* value)
+ if (iupStrToStrStr(value, str1, str2, '-')!=2)
+ return 0;
+ 
+- wItem1 = motTreeFindNodeFromString(ih, str1);
++ wItem1 = iupTreeGetNodeFromString(ih, str1);
+ if (!wItem1) 
+ return 0;
+- wItem2 = motTreeFindNodeFromString(ih, str2);
++ wItem2 = iupTreeGetNodeFromString(ih, str2);
+ if (!wItem2) 
+ return 0;
+ 
+@@ -1394,69 +1199,49 @@ static int motTreeSetMarkAttrib(Ihandle* ih, const char* value)
+ 
+ static int motTreeSetValueAttrib(Ihandle* ih, const char* value)
+ {
+- Widget wRoot, wItem;
++ Widget wItem, wItemParent;
+ 
+ if (motTreeSetMarkAttrib(ih, value))
+ return 0;
+ 
+- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+-
+- if (iupStrEqualNoCase(value, "ROOT"))
+- wItem = wRoot;
++ if (iupStrEqualNoCase(value, "ROOT") || iupStrEqualNoCase(value, "FIRST"))
++ wItem = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+ else if(iupStrEqualNoCase(value, "LAST"))
+- wItem = motTreeGetLastVisibleNode(ih, wRoot);
++ wItem = motTreeGetLastVisibleNode(ih);
+ else if(iupStrEqualNoCase(value, "PGUP"))
+ {
+- Widget wItemFocus = motTreeGetFocusNode(ih);
++ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
+ if(!wItemFocus)
+ return 0;
+ 
+- ih->data->id_control = -1;
+- motTreeFindVisibleNodeId(ih, &wRoot, 1, wItemFocus);
+- ih->data->id_control -= 10; /* less 10 visible nodes */
+-
+- if(ih->data->id_control < 0)
+- ih->data->id_control = 0; /* Begin of tree = Root id */
+-
+- wItem = motTreeFindVisibleNodeFromId(ih, &wRoot, 1);
++ wItem = motTreeGetPreviousVisibleNode(ih, wItemFocus, 10);
+ }
+ else if(iupStrEqualNoCase(value, "PGDN"))
+ {
+- Widget wNext, wItemFocus;
+-
+- wItemFocus = motTreeGetFocusNode(ih);
++ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
+ if(!wItemFocus)
+ return 0;
+ 
+- ih->data->id_control = -1;
+- motTreeFindVisibleNodeId(ih, &wRoot, 1, wItemFocus);
+- ih->data->id_control += 10; /* more 10 visible nodes */
+-
+- wNext = motTreeFindVisibleNodeFromId(ih, &wRoot, 1);
+-
+- if (ih->data->id_control >= 0)
+- wNext = motTreeGetLastVisibleNode(ih, wRoot);
+- 
+- wItem = wNext;
++ wItem = motTreeGetNextVisibleNode(ih, wItemFocus, 10);
+ }
+ else if(iupStrEqualNoCase(value, "NEXT"))
+ {
+- Widget wItemFocus = motTreeGetFocusNode(ih);
++ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
+ if (!wItemFocus)
+ return 0;
+ 
+- wItem = motTreeGetNextVisibleNode(ih, wRoot, wItemFocus);
++ wItem = motTreeGetNextVisibleNode(ih, wItemFocus, 1);
+ }
+ else if(iupStrEqualNoCase(value, "PREVIOUS"))
+ {
+- Widget wItemFocus = motTreeGetFocusNode(ih);
++ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
+ if(!wItemFocus)
+ return 0;
+ 
+- wItem = motTreeGetPreviousVisibleNode(ih, wRoot, wItemFocus);
++ wItem = motTreeGetPreviousVisibleNode(ih, wItemFocus, 1);
+ }
+ else
+- wItem = motTreeFindNodeFromString(ih, value);
++ wItem = iupTreeGetNodeFromString(ih, value);
+ 
+ if (!wItem) 
+ return 0;
+@@ -1471,17 +1256,26 @@ static int motTreeSetValueAttrib(Ihandle* ih, const char* value)
+ XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);
+ }
+ 
++
++ /* expand all parents */
++ XtVaGetValues(wItem, XmNentryParent, &wItemParent, NULL);
++ while(wItemParent)
++ {
++ XtVaSetValues(wItemParent, XmNoutlineState, XmEXPANDED, NULL);
++ XtVaGetValues(wItemParent, XmNentryParent, &wItemParent, NULL);
++ }
++
+ /* set focus (will scroll to visible) */
+ motTreeSetFocusNode(ih, wItem);
+ 
+- iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", motTreeGetNodeId(ih, wItem));
++ iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", iupTreeFindNodeId(ih, wItem));
+ 
+ return 0;
+ } 
+ 
+ static int motTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)
+ {
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem) 
+ return 0;
+ 
+@@ -1492,14 +1286,11 @@ static int motTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)
+ 
+ static char* motTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)
+ {
+- unsigned char isSelected;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem) 
+ return NULL;
+ 
+- XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL);
+-
+- if(isSelected == XmSELECTED)
++ if (motTreeIsNodeSelected(wItem))
+ return "YES";
+ else
+ return "NO";
+@@ -1507,7 +1298,7 @@ static char* motTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)
+ 
+ static int motTreeSetMarkedAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem) 
+ return 0;
+ 
+@@ -1531,7 +1322,7 @@ static char* motTreeGetTitle(Widget wItem)
+ 
+ static char* motTreeGetTitleAttrib(Ihandle* ih, const char* name_id)
+ {
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem) 
+ return NULL;
+ return motTreeGetTitle(wItem);
+@@ -1539,10 +1330,13 @@ static char* motTreeGetTitleAttrib(Ihandle* ih, const char* name_id)
+ 
+ static int motTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem) 
+ return 0;
+ 
++ if (!value)
++ value = "";
++
+ iupmotSetString(wItem, XmNlabelString, value);
+ 
+ return 0;
+@@ -1551,7 +1345,7 @@ static int motTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* v
+ static int motTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+ XmFontList fontlist = NULL;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem) 
+ return 0;
+ 
+@@ -1569,7 +1363,7 @@ static int motTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha
+ static char* motTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id)
+ {
+ XmFontList fontlist;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!wItem) 
+ return NULL;
+ 
+@@ -1577,118 +1371,81 @@ static char* motTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id)
+ return iupmotFindFontList(fontlist);
+ }
+ 
+-static char* motTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id)
+-{
+- int id;
+- char* str = (char*)(name_id+1); /* skip ':' */
+- void* userdata = NULL;
+- if (sscanf(str, "%p", &userdata)!=1)
+- return NULL;
+- id = motTreeGetUserDataId(ih, userdata);
+- if (id == -1)
+- return NULL;
+- str = iupStrGetMemory(16);
+- sprintf(str, "%d", id);
+- return str;
+-}
+-
+-static char* motTreeGetUserDataAttrib(Ihandle* ih, const char* name_id)
+-{
+- motTreeItemData *itemData;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+- if (!wItem) 
+- return NULL;
+-
+- XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
+-
+- return itemData->userdata;
+-}
+-
+-static int motTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value)
+-{
+- motTreeItemData *itemData;
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+- if (!wItem) 
+- return 0;
+-
+- XtVaGetValues(wItem, XmNuserData, &itemData, NULL);
+- itemData->userdata = (void*)value;
+-
+- return 0;
+-}
+-
+ static int motTreeSetRenameAttrib(Ihandle* ih, const char* value)
+ { 
+ if (ih->data->show_rename)
+ {
+- IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");
+- Widget wItemFocus = motTreeGetFocusNode(ih);
+- if (cbShowRename)
+- cbShowRename(ih, motTreeGetNodeId(ih, wItemFocus));
++ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
+ motTreeShowEditField(ih, wItemFocus);
+ }
+- else
+- {
+- IFnis cbRenameNode = (IFnis)IupGetCallback(ih, "RENAMENODE_CB");
+- if (cbRenameNode)
+- {
+- Widget wItemFocus = motTreeGetFocusNode(ih);
+- cbRenameNode(ih, motTreeGetNodeId(ih, wItemFocus), motTreeGetTitle(wItemFocus)); 
+- }
+- }
+ 
+ (void)value;
+ return 0;
+ }
+ 
++static void motTreeRemoveAllNodes(Ihandle* ih, int call_cb)
++{
++ IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL;
++ int i, old_count = ih->data->node_count;
++ Widget wItem;
++
++ for (i = 0; i < ih->data->node_count; i++)
++ {
++ wItem = ih->data->node_cache[i].node_handle;
++
++ motTreeDestroyItemData(ih, wItem, 1, cb, i);
++
++ XtDestroyWidget(wItem); /* must manually destroy each node, this is NOT recursive */
++ }
++
++ ih->data->node_count = 0;
++
++ if (call_cb)
++ iupTreeDelFromCache(ih, 0, old_count);
++}
++
+ static int motTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+- if(iupStrEqualNoCase(value, "SELECTED")) /* selected here means the specified one */
++ if (iupStrEqualNoCase(value, "ALL"))
+ {
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
+- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+-
+- /* the root node can't be deleted */
+- if(!wItem || wItem == wRoot) /* root is the unique child */
++ motTreeRemoveAllNodes(ih, 1);
++ return 0;
++ }
++ if(iupStrEqualNoCase(value, "SELECTED")) /* selected here means the reference node */
++ {
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
++ if(!wItem)
+ return 0;
+ 
+- /* deleting the specified node (and it's children) */
+- motTreeRemoveNode(ih, wItem, 1);
++ /* deleting the reference node (and it's children) */
++ motTreeRemoveNode(ih, wItem, 1, 1);
+ }
+- else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the specified one */
++ else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the reference node */
+ {
+- Widget wItem = motTreeFindNodeFromString(ih, name_id);
++ int numChild, i;
++ WidgetList wItemList = NULL;
++ Widget wItem = iupTreeGetNodeFromString(ih, name_id);
+ 
+ if(!wItem)
+ return 0;
+ 
+- {
+- /* deleting the selected node's children only */
+- WidgetList wItemList = NULL;
+- int numChild = XmContainerGetItemChildren(ih->handle, wItem, &wItemList);
+- if(numChild)
+- motTreeRemoveChildren(ih, wItemList, numChild, 1);
+- if (wItemList) XtFree((char*)wItemList);
+- }
++ /* deleting the reference node children only */
++ numChild = XmContainerGetItemChildren(ih->handle, wItem, &wItemList);
++ for(i = 0; i < numChild; i++)
++ motTreeRemoveNode(ih, wItemList[i], 1, 1);
++ if (wItemList) XtFree((char*)wItemList);
+ }
+ else if(iupStrEqualNoCase(value, "MARKED")) /* Delete the array of marked nodes */
+ {
+- WidgetList wSelectedItemList = NULL;
+- Widget wRoot;
+- int countItems, i;
+-
+- XtVaGetValues(ih->handle, XmNselectedObjects, &wSelectedItemList,
+- XmNselectedObjectCount, &countItems, NULL);
+-
+- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+-
+- for(i = 0; i < countItems; i++)
++ int i;
++ for(i = 1; i < ih->data->node_count; /* increment only if not removed */)
+ {
+- int ok = XmIsIconGadget(wSelectedItemList[i]);
+- if ((wSelectedItemList[i] != wRoot) && ok) /* the root node can't be deleted */
+- motTreeRemoveNode(ih, wSelectedItemList[i], 1);
++ if (motTreeIsNodeSelected(ih->data->node_cache[i].node_handle))
++ motTreeRemoveNode(ih, ih->data->node_cache[i].node_handle, 1, 1);
++ else
++ i++;
+ }
+ }
+ 
+@@ -1714,7 +1471,7 @@ static int motTreeSetIndentationAttrib(Ihandle* ih, const char* value)
+ 
+ static int motTreeSetTopItemAttrib(Ihandle* ih, const char* value)
+ {
+- Widget wItem = motTreeFindNodeFromString(ih, value);
++ Widget wItem = iupTreeGetNodeFromString(ih, value);
+ Widget sb_win;
+ Widget wItemParent;
+ 
+@@ -1735,10 +1492,11 @@ static int motTreeSetTopItemAttrib(Ihandle* ih, const char* value)
+ return 0;
+ }
+ 
+-static int motTreeSpacingFunc(Ihandle* ih, Widget wItem, void *data)
++static int motTreeSpacingFunc(Ihandle* ih, Widget wItem, int id, void *data)
+ {
+ XtVaSetValues(wItem, XmNmarginHeight, ih->data->spacing, NULL);
+ (void)data;
++ (void)id;
+ return 1;
+ }
+ 
+@@ -1752,7 +1510,7 @@ static int motTreeSetSpacingAttrib(Ihandle* ih, const char* value)
+ 
+ if (ih->handle)
+ {
+- motTreeForEach(ih, NULL, (motTreeNodeFunc)motTreeSpacingFunc, 0);
++ iupTreeForEach(ih, (iupTreeNodeFunc)motTreeSpacingFunc, 0);
+ return 0;
+ }
+ else
+@@ -1761,17 +1519,10 @@ static int motTreeSetSpacingAttrib(Ihandle* ih, const char* value)
+ 
+ static int motTreeSetExpandAllAttrib(Ihandle* ih, const char* value)
+ {
+- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+-
+ if (iupStrBoolean(value))
+- motTreeExpandCollapseAllNodes(ih, &wRoot, 1, XmEXPANDED);
++ motTreeExpandCollapseAllNodes(ih, XmEXPANDED);
+ else
+- {
+- motTreeExpandCollapseAllNodes(ih, &wRoot, 1, XmCOLLAPSED);
+-
+- /* The root node is always expanded */
+- XtVaSetValues((Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"), XmNoutlineState, XmEXPANDED, NULL);
+- }
++ motTreeExpandCollapseAllNodes(ih, XmCOLLAPSED);
+ 
+ return 0;
+ }
+@@ -1801,16 +1552,13 @@ static int motTreeSetBgColorAttrib(Ihandle* ih, const char* value)
+ color = iupmotColorGetPixelStr(value);
+ if (color != (Pixel)-1)
+ {
+- Widget wRoot;
+ Widget clipwin = NULL;
+ 
+ XtVaGetValues(sb_win, XmNclipWindow, &clipwin, NULL);
+ if (clipwin) iupmotSetBgColor(clipwin, color);
+ 
+- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+- 
+ /* Update all children, starting at root node */
+- motTreeUpdateBgColor(ih, &wRoot, 1, color);
++ motTreeUpdateBgColor(ih, color);
+ }
+ 
+ iupdrvBaseSetBgColorAttrib(ih, value); /* use given value for contents */
+@@ -1871,10 +1619,14 @@ static void motTreeSetRenameSelectionPos(Widget cbEdit, const char* value)
+ 
+ static int motTreeCallBranchCloseCb(Ihandle* ih, Widget wItem)
+ {
+- IFni cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB");
++ IFni cbBranchClose;
++
++ if (iupAttribGet(ih, "_IUP_IGNORE_BRANCH_CB"))
++ return IUP_DEFAULT;
+ 
+- if(cbBranchClose)
+- return cbBranchClose(ih, motTreeGetNodeId(ih, wItem));
++ cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB");
++ if (cbBranchClose)
++ return cbBranchClose(ih, iupTreeFindNodeId(ih, wItem));
+ 
+ return IUP_DEFAULT;
+ }
+@@ -1883,59 +1635,136 @@ static int motTreeCallBranchOpenCb(Ihandle* ih, Widget wItem)
+ {
+ IFni cbBranchOpen;
+ 
+- if (iupAttribGet(ih, "_IUP_IGNORE_BRANCHOPEN"))
+- {
+- iupAttribSetStr(ih, "_IUP_IGNORE_BRANCHOPEN", NULL);
++ if (iupAttribGet(ih, "_IUP_IGNORE_BRANCH_CB"))
+ return IUP_DEFAULT;
+- }
+ 
+ cbBranchOpen = (IFni)IupGetCallback(ih, "BRANCHOPEN_CB");
+ if (cbBranchOpen)
+- return cbBranchOpen(ih, motTreeGetNodeId(ih, wItem));
++ return cbBranchOpen(ih, iupTreeFindNodeId(ih, wItem));
+ 
+ return IUP_DEFAULT;
+ }
+ 
++static void motTreeFindRange(Ihandle* ih, WidgetList wSelectedItemList, int countItems, int *id1, int *id2)
++{
++ int i = 0, id;
++
++ *id1 = ih->data->node_count;
++ *id2 = -1;
++
++ for(i = 0; i < countItems; i++)
++ {
++ int is_icon = XmIsIconGadget(wSelectedItemList[i]); /* this line generates a warning in some compilers */
++ if (is_icon)
++ {
++ id = iupTreeFindNodeId(ih, wSelectedItemList[i]);
++ if (id < *id1)
++ *id1 = id;
++ if (id > *id2)
++ *id2 = id;
++ }
++ }
++
++ /* interactive selection of several nodes will NOT select hidden nodes,
++ so make sure that they are selected. */
++ for(i = *id1; i <= *id2; i++)
++ {
++ if (!motTreeIsNodeSelected(ih->data->node_cache[i].node_handle))
++ XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmSELECTED, NULL);
++ }
++
++ /* if last selected item is a branch, then select its children */
++ iupTreeSelectLastCollapsedBranch(ih, id2);
++}
++
++static Iarray* motTreeGetSelectedArrayId(Ihandle* ih, WidgetList wSelectedItemList, int countItems)
++{
++ Iarray* selarray = iupArrayCreate(1, sizeof(int));
++ int i;
++
++ for(i = 0; i < countItems; i++)
++ {
++ int is_icon = XmIsIconGadget(wSelectedItemList[i]); /* this line generates a warning in some compilers */
++ if (is_icon)
++ {
++ int* id_hitem = (int*)iupArrayInc(selarray);
++ int j = iupArrayCount(selarray);
++ id_hitem[j-1] = iupTreeFindNodeId(ih, wSelectedItemList[i]);
++ }
++ }
++
++ return selarray;
++}
++
++static void motTreeCallMultiUnSelectionCb(Ihandle* ih)
++{
++ IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTIUNSELECTION_CB");
++ IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");
++ if (cbSelec || cbMulti)
++ {
++ WidgetList wSelectedItemList = NULL;
++ int countItems = 0;
++
++ XtVaGetValues(ih->handle, XmNselectedObjects, &wSelectedItemList,
++ XmNselectedObjectCount, &countItems, NULL);
++ if (countItems > 1)
++ {
++ Iarray* markedArray = motTreeGetSelectedArrayId(ih, wSelectedItemList, countItems);
++ int* id_hitem = (int*)iupArrayGetData(markedArray);
++ int i, count = iupArrayCount(markedArray);
++
++ if (cbMulti)
++ cbMulti(ih, id_hitem, iupArrayCount(markedArray));
++ else
++ {
++ for (i=0; i<count; i++)
++ cbSelec(ih, id_hitem[i], 0);
++ }
++
++ iupArrayDestroy(markedArray);
++ }
++ }
++}
++
+ static void motTreeCallMultiSelectionCb(Ihandle* ih)
+ {
+ IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTISELECTION_CB");
+ IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");
+ WidgetList wSelectedItemList = NULL;
+- Widget wRoot;
+- int countItems;
+-
+- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
++ int countItems, id1, id2, i;
+ 
+ XtVaGetValues(ih->handle, XmNselectedObjects, &wSelectedItemList,
+ XmNselectedObjectCount, &countItems, NULL);
+ if (countItems == 0)
+ return;
+ 
+- if (cbMulti || cbSelec)
++ /* Must be a continuous range of selection ids */
++ motTreeFindRange(ih, wSelectedItemList, countItems, &id1, &id2);
++ countItems = id2-id1+1;
++
++ if (cbMulti)
+ {
+ int* id_rowItem = malloc(sizeof(int) * countItems);
+- int i = 0;
+ 
+ for(i = 0; i < countItems; i++)
+- id_rowItem[i] = motTreeGetNodeId(ih, wSelectedItemList[i]);
++ id_rowItem[i] = id1+i;
+ 
+- if (cbMulti)
+- cbMulti(ih, id_rowItem, countItems);
+- else
+- {
+- for (i=0; i<countItems; i++)
+- cbSelec(ih, id_rowItem[i], 1);
+- }
++ cbMulti(ih, id_rowItem, countItems);
+ 
+ free(id_rowItem);
+ }
++ else if (cbSelec)
++ {
++ for (i=0; i<countItems; i++)
++ cbSelec(ih, id1+i, 1);
++ }
+ }
+ 
+ static int motTreeConvertXYToPos(Ihandle* ih, int x, int y)
+ {
+ Widget wItem = XmObjectAtPoint(ih->handle, (Position)x, (Position)y);
+ if (wItem)
+- return motTreeGetNodeId(ih, wItem);
++ return iupTreeFindNodeId(ih, wItem);
+ return -1;
+ }
+ 
+@@ -1965,7 +1794,7 @@ static void motTreeCallRenameCb(Ihandle* ih)
+ cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB");
+ if (cbRename)
+ {
+- if (cbRename(ih, motTreeGetNodeId(ih, wItem), title) == IUP_IGNORE)
++ if (cbRename(ih, iupTreeFindNodeId(ih, wItem), title) == IUP_IGNORE)
+ ignore = 1;
+ }
+ 
+@@ -1993,8 +1822,8 @@ static int motTreeCallDragDropCb(Ihandle* ih, Widget wItemDrag, Widget wItemDrop
+ 
+ if (cbDragDrop)
+ {
+- int drag_id = motTreeGetNodeId(ih, wItemDrag);
+- int drop_id = motTreeGetNodeId(ih, wItemDrop);
++ int drag_id = iupTreeFindNodeId(ih, wItemDrag);
++ int drop_id = iupTreeFindNodeId(ih, wItemDrop);
+ return cbDragDrop(ih, drag_id, drop_id, is_shift, *is_ctrl);
+ }
+ 
+@@ -2069,6 +1898,10 @@ static void motTreeShowEditField(Ihandle* ih, Widget wItem)
+ XmFontList fontlist;
+ Widget sb_win = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT");
+ 
++ IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");
++ if (cbShowRename && cbShowRename(ih, iupTreeFindNodeId(ih, wItem))==IUP_IGNORE)
++ return;
++
+ XtVaGetValues(wItem, XmNx, &x, 
+ XmNy, &y,
+ XmNwidth, &w, 
+@@ -2083,16 +1916,16 @@ static void motTreeShowEditField(Ihandle* ih, Widget wItem)
+ iupdrvImageGetInfo((void*)image, &w_img, NULL, NULL);
+ w_img += 3; /* add some room for borders */
+ 
+- iupmotSetArg(args, num_args, XmNx, x+w_img); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, y); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, w-w_img); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, h); /* default height to avoid 0 */
+- iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing); /* default padding */
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
+- iupmotSetArg(args, num_args, XmNforeground, color);
+- iupmotSetArg(args, num_args, XmNrenderTable, fontlist);
+- iupmotSetArg(args, num_args, XmNvalue, iupmotConvertString(title));
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
++ iupMOT_SETARG(args, num_args, XmNx, x+w_img); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, y); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, w-w_img); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, h); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, ih->data->spacing); /* default padding */
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNforeground, color);
++ iupMOT_SETARG(args, num_args, XmNrenderTable, fontlist);
++ iupMOT_SETARG(args, num_args, XmNvalue, iupmotConvertString(title));
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
+ 
+ cbEdit = XtCreateManagedWidget(
+ child_id, /* child identifier */
+@@ -2134,8 +1967,6 @@ static void motTreeSelectionCallback(Widget w, Ihandle* ih, XmContainerSelectCal
+ (void)w;
+ (void)nptr;
+ 
+-printf("SelectionCallback(%d)\n", nptr->selected_item_count);
+-
+ if (ih->data->mark_mode == ITREE_MARK_MULTIPLE)
+ {
+ char key[5];
+@@ -2149,11 +1980,13 @@ printf("SelectionCallback(%d)\n", nptr->selected_item_count);
+ {
+ if (IupGetCallback(ih, "MULTISELECTION_CB"))
+ {
++ /* current selection same as the initial selection */
+ if (nptr->auto_selection_type==XmAUTO_NO_CHANGE)
+ motTreeCallMultiSelectionCb(ih);
+ }
+ else
+ {
++ /* current selection is caused by button drag */
+ if (nptr->auto_selection_type==XmAUTO_MOTION)
+ motTreeCallMultiSelectionCb(ih);
+ }
+@@ -2164,14 +1997,10 @@ printf("SelectionCallback(%d)\n", nptr->selected_item_count);
+ cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");
+ if (cbSelec)
+ {
+- Widget wItemFocus = motTreeGetFocusNode(ih);
+- int curpos = motTreeGetNodeId(ih, wItemFocus);
++ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
++ int curpos = iupTreeFindNodeId(ih, wItemFocus);
+ if (is_ctrl) 
+- {
+- unsigned char isSelected;
+- XtVaGetValues(wItemFocus, XmNvisualEmphasis, &isSelected, NULL);
+- cbSelec(ih, curpos, isSelected == XmSELECTED? 1: 0);
+- }
++ cbSelec(ih, curpos, motTreeIsNodeSelected(wItemFocus));
+ else
+ {
+ int oldpos = iupAttribGetInt(ih, "_IUPTREE_OLDVALUE");
+@@ -2218,7 +2047,7 @@ static void motTreeDefaultActionCallback(Widget w, Ihandle* ih, XmContainerSelec
+ {
+ IFni cbExecuteLeaf = (IFni)IupGetCallback(ih, "EXECUTELEAF_CB");
+ if (cbExecuteLeaf)
+- cbExecuteLeaf(ih, motTreeGetNodeId(ih, wItem));
++ cbExecuteLeaf(ih, iupTreeFindNodeId(ih, wItem));
+ }
+ }
+ 
+@@ -2295,15 +2124,14 @@ static void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean
+ iupmotHelpCallback(w, ih, NULL);
+ else if ((motcode == XK_Down || motcode == XK_Up) && (evt->state & ControlMask))
+ {
+- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");
+ Widget wItem;
+- Widget wItemFocus = motTreeGetFocusNode(ih);
++ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
+ 
+ /* Ctrl+Arrows move only focus */
+ if (motcode == XK_Down)
+- wItem = motTreeGetNextVisibleNode(ih, wRoot, wItemFocus);
++ wItem = motTreeGetNextVisibleNode(ih, wItemFocus, 1);
+ else
+- wItem = motTreeGetPreviousVisibleNode(ih, wRoot, wItemFocus);
++ wItem = motTreeGetPreviousVisibleNode(ih, wItemFocus, 1);
+ 
+ motTreeSetFocusNode(ih, wItem);
+ *cont = False;
+@@ -2317,8 +2145,8 @@ static void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean
+ 
+ if (motcode == XK_Home)
+ wItem = wRoot;
+- else
+- wItem = motTreeGetLastVisibleNode(ih, wRoot);
++ else /* motcode == XK_End */
++ wItem = motTreeGetLastVisibleNode(ih);
+ 
+ /* Ctrl+Arrows move only focus */
+ if (!(evt->state & ControlMask))
+@@ -2326,7 +2154,7 @@ static void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean
+ /* Shift+Arrows select block */
+ if (evt->state & ShiftMask)
+ {
+- Widget wItemFocus = motTreeGetFocusNode(ih);
++ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
+ if (!wItemFocus)
+ return;
+ motTreeSelectRange(ih, wItemFocus, wItem, 1);
+@@ -2346,16 +2174,9 @@ static void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean
+ }
+ else if(motcode == XK_space && (evt->state & ControlMask))
+ {
+- Widget wItemFocus = motTreeGetFocusNode(ih);
++ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
+ if (wItemFocus)
+- {
+- unsigned char isSelected;
+- XtVaGetValues(wItemFocus, XmNvisualEmphasis, &isSelected, NULL);
+- if (isSelected == XmSELECTED)
+- XtVaSetValues(wItemFocus, XmNvisualEmphasis, XmNOT_SELECTED, NULL);
+- else
+- XtVaSetValues(wItemFocus, XmNvisualEmphasis, XmSELECTED, NULL);
+- }
++ motTreeSelectNode(wItemFocus, -1);
+ }
+ }
+ 
+@@ -2378,7 +2199,7 @@ static void motTreeButtonEvent(Widget w, Ihandle* ih, XButtonEvent* evt, Boolean
+ 
+ if (evt->button==Button1)
+ {
+- Widget wItemFocus = motTreeGetFocusNode(ih);
++ Widget wItemFocus = iupdrvTreeGetFocusNode(ih);
+ static Widget wLastItem = NULL;
+ static Time last = 0;
+ int clicktwice = 0, doubleclicktime = XtGetMultiClickTime(iupmot_display);
+@@ -2395,6 +2216,11 @@ static void motTreeButtonEvent(Widget w, Ihandle* ih, XButtonEvent* evt, Boolean
+ *cont = False;
+ }
+ wLastItem = wItemFocus;
++
++ if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && 
++ !(evt->state & ShiftMask) &&
++ !(evt->state & ControlMask))
++ motTreeCallMultiUnSelectionCb(ih);
+ }
+ else if (evt->button==Button3)
+ motTreeCallRightClickCb(ih, evt->x, evt->y);
+@@ -2436,21 +2262,18 @@ static void motTreeTransferProc(Widget drop_context, XtPointer client_data, Atom
+ 
+ if (motTreeCallDragDropCb(ih, wItemDrag, wItemDrop, &is_ctrl) == IUP_CONTINUE)
+ {
+- /* Copy the dragged item to the new position. */
+- Widget wNewItem = motTreeCopyNode(ih, wItemDrag, wItemDrop, is_ctrl);
++ /* Copy or move the dragged item to the new position. */
++ Widget wItemNew = motTreeCopyMoveNode(ih, wItemDrag, wItemDrop, is_ctrl);
+ 
+- if (!is_ctrl)
++ /* Set focus and selection */
++ if (wItemNew)
+ {
+- /* do not delete the user data, we copy the references in CopyNode */
+- motTreeRemoveNode(ih, wItemDrag, 0);
+- }
+-
+- /* Select the dragged item */
+- XtVaSetValues(ih->handle, XmNselectedObjects, NULL, NULL);
+- XtVaSetValues(ih->handle, XmNselectedObjectCount, 0, NULL);
+- XtVaSetValues(wNewItem, XmNvisualEmphasis, XmSELECTED, NULL);
++ XtVaSetValues(ih->handle, XmNselectedObjects, NULL, NULL);
++ XtVaSetValues(ih->handle, XmNselectedObjectCount, 0, NULL);
++ XtVaSetValues(wItemNew, XmNvisualEmphasis, XmSELECTED, NULL);
+ 
+- motTreeSetFocusNode(ih, wNewItem);
++ motTreeSetFocusNode(ih, wItemNew);
++ }
+ }
+ }
+ 
+@@ -2475,8 +2298,8 @@ static void motTreeDropProc(Widget w, XtPointer client_data, XmDropProcCallbackS
+ drop_context = drop_data->dragContext;
+ 
+ /* retrieve the data targets */
+- iupmotSetArg(args, num_args, XmNexportTargets, &exportTargets);
+- iupmotSetArg(args, num_args, XmNnumExportTargets, &numExportTargets);
++ iupMOT_SETARG(args, num_args, XmNexportTargets, &exportTargets);
++ iupMOT_SETARG(args, num_args, XmNnumExportTargets, &numExportTargets);
+ XtGetValues(drop_context, args, num_args);
+ 
+ for (i = 0; i < (int)numExportTargets; i++) 
+@@ -2495,17 +2318,17 @@ static void motTreeDropProc(Widget w, XtPointer client_data, XmDropProcCallbackS
+ num_args = 0;
+ if ((!found) || (drop_data->dropAction != XmDROP) || (drop_data->operation != XmDROP_COPY && drop_data->operation != XmDROP_MOVE)) 
+ {
+- iupmotSetArg(args, num_args, XmNtransferStatus, XmTRANSFER_FAILURE);
+- iupmotSetArg(args, num_args, XmNnumDropTransfers, 0);
++ iupMOT_SETARG(args, num_args, XmNtransferStatus, XmTRANSFER_FAILURE);
++ iupMOT_SETARG(args, num_args, XmNnumDropTransfers, 0);
+ }
+ else 
+ {
+ /* set up transfer requests for drop site */
+ transferList[0].target = atomTreeItem;
+ transferList[0].client_data = (XtPointer)wItemDrop;
+- iupmotSetArg(args, num_args, XmNdropTransfers, transferList);
+- iupmotSetArg(args, num_args, XmNnumDropTransfers, 1);
+- iupmotSetArg(args, num_args, XmNtransferProc, motTreeTransferProc);
++ iupMOT_SETARG(args, num_args, XmNdropTransfers, transferList);
++ iupMOT_SETARG(args, num_args, XmNnumDropTransfers, 1);
++ iupMOT_SETARG(args, num_args, XmNtransferProc, motTreeTransferProc);
+ }
+ 
+ XmDropTransferStart(drop_context, args, num_args);
+@@ -2584,23 +2407,23 @@ static void motTreeStartDrag(Widget w, XButtonEvent* evt, String* params, Cardin
+ XmNforeground, &fg,
+ NULL);
+ 
+- iupmotSetArg(args, num_args, XmNpixmap, pixmap);
+- iupmotSetArg(args, num_args, XmNmask, mask);
++ iupMOT_SETARG(args, num_args, XmNpixmap, pixmap);
++ iupMOT_SETARG(args, num_args, XmNmask, mask);
+ drag_icon = XmCreateDragIcon(w, "drag_icon", args, num_args);
+ 
+ exportList[0] = atomTreeItem;
+ 
+ /* specify resources for DragContext for the transfer */
+ num_args = 0;
+- iupmotSetArg(args, num_args, XmNcursorBackground, bg);
+- iupmotSetArg(args, num_args, XmNcursorForeground, fg);
+- /* iupmotSetArg(args, num_args, XmNsourcePixmapIcon, drag_icon); works, but only outside the dialog, inside disapears */
+- iupmotSetArg(args, num_args, XmNsourceCursorIcon, drag_icon); /* does not work, shows the default cursor */
+- iupmotSetArg(args, num_args, XmNexportTargets, exportList);
+- iupmotSetArg(args, num_args, XmNnumExportTargets, 1);
+- iupmotSetArg(args, num_args, XmNdragOperations, XmDROP_MOVE|XmDROP_COPY);
+- iupmotSetArg(args, num_args, XmNconvertProc, motTreeConvertProc);
+- iupmotSetArg(args, num_args, XmNclientData, wItemDrag);
++ iupMOT_SETARG(args, num_args, XmNcursorBackground, bg);
++ iupMOT_SETARG(args, num_args, XmNcursorForeground, fg);
++ /* iupMOT_SETARG(args, num_args, XmNsourcePixmapIcon, drag_icon); works, but only outside the dialog, inside disapears */
++ iupMOT_SETARG(args, num_args, XmNsourceCursorIcon, drag_icon); /* does not work, shows the default cursor */
++ iupMOT_SETARG(args, num_args, XmNexportTargets, exportList);
++ iupMOT_SETARG(args, num_args, XmNnumExportTargets, 1);
++ iupMOT_SETARG(args, num_args, XmNdragOperations, XmDROP_MOVE|XmDROP_COPY);
++ iupMOT_SETARG(args, num_args, XmNconvertProc, motTreeConvertProc);
++ iupMOT_SETARG(args, num_args, XmNclientData, wItemDrag);
+ 
+ /* start the drag and register a callback to clean up when done */
+ drop_context = XmDragStart(w, (XEvent*)evt, args, num_args);
+@@ -2628,10 +2451,10 @@ static void motTreeEnableDragDrop(Widget w)
+ XtOverrideTranslations(w, XtParseTranslationTable(dragTranslations));
+ 
+ importList[0] = atomTreeItem;
+- iupmotSetArg(args, num_args, XmNimportTargets, importList);
+- iupmotSetArg(args, num_args, XmNnumImportTargets, 1);
+- iupmotSetArg(args, num_args, XmNdropSiteOperations, XmDROP_MOVE|XmDROP_COPY);
+- iupmotSetArg(args, num_args, XmNdropProc, motTreeDropProc);
++ iupMOT_SETARG(args, num_args, XmNimportTargets, importList);
++ iupMOT_SETARG(args, num_args, XmNnumImportTargets, 1);
++ iupMOT_SETARG(args, num_args, XmNdropSiteOperations, XmDROP_MOVE|XmDROP_COPY);
++ iupMOT_SETARG(args, num_args, XmNdropProc, motTreeDropProc);
+ XmDropSiteUpdate(w, args, num_args);
+ 
+ XtVaSetValues(XmGetXmDisplay(iupmot_display), XmNenableDragIcon, True, NULL);
+@@ -2648,13 +2471,13 @@ static int motTreeMapMethod(Ihandle* ih)
+ /******************************/
+ /* Create the scrolled window */
+ /******************************/
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+- iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAUTOMATIC);
+- iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE); 
+- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED);
+- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */
+- iupmotSetArg(args, num_args, XmNborderWidth, 0);
+- iupmotSetArg(args, num_args, XmNshadowThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAUTOMATIC);
++ iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE); 
++ iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED);
++ iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */
++ iupMOT_SETARG(args, num_args, XmNborderWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);
+ 
+ sb_win = XtCreateManagedWidget(
+ child_id, /* child identifier */
+@@ -2672,37 +2495,37 @@ static int motTreeMapMethod(Ihandle* ih)
+ 
+ num_args = 0;
+ 
+- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ 
+- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */
+- iupmotSetArg(args, num_args, XmNmarginWidth, 0);
++ iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */
++ iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);
+ 
+ if (iupAttribGetBoolean(ih, "CANFOCUS"))
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
+ else
+- iupmotSetArg(args, num_args, XmNtraversalOn, False);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
+ 
+- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
+- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
+- iupmotSetArg(args, num_args, XmNshadowThickness, 0);
++ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
++ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);
+ 
+- iupmotSetArg(args, num_args, XmNlayoutType, XmOUTLINE);
+- iupmotSetArg(args, num_args, XmNentryViewType, XmSMALL_ICON);
+- iupmotSetArg(args, num_args, XmNselectionPolicy, XmSINGLE_SELECT);
+- iupmotSetArg(args, num_args, XmNoutlineIndentation, 20);
++ iupMOT_SETARG(args, num_args, XmNlayoutType, XmOUTLINE);
++ iupMOT_SETARG(args, num_args, XmNentryViewType, XmSMALL_ICON);
++ iupMOT_SETARG(args, num_args, XmNselectionPolicy, XmSINGLE_SELECT);
++ iupMOT_SETARG(args, num_args, XmNoutlineIndentation, 20);
+ 
+ if (iupAttribGetBoolean(ih, "HIDELINES"))
+- iupmotSetArg(args, num_args, XmNoutlineLineStyle, XmNO_LINE);
++ iupMOT_SETARG(args, num_args, XmNoutlineLineStyle, XmNO_LINE);
+ else
+- iupmotSetArg(args, num_args, XmNoutlineLineStyle, XmSINGLE);
++ iupMOT_SETARG(args, num_args, XmNoutlineLineStyle, XmSINGLE);
+ 
+ if (iupAttribGetBoolean(ih, "HIDEBUTTONS"))
+- iupmotSetArg(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_ABSENT);
++ iupMOT_SETARG(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_ABSENT);
+ else
+- iupmotSetArg(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_PRESENT);
++ iupMOT_SETARG(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_PRESENT);
+ 
+ ih->handle = XtCreateManagedWidget(
+ child_id, /* child identifier */
+@@ -2788,17 +2611,30 @@ static int motTreeMapMethod(Ihandle* ih)
+ if (!ih->data->def_image_expanded_mask) ih->data->def_image_expanded_mask = (void*)XmUNSPECIFIED_PIXMAP;
+ }
+ 
+- motTreeAddRootNode(ih);
++ if (iupAttribGetInt(ih, "ADDROOT"))
++ iupdrvTreeAddNode(ih, "-1", ITREE_BRANCH, "", 0);
+ 
+ IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)motTreeConvertXYToPos);
+ 
++ iupdrvTreeUpdateMarkMode(ih);
++
+ return IUP_NOERROR;
+ }
+ 
++static void motTreeUnMapMethod(Ihandle* ih)
++{
++ motTreeRemoveAllNodes(ih, 0);
++
++ ih->data->node_count = 0;
++
++ iupdrvBaseUnMapMethod(ih);
++}
++
+ void iupdrvTreeInitClass(Iclass* ic)
+ {
+ /* Driver Dependent Class functions */
+ ic->Map = motTreeMapMethod;
++ ic->UnMap = motTreeUnMapMethod;
+ 
+ /* Visual */
+ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, motTreeSetBgColorAttrib, "TXTBGCOLOR", NULL, IUPAF_DEFAULT);
+@@ -2807,7 +2643,6 @@ void iupdrvTreeInitClass(Iclass* ic)
+ /* IupTree Attributes - GENERAL */
+ iupClassRegisterAttribute(ic, "EXPANDALL", NULL, motTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY||IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "INDENTATION", motTreeGetIndentationAttrib, motTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT);
+- iupClassRegisterAttribute(ic, "COUNT", motTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, motTreeSetSpacingAttrib, NULL, NULL, IUPAF_NOT_MAPPED);
+ iupClassRegisterAttribute(ic, "TOPITEM", NULL, motTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ 
+@@ -2827,7 +2662,6 @@ void iupdrvTreeInitClass(Iclass* ic)
+ iupClassRegisterAttributeId(ic, "COLOR", motTreeGetColorAttrib, motTreeSetColorAttrib, IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "NAME", motTreeGetTitleAttrib, motTreeSetTitleAttrib, IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "TITLE", motTreeGetTitleAttrib, motTreeSetTitleAttrib, IUPAF_NO_INHERIT);
+- iupClassRegisterAttributeId(ic, "USERDATA", motTreeGetUserDataAttrib, motTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "CHILDCOUNT", motTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "TITLEFONT", motTreeGetTitleFontAttrib, motTreeSetTitleFontAttrib, IUPAF_NO_INHERIT);
+ 
+@@ -2836,6 +2670,7 @@ void iupdrvTreeInitClass(Iclass* ic)
+ iupClassRegisterAttribute (ic, "MARK", NULL, motTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute (ic, "STARTING", NULL, motTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute (ic, "MARKSTART", NULL, motTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute (ic, "MARKEDNODES", motTreeGetMarkedNodesAttrib, motTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ 
+ iupClassRegisterAttribute (ic, "VALUE", motTreeGetValueAttrib, motTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ 
+@@ -2844,5 +2679,4 @@ void iupdrvTreeInitClass(Iclass* ic)
+ iupClassRegisterAttribute(ic, "RENAME", NULL, motTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "MOVENODE", NULL, motTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "COPYNODE", NULL, motTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+- iupClassRegisterAttributeId(ic, "FINDUSERDATA", motTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
+ }
+diff --git a/iup/src/mot/iupmot_val.c b/iup/src/mot/iupmot_val.c
+index 200d2b4..ce9eba7 100755
+--- a/iup/src/mot/iupmot_val.c
++++ b/iup/src/mot/iupmot_val.c
+@@ -383,41 +383,41 @@ static int motValMapMethod(Ihandle* ih)
+ int show_ticks;
+ 
+ /* Core */
+- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
+- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */
+- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */
+- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
+- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */
++ iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */
++ iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */
++ iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */
++ iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */
+ /* Primitive */
+ if (iupAttribGetBoolean(ih, "CANFOCUS"))
+- iupmotSetArg(args, num_args, XmNtraversalOn, True);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, True);
+ else
+- iupmotSetArg(args, num_args, XmNtraversalOn, False);
+- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);
+- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);
++ iupMOT_SETARG(args, num_args, XmNtraversalOn, False);
++ iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);
++ iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);
+ /* Scale */
+- iupmotSetArg(args, num_args, XmNminimum, 0);
+- iupmotSetArg(args, num_args, XmNmaximum, SHRT_MAX);
+- iupmotSetArg(args, num_args, XmNslidingMode, XmSLIDER);
+- iupmotSetArg(args, num_args, XmNsliderMark, XmETCHED_LINE);
+- iupmotSetArg(args, num_args, XmNsliderSize, 16);
+- iupmotSetArg(args, num_args, XmNshowValue, XmNONE);
++ iupMOT_SETARG(args, num_args, XmNminimum, 0);
++ iupMOT_SETARG(args, num_args, XmNmaximum, SHRT_MAX);
++ iupMOT_SETARG(args, num_args, XmNslidingMode, XmSLIDER);
++ iupMOT_SETARG(args, num_args, XmNsliderMark, XmETCHED_LINE);
++ iupMOT_SETARG(args, num_args, XmNsliderSize, 16);
++ iupMOT_SETARG(args, num_args, XmNshowValue, XmNONE);
+ 
+ if (ih->data->type == IVAL_HORIZONTAL)
+ {
+- iupmotSetArg(args, num_args, XmNorientation, XmHORIZONTAL);
++ iupMOT_SETARG(args, num_args, XmNorientation, XmHORIZONTAL);
+ if (ih->data->inverted)
+- iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_LEFT);
++ iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_LEFT);
+ else
+- iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_RIGHT);
++ iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_RIGHT);
+ }
+ else
+ {
+- iupmotSetArg(args, num_args, XmNorientation, XmVERTICAL);
++ iupMOT_SETARG(args, num_args, XmNorientation, XmVERTICAL);
+ if (ih->data->inverted)
+- iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_TOP);
++ iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_TOP);
+ else
+- iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_BOTTOM);
++ iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_BOTTOM);
+ }
+ 
+ ih->handle = XtCreateManagedWidget(
+diff --git a/iup/src/mot/iupunix_info.c b/iup/src/mot/iupunix_info.c
+index b522638..f09573c 100755
+--- a/iup/src/mot/iupunix_info.c
++++ b/iup/src/mot/iupunix_info.c
+@@ -282,7 +282,7 @@ char *iupdrvGetSystemName(void)
+ char *iupdrvGetSystemVersion(void)
+ {
+ struct utsname un;
+- char *str = iupStrGetMemory(60); 
++ char *str = iupStrGetMemory(100); 
+ 
+ uname(&un);
+ strcpy(str, un.release);
+diff --git a/iup/src/win/iupwin_button.c b/iup/src/win/iupwin_button.c
+index 7f780e3..3b05ba7 100755
+--- a/iup/src/win/iupwin_button.c
++++ b/iup/src/win/iupwin_button.c
+@@ -27,6 +27,7 @@
+ #include "iupwin_drv.h"
+ #include "iupwin_handle.h"
+ #include "iupwin_draw.h"
++#include "iupwin_info.h"
+ 
+ 
+ #ifndef CDIS_SHOWKEYBOARDCUES
+@@ -308,18 +309,22 @@ static void winButtonDrawText(Ihandle* ih, HDC hDC, int rect_width, int rect_hei
+ 
+ static void winButtonDrawItem(Ihandle* ih, DRAWITEMSTRUCT *drawitem)
+ { 
++ HDC hDC;
+ iupwinBitmapDC bmpDC;
+ int border, draw_border;
+ int width = drawitem->rcItem.right - drawitem->rcItem.left;
+ int height = drawitem->rcItem.bottom - drawitem->rcItem.top;
+ 
+- HDC hDC = iupwinDrawCreateBitmapDC(&bmpDC, drawitem->hDC, width, height);
++ hDC = iupwinDrawCreateBitmapDC(&bmpDC, drawitem->hDC, width, height);
+ 
+ iupwinDrawParentBackground(ih, hDC, &drawitem->rcItem);
+ 
+ if ((drawitem->itemState & ODS_FOCUS) && !(drawitem->itemState & ODS_HOTLIGHT))
+ drawitem->itemState |= ODS_DEFAULT;
+ 
++ if (iupAttribGet(ih, "_IUPWINBUT_SELECTED"))
++ drawitem->itemState |= ODS_SELECTED;
++
+ border = winButtonGetBorder();
+ 
+ if (ih->data->type & IUP_BUTTON_IMAGE && iupAttribGet(ih, "IMPRESS") && !iupAttribGetStr(ih, "IMPRESSBORDER"))
+@@ -365,7 +370,7 @@ static int winButtonSetImageAttrib(Ihandle* ih, const char* value)
+ (void)value;
+ if (ih->data->type != IUP_BUTTON_TEXT)
+ {
+- iupdrvDisplayUpdate(ih);
++ iupdrvPostRedraw(ih);
+ return 1;
+ }
+ else
+@@ -377,7 +382,7 @@ static int winButtonSetImInactiveAttrib(Ihandle* ih, const char* value)
+ (void)value;
+ if (ih->data->type != IUP_BUTTON_TEXT)
+ {
+- iupdrvDisplayUpdate(ih);
++ iupdrvPostRedraw(ih);
+ return 1;
+ }
+ else
+@@ -389,7 +394,7 @@ static int winButtonSetImPressAttrib(Ihandle* ih, const char* value)
+ (void)value;
+ if (ih->data->type != IUP_BUTTON_TEXT)
+ {
+- iupdrvDisplayUpdate(ih);
++ iupdrvPostRedraw(ih);
+ return 1;
+ }
+ else
+@@ -400,7 +405,7 @@ static int winButtonSetActiveAttrib(Ihandle* ih, const char* value)
+ {
+ /* redraw IMINACTIVE image if any */
+ if (ih->data->type != IUP_BUTTON_TEXT)
+- iupdrvDisplayUpdate(ih);
++ iupdrvPostRedraw(ih);
+ 
+ return iupBaseSetActiveAttrib(ih, value);
+ }
+@@ -425,7 +430,7 @@ static int winButtonSetAlignmentAttrib(Ihandle* ih, const char* value)
+ else /* "ACENTER" */
+ ih->data->vert_alignment = IUP_ALIGN_ACENTER;
+ 
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ 
+ return 1;
+ }
+@@ -443,7 +448,7 @@ static int winButtonSetPaddingAttrib(Ihandle* ih, const char* value)
+ {
+ iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');
+ if (ih->handle)
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ return 0;
+ }
+ 
+@@ -454,7 +459,7 @@ static int winButtonSetBgColorAttrib(Ihandle* ih, const char* value)
+ {
+ iupAttribSetStr(ih, "BGCOLOR", value);
+ iupImageUpdateParent(ih);
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ }
+ return 1;
+ }
+@@ -486,7 +491,9 @@ static int winButtonSetFgColorAttrib(Ihandle* ih, const char* value)
+ if (iupStrToRGB(value, &r, &g, &b))
+ {
+ ih->data->fgcolor = RGB(r,g,b);
+- iupdrvDisplayRedraw(ih);
++
++ if (ih->handle)
++ iupdrvRedrawNow(ih);
+ }
+ return 1;
+ }
+@@ -499,7 +506,7 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
+ {
+ /* redraw IMPRESS image if any */
+ if ((msg == WM_LBUTTONDOWN || msg == WM_LBUTTONUP) && iupAttribGet(ih, "IMPRESS"))
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ }
+ 
+ switch (msg)
+@@ -514,6 +521,13 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
+ case WM_RBUTTONDOWN:
+ {
+ iupwinButtonDown(ih, msg, wp, lp);
++
++ /* Feedback will NOT be done when not receiving the focus */
++ if (msg==WM_LBUTTONDOWN && !iupAttribGetBoolean(ih, "FOCUSONCLICK"))
++ {
++ iupAttribSetStr(ih, "_IUPWINBUT_SELECTED", "1");
++ iupdrvRedrawNow(ih);
++ }
+ break;
+ }
+ case WM_XBUTTONUP:
+@@ -526,11 +540,24 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
+ /* BN_CLICKED will NOT be notified when not receiving the focus */
+ if (msg==WM_LBUTTONUP && !iupAttribGetBoolean(ih, "FOCUSONCLICK"))
+ {
+- Icallback cb = IupGetCallback(ih, "ACTION");
++ Icallback cb;
++
++ iupAttribSetStr(ih, "_IUPWINBUT_SELECTED", NULL);
++ iupdrvRedrawNow(ih);
++
++ cb = IupGetCallback(ih, "ACTION");
+ if (cb && cb(ih) == IUP_CLOSE)
+ IupExitLoop();
+ }
+ 
++ if (!iupwinIsVistaOrNew())
++ {
++ /* TIPs desapear forever after a button click in XP,
++ so we force an update. */
++ char* tip = iupAttribGet(ih, "TIP");
++ if (tip)
++ iupdrvBaseSetTipAttrib(ih, tip);
++ }
+ break;
+ }
+ case WM_KEYDOWN:
+@@ -549,7 +576,12 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
+ if (!iupwin_comctl32ver6)
+ {
+ iupAttribSetStr(ih, "_IUPWINBUT_ENTERWIN", NULL);
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
++ }
++ if (!iupAttribGetBoolean(ih, "FOCUSONCLICK"))
++ {
++ iupAttribSetStr(ih, "_IUPWINBUT_SELECTED", NULL);
++ iupdrvRedrawNow(ih);
+ }
+ break;
+ case WM_MOUSEMOVE:
+@@ -558,7 +590,7 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
+ if (!iupAttribGet(ih, "_IUPWINBUT_ENTERWIN"))
+ {
+ iupAttribSetStr(ih, "_IUPWINBUT_ENTERWIN", "1");
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ }
+ }
+ break;
+@@ -635,7 +667,7 @@ static int winButtonWmCommand(Ihandle* ih, WPARAM wp, LPARAM lp)
+ static int winButtonMapMethod(Ihandle* ih)
+ {
+ char* value;
+- DWORD dwStyle = WS_CHILD | 
++ DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS |
+ BS_NOTIFY; /* necessary because of the base messages */
+ 
+ if (!ih->parent)
+@@ -661,7 +693,7 @@ static int winButtonMapMethod(Ihandle* ih)
+ ih->data->type = IUP_BUTTON_IMAGE;
+ 
+ value = iupAttribGet(ih, "TITLE");
+- if (value)
++ if (value && *value!=0)
+ ih->data->type |= IUP_BUTTON_TEXT;
+ }
+ else
+diff --git a/iup/src/win/iupwin_canvas.c b/iup/src/win/iupwin_canvas.c
+index bb88b8a..b865160 100755
+--- a/iup/src/win/iupwin_canvas.c
++++ b/iup/src/win/iupwin_canvas.c
+@@ -45,7 +45,7 @@ static void winCanvasSetScrollInfo(HWND hWnd, int imin, int imax, int ipos, int
+ static int winCanvasSetBgColorAttrib(Ihandle *ih, const char *value)
+ {
+ (void)value;
+- iupdrvDisplayUpdate(ih);
++ iupdrvPostRedraw(ih);
+ return 1;
+ }
+ 
+@@ -220,7 +220,7 @@ static void winCanvasUpdateHorScroll(Ihandle* ih, WORD winop)
+ xmax = iupAttribGetFloat(ih,"XMAX");
+ xmin = iupAttribGetFloat(ih,"XMIN");
+ 
+- winCanvasGetScrollInfo(ih->handle, &iposx, &ipagex, SB_HORZ, winop==SB_THUMBTRACK? 1: 0);
++ winCanvasGetScrollInfo(ih->handle, &iposx, &ipagex, SB_HORZ, winop==SB_THUMBTRACK||winop==SB_THUMBPOSITION? 1: 0);
+ 
+ if (!iupAttribGet(ih,"LINEX"))
+ {
+@@ -296,7 +296,7 @@ static void winCanvasUpdateVerScroll(Ihandle* ih, WORD winop)
+ ymax = iupAttribGetFloat(ih,"YMAX");
+ ymin = iupAttribGetFloat(ih,"YMIN");
+ 
+- winCanvasGetScrollInfo(ih->handle, &iposy, &ipagey, SB_VERT, winop==SB_THUMBTRACK? 1: 0);
++ winCanvasGetScrollInfo(ih->handle, &iposy, &ipagey, SB_VERT, winop==SB_THUMBTRACK||winop==SB_THUMBPOSITION? 1: 0);
+ 
+ if (!iupAttribGet(ih, "LINEY"))
+ {
+@@ -372,6 +372,10 @@ static int winCanvasProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
+ GetClientRect(ih->handle, &rect); 
+ FillRect(hdc, &rect, iupwinBrushGet(color)); 
+ }
++ else
++ InvalidateRect(ih->handle,NULL,FALSE); /* This will invalidate all area. 
++ Necessary in XP, or overlapping windows will have the effect of partial redrawing. */
++
+ /* always return non zero value */
+ *result = 1;
+ return 1; 
+@@ -382,7 +386,7 @@ static int winCanvasProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
+ {
+ PAINTSTRUCT ps;
+ HDC hdc = BeginPaint(ih->handle, &ps);
+- iupAttribSetStr(ih, "HDC_WMPAINT", (char*)&hdc);
++ iupAttribSetStr(ih, "HDC_WMPAINT", (char*)hdc);
+ iupAttribSetStrf(ih, "CLIPRECT", "%d %d %d %d", ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right-ps.rcPaint.left, ps.rcPaint.bottom-ps.rcPaint.top);
+ 
+ cb(ih, ih->data->posx, ih->data->posy);
+@@ -542,27 +546,13 @@ static int winCanvasProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r
+ return iupwinBaseProc(ih, msg, wp, lp, result);
+ }
+ 
+-static void winCanvasRegisterClass(void)
+-{
+- WNDCLASS wndclass;
+- ZeroMemory(&wndclass, sizeof(WNDCLASS));
+- 
+- wndclass.hInstance = iupwin_hinstance;
+- wndclass.lpszClassName = "IupCanvas";
+- wndclass.lpfnWndProc = (WNDPROC)iupwinBaseWinProc;
+- wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
+- wndclass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; /* using CS_OWNDC will minimize the work of cdActivate in the CD library */
+- wndclass.hbrBackground = NULL; /* remove the background to optimize redraw */
+- 
+- RegisterClass(&wndclass);
+-}
+-
+ static int winCanvasMapMethod(Ihandle* ih)
+ {
+ CLIENTCREATESTRUCT clientstruct;
+ void *clientdata = NULL;
+ char *classname;
+- DWORD dwStyle = WS_CHILD, dwExStyle = 0;
++ DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS, 
++ dwExStyle = 0;
+ 
+ if (!ih->parent)
+ return IUP_ERROR;
+@@ -574,14 +564,7 @@ static int winCanvasMapMethod(Ihandle* ih)
+ }
+ 
+ if (ih->firstchild) /* can be a container */
+- {
+- dwStyle |= WS_CLIPSIBLINGS;
+-
+- if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))
+- dwExStyle |= WS_EX_COMPOSITED;
+- else
+- dwStyle |= WS_CLIPCHILDREN;
+- }
++ iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);
+ 
+ if (iupAttribGetBoolean(ih, "MDICLIENT")) 
+ {
+@@ -693,6 +676,21 @@ static void winCanvasReleaseMethod(Iclass* ic)
+ UnregisterClass("IupCanvas", iupwin_hinstance);
+ }
+ 
++static void winCanvasRegisterClass(void)
++{
++ WNDCLASS wndclass;
++ ZeroMemory(&wndclass, sizeof(WNDCLASS));
++ 
++ wndclass.hInstance = iupwin_hinstance;
++ wndclass.lpszClassName = "IupCanvas";
++ wndclass.lpfnWndProc = (WNDPROC)iupwinBaseWinProc;
++ wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
++ wndclass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; /* using CS_OWNDC will minimize the work of cdActivate in the CD library */
++ wndclass.hbrBackground = NULL; /* remove the background to optimize redraw */
++ 
++ RegisterClass(&wndclass);
++}
++
+ void iupdrvCanvasInitClass(Iclass* ic)
+ {
+ if (!iupwinClassExist("IupCanvas"))
+diff --git a/iup/src/win/iupwin_common.c b/iup/src/win/iupwin_common.c
+index a1a7c0f..ba68b78 100755
+--- a/iup/src/win/iupwin_common.c
++++ b/iup/src/win/iupwin_common.c
+@@ -94,16 +94,17 @@ void iupdrvBaseLayoutUpdateMethod(Ihandle *ih)
+ SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOOWNERZORDER);
+ }
+ 
+-void iupdrvDisplayRedraw(Ihandle *ih)
++void iupdrvRedrawNow(Ihandle *ih)
+ {
+ /* REDRAW Now */
+- RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_NOCHILDREN|RDW_UPDATENOW);
++ RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_UPDATENOW);
+ }
+ 
+-void iupdrvDisplayUpdate(Ihandle *ih)
++void iupdrvPostRedraw(Ihandle *ih)
+ {
+ /* Post a REDRAW */
+- RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_NOCHILDREN);
++ /* can NOT use RDW_NOCHILDREN because IupList has internal children that needs to be redraw */
++ RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT); 
+ }
+ 
+ void iupdrvScreenToClient(Ihandle* ih, int *x, int *y)
+@@ -534,6 +535,8 @@ int iupdrvBaseSetZorderAttrib(Ihandle* ih, const char* value)
+ 
+ void iupdrvSetVisible(Ihandle* ih, int visible)
+ {
++ if (iupStrEqual(ih->iclass->name, "colorbar"))
++ ih=ih;
+ ShowWindow(ih->handle, visible? SW_SHOWNORMAL: SW_HIDE);
+ }
+ 
+@@ -618,6 +621,18 @@ char* iupdrvBaseGetClientSizeAttrib(Ihandle* ih)
+ #define IDC_HELP MAKEINTRESOURCE(32651)
+ #endif
+ 
++static HCURSOR winLoadComCtlCursor(LPCTSTR lpCursorName)
++{
++ HCURSOR cur = NULL;
++ HINSTANCE hinstDll = LoadLibrary("comctl32.dll");
++ if (hinstDll)
++ {
++ cur = LoadCursor(hinstDll, lpCursorName);
++ FreeLibrary(hinstDll);
++ }
++ return cur;
++}
++
+ static HCURSOR winGetCursor(Ihandle* ih, const char* name)
+ {
+ static struct {
+@@ -649,7 +664,7 @@ static HCURSOR winGetCursor(Ihandle* ih, const char* name)
+ {"APPSTARTING", IDC_APPSTARTING}
+ };
+ 
+- HCURSOR cur;
++ HCURSOR cur = NULL;
+ char str[50];
+ int i, count = sizeof(table)/sizeof(table[0]);
+ 
+@@ -676,14 +691,22 @@ static HCURSOR winGetCursor(Ihandle* ih, const char* name)
+ if (i == count)
+ {
+ /* check other system cursors */
+- /* cursor PEN is handled here */
++
+ if (iupStrEqualNoCase(name, "PEN"))
+- name = "CURSOR_PEN";
++ name = "CURSOR_PEN"; /* name in "iup.rc" */
+ 
+ /* check for an name defined cursor */
+ cur = iupImageGetCursor(name);
+ }
+ 
++ if (!cur)
++ {
++ if (iupStrEqualNoCase(name, "SPLITTER_VERT"))
++ cur = winLoadComCtlCursor(MAKEINTRESOURCE(107));
++ else if (iupStrEqualNoCase(name, "SPLITTER_HORIZ"))
++ cur = winLoadComCtlCursor(MAKEINTRESOURCE(135));
++ }
++
+ iupAttribSetStr(ih, str, (char*)cur);
+ return cur;
+ }
+@@ -758,29 +781,29 @@ int iupwinButtonUp(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp)
+ if (msg==WM_LBUTTONUP)
+ {
+ b = IUP_BUTTON1;
+- iupKEYSETBUTTON1(status); 
++ iupKEY_SETBUTTON1(status); 
+ }
+ else if (msg==WM_MBUTTONUP)
+ {
+ b = IUP_BUTTON2;
+- iupKEYSETBUTTON2(status);
++ iupKEY_SETBUTTON2(status);
+ }
+ else if (msg==WM_RBUTTONUP)
+ {
+ b = IUP_BUTTON3;
+- iupKEYSETBUTTON3(status);
++ iupKEY_SETBUTTON3(status);
+ }
+ else if (msg==WM_XBUTTONUP)
+ {
+ if (HIWORD(wp) == XBUTTON1)
+ {
+ b = IUP_BUTTON4;
+- iupKEYSETBUTTON4(status);
++ iupKEY_SETBUTTON4(status);
+ }
+ else
+ {
+ b = IUP_BUTTON5;
+- iupKEYSETBUTTON5(status);
++ iupKEY_SETBUTTON5(status);
+ }
+ }
+ 
+@@ -807,6 +830,14 @@ int iupwinMouseMove(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp)
+ return 0;
+ }
+ 
++void iupwinGetNativeParentStyle(Ihandle* ih, DWORD *dwExStyle, DWORD *dwStyle)
++{
++ *dwStyle |= WS_CLIPCHILDREN;
++
++ if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))
++ *dwExStyle |= WS_EX_COMPOSITED;
++}
++
+ int iupwinCreateWindowEx(Ihandle* ih, LPCSTR lpClassName, DWORD dwExStyle, DWORD dwStyle)
+ {
+ ih->serial = iupDialogGetChildId(ih);
+diff --git a/iup/src/win/iupwin_dialog.c b/iup/src/win/iupwin_dialog.c
+index 39fdc0c..c13b88d 100755
+--- a/iup/src/win/iupwin_dialog.c
++++ b/iup/src/win/iupwin_dialog.c
+@@ -102,9 +102,9 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
+ else
+ {
+ int has_titlebar = iupAttribGetBoolean(ih, "MAXBOX") ||
+- iupAttribGetBoolean(ih, "MINBOX") ||
+- iupAttribGetBoolean(ih, "MENUBOX") || 
+- IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */
++ iupAttribGetBoolean(ih, "MINBOX") ||
++ iupAttribGetBoolean(ih, "MENUBOX") || 
++ IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */
+ 
+ *caption = 0;
+ if (has_titlebar)
+@@ -118,14 +118,17 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu
+ *border = 0;
+ if (iupAttribGetBoolean(ih, "RESIZE"))
+ {
++ /* has_border */
+ *border = GetSystemMetrics(SM_CXFRAME); /* Thickness of the sizing border around the perimeter of a window */
+ } /* that can be resized, in pixels. */
+ else if (has_titlebar)
+ {
++ /* has_border */
+ *border = GetSystemMetrics(SM_CXFIXEDFRAME); /* Thickness of the frame around the perimeter of a window */
+ } /* that has a caption but is not sizable, in pixels. */
+ else if (iupAttribGetBoolean(ih, "BORDER"))
+ {
++ /* has_border */
+ *border = GetSystemMetrics(SM_CXBORDER);
+ }
+ }
+@@ -712,28 +715,27 @@ static int winDialogMapMethod(Ihandle* ih)
+ }
+ 
+ if (iupAttribGetBoolean(ih, "RESIZE"))
++ {
+ dwStyle |= WS_THICKFRAME;
++ has_border = 1;
++ }
+ else
+ iupAttribSetStr(ih, "MAXBOX", "NO"); /* Must also remove this to RESIZE=NO work */
+-
+ if (iupAttribGetBoolean(ih, "MAXBOX"))
+ {
+ dwStyle |= WS_MAXIMIZEBOX;
+ has_titlebar = 1;
+ }
+-
+ if (iupAttribGetBoolean(ih, "MINBOX"))
+ {
+ dwStyle |= WS_MINIMIZEBOX;
+ has_titlebar = 1;
+ }
+-
+ if (iupAttribGetBoolean(ih, "MENUBOX"))
+ {
+ dwStyle |= WS_SYSMENU;
+ has_titlebar = 1;
+ }
+-
+ if (iupAttribGetBoolean(ih, "BORDER") || has_titlebar)
+ has_border = 1;
+ 
+@@ -815,10 +817,7 @@ static int winDialogMapMethod(Ihandle* ih)
+ if (iupAttribGetBoolean(ih, "DIALOGFRAME") && native_parent)
+ dwExStyle |= WS_EX_DLGMODALFRAME; /* this will hide the MENUBOX but not the close button */
+ 
+- if (iupAttribGetBoolean(ih, "COMPOSITED"))
+- dwExStyle |= WS_EX_COMPOSITED;
+- else
+- dwStyle |= WS_CLIPCHILDREN;
++ iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);
+ 
+ if (iupAttribGetBoolean(ih, "HELPBUTTON"))
+ dwExStyle |= WS_EX_CONTEXTHELP;
+@@ -878,7 +877,6 @@ static int winDialogMapMethod(Ihandle* ih)
+ /* Reset attributes handled during creation that */
+ /* also can be changed later, and can be consulted from the native system. */
+ iupAttribSetStr(ih, "TITLE", NULL); 
+- iupAttribSetStr(ih, "BORDER", NULL);
+ 
+ /* Ignore VISIBLE before mapping */
+ iupAttribSetStr(ih, "VISIBLE", NULL);
+@@ -956,7 +954,7 @@ static int winDialogSetBgColorAttrib(Ihandle* ih, const char* value)
+ {
+ iupAttribStoreStr(ih, "_IUPWIN_BACKGROUND_COLOR", value);
+ iupAttribSetStr(ih, "_IUPWIN_BACKGROUND_BITMAP", NULL);
+- RedrawWindow(ih->handle, NULL, NULL, RDW_ERASE|RDW_ERASENOW); /* force a WM_ERASEBKGND now */
++ RedrawWindow(ih->handle, NULL, NULL, RDW_INVALIDATE|RDW_ERASE|RDW_ALLCHILDREN); /* post WM_ERASEBKGND and WM_PAINT */
+ return 1;
+ }
+ return 0;
+@@ -973,7 +971,7 @@ static int winDialogSetBackgroundAttrib(Ihandle* ih, const char* value)
+ {
+ iupAttribSetStr(ih, "_IUPWIN_BACKGROUND_COLOR", NULL);
+ iupAttribSetStr(ih, "_IUPWIN_BACKGROUND_BITMAP", (char*)hBitmap);
+- RedrawWindow(ih->handle, NULL, NULL, RDW_ERASE|RDW_ERASENOW); /* force a WM_ERASEBKGND now */
++ RedrawWindow(ih->handle, NULL, NULL, RDW_INVALIDATE|RDW_ERASE|RDW_ALLCHILDREN); /* post WM_ERASEBKGND and WM_PAINT */
+ return 1;
+ }
+ }
+diff --git a/iup/src/win/iupwin_draw.c b/iup/src/win/iupwin_draw.c
+index 4a810e6..f663d20 100755
+--- a/iup/src/win/iupwin_draw.c
++++ b/iup/src/win/iupwin_draw.c
+@@ -14,12 +14,16 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <memory.h>
++#include <math.h>
+ 
+ #include "iup.h"
+ 
+ #include "iup_attrib.h"
+ #include "iup_class.h"
+ #include "iup_str.h"
++#include "iup_object.h"
++#include "iup_image.h"
++#include "iup_draw.h"
+ 
+ #include "iupwin_drv.h"
+ #include "iupwin_info.h"
+@@ -38,6 +42,11 @@
+ #endif
+ 
+ 
++/******************************************************************************
++ Themes
++*******************************************************************************/
++
++
+ typedef HTHEME (STDAPICALLTYPE *_winThemeOpenData)(HWND hwnd, LPCWSTR pszClassList);
+ typedef HRESULT (STDAPICALLTYPE *_winThemeCloseData)(HTHEME hTheme);
+ typedef HRESULT (STDAPICALLTYPE *_winThemeDrawBackground)(HTHEME hTheme, HDC hDC, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect);
+@@ -61,58 +70,6 @@ static int winDrawThemeEnabled(void)
+ return winThemeOpenData? 1: 0;
+ }
+ 
+-void iupwinDrawText(HDC hDC, const char* text, int x, int y, int width, int height, HFONT hFont, COLORREF fgcolor, int style)
+-{
+- COLORREF oldcolor;
+- RECT rect;
+- HFONT hOldFont = SelectObject(hDC, hFont);
+-
+- rect.left = x;
+- rect.top = y;
+- rect.right = x+width;
+- rect.bottom = y+height;
+-
+- SetTextAlign(hDC, TA_TOP|TA_LEFT);
+- SetBkMode(hDC, TRANSPARENT);
+- oldcolor = SetTextColor(hDC, fgcolor);
+-
+- DrawText(hDC, text, -1, &rect, style|DT_NOCLIP);
+-
+- SelectObject(hDC, hOldFont);
+- SetTextColor(hDC, oldcolor);
+- SetBkMode(hDC, OPAQUE);
+-}
+-
+-void iupwinDrawBitmap(HDC hDC, HBITMAP hBitmap, HBITMAP hMask, int x, int y, int width, int height, int bpp)
+-{
+- HDC hMemDC = CreateCompatibleDC(hDC);
+- SelectObject(hMemDC, hBitmap);
+-
+- if (bpp == 32 && winAlphaBlend)
+- {
+- BLENDFUNCTION blendfunc;
+- blendfunc.BlendOp = AC_SRC_OVER;
+- blendfunc.BlendFlags = 0;
+- blendfunc.SourceConstantAlpha = 0xFF;
+- blendfunc.AlphaFormat = AC_SRC_ALPHA;
+-
+- winAlphaBlend(hDC, x, y, width, height, 
+- hMemDC, 0, 0, width, height, 
+- blendfunc);
+- }
+- else if (bpp == 8 && hMask)
+- MaskBlt(hDC, x, y, width, height, 
+- hMemDC, 0, 0, 
+- hMask, 0, 0, MAKEROP4(SRCCOPY, 0xAA0000));
+- else
+- BitBlt(hDC, x, y, width, height, 
+- hMemDC, 0, 0, 
+- SRCCOPY);
+-
+-
+- DeleteDC(hMemDC);
+-}
+-
+ void iupwinDrawInit(void)
+ {
+ if (!winAlphaBlend)
+@@ -201,7 +158,7 @@ int iupwinDrawGetThemeTabsBgColor(HWND hWnd, COLORREF *color)
+ if (!hTheme) 
+ return 0;
+ 
+- if (iupwinIsVista())
++ if (iupwinIsVistaOrNew())
+ ret = winThemeGetColor(hTheme, TABP_AEROWIZARDBODY, TIS_NORMAL, TMT_FILLCOLORHINT, color);
+ else
+ ret = winThemeGetColor(hTheme, TABP_BODY, TIS_NORMAL, TMT_FILLCOLORHINT, color);
+@@ -246,6 +203,79 @@ int iupwinDrawGetThemeFrameFgColor(HWND hWnd, COLORREF *color)
+ return (ret == S_OK)? 1: 0;
+ }
+ 
++void iupwinDrawRemoveTheme(HWND hwnd)
++{
++ typedef HRESULT (STDAPICALLTYPE *winSetWindowTheme)(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList);
++ static winSetWindowTheme mySetWindowTheme = NULL;
++ if (!mySetWindowTheme)
++ {
++ HMODULE hinstDll = LoadLibrary("uxtheme.dll");
++ if (hinstDll)
++ mySetWindowTheme = (winSetWindowTheme)GetProcAddress(hinstDll, "SetWindowTheme");
++ }
++
++ if (mySetWindowTheme)
++ mySetWindowTheme(hwnd, L"", L"");
++}
++
++
++/******************************************************************************
++ Utilities
++*******************************************************************************/
++
++
++void iupwinDrawText(HDC hDC, const char* text, int x, int y, int width, int height, HFONT hFont, COLORREF fgcolor, int style)
++{
++ COLORREF oldcolor;
++ RECT rect;
++ HFONT hOldFont = SelectObject(hDC, hFont);
++
++ rect.left = x;
++ rect.top = y;
++ rect.right = x+width;
++ rect.bottom = y+height;
++
++ SetTextAlign(hDC, TA_TOP|TA_LEFT);
++ SetBkMode(hDC, TRANSPARENT);
++ oldcolor = SetTextColor(hDC, fgcolor);
++
++ DrawText(hDC, text, -1, &rect, style|DT_NOCLIP);
++
++ SelectObject(hDC, hOldFont);
++ SetTextColor(hDC, oldcolor);
++ SetBkMode(hDC, OPAQUE);
++}
++
++void iupwinDrawBitmap(HDC hDC, HBITMAP hBitmap, HBITMAP hMask, int x, int y, int width, int height, int bpp)
++{
++ HDC hMemDC = CreateCompatibleDC(hDC);
++ SelectObject(hMemDC, hBitmap);
++
++ if (bpp == 32 && winAlphaBlend)
++ {
++ BLENDFUNCTION blendfunc;
++ blendfunc.BlendOp = AC_SRC_OVER;
++ blendfunc.BlendFlags = 0;
++ blendfunc.SourceConstantAlpha = 0xFF;
++ blendfunc.AlphaFormat = AC_SRC_ALPHA;
++
++ winAlphaBlend(hDC, x, y, width, height, 
++ hMemDC, 0, 0, width, height, 
++ blendfunc);
++ }
++ else if (bpp == 8 && hMask)
++ MaskBlt(hDC, x, y, width, height, 
++ hMemDC, 0, 0, 
++ hMask, 0, 0, MAKEROP4(SRCCOPY, 0xAA0000));
++ else
++ BitBlt(hDC, x, y, width, height, 
++ hMemDC, 0, 0, 
++ SRCCOPY);
++
++
++ DeleteDC(hMemDC);
++}
++
+ static int winDrawGetStateId(int itemState)
+ {
+ if (itemState & ODS_DISABLED)
+@@ -282,21 +312,6 @@ void iupdrvDrawFocusRect(Ihandle* ih, void* gc, int x, int y, int w, int h)
+ DrawFocusRect(hDC, &rect);
+ }
+ 
+-void iupwinDrawRemoveTheme(HWND hwnd)
+-{
+- typedef HRESULT (STDAPICALLTYPE *winSetWindowTheme)(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList);
+- static winSetWindowTheme mySetWindowTheme = NULL;
+- if (!mySetWindowTheme)
+- {
+- HMODULE hinstDll = LoadLibrary("uxtheme.dll");
+- if (hinstDll)
+- mySetWindowTheme = (winSetWindowTheme)GetProcAddress(hinstDll, "SetWindowTheme");
+- }
+-
+- if (mySetWindowTheme)
+- mySetWindowTheme(hwnd, L"", L"");
+-}
+-
+ void iupwinDrawParentBackground(Ihandle* ih, HDC hDC, RECT* rect)
+ {
+ unsigned char r=0, g=0, b=0;
+@@ -326,3 +341,226 @@ void iupwinDrawDestroyBitmapDC(iupwinBitmapDC *bmpDC)
+ DeleteDC(bmpDC->hBitmapDC);
+ }
+ 
++
++/******************************************************************************
++ Simple Draw
++*******************************************************************************/
++
++struct _IdrawCanvas{
++ Ihandle* ih;
++ int w, h;
++
++ int release_dc;
++ HBITMAP hBitmap, hOldBitmap;
++ HDC hBitmapDC, hDC;
++};
++
++IdrawCanvas* iupDrawCreateCanvas(Ihandle* ih)
++{
++ IdrawCanvas* dc = calloc(1, sizeof(IdrawCanvas));
++ RECT rect;
++
++ /* valid only inside the ACTION callback of an IupCanvas */
++ dc->hDC = (HDC)IupGetAttribute(ih, "HDC_WMPAINT");
++ if (!dc->hDC)
++ {
++ dc->hDC = GetDC(ih->handle);
++ dc->release_dc = 1;
++ }
++
++ GetClientRect(ih->handle, &rect);
++ dc->w = rect.right - rect.left;
++ dc->h = rect.bottom - rect.top;
++
++ dc->hBitmap = CreateCompatibleBitmap(dc->hDC, dc->w, dc->h);
++ dc->hBitmapDC = CreateCompatibleDC(dc->hDC);
++ dc->hOldBitmap = SelectObject(dc->hBitmapDC, dc->hBitmap);
++
++ SetBkMode(dc->hBitmapDC, TRANSPARENT);
++ SetTextAlign(dc->hBitmapDC, TA_TOP|TA_LEFT);
++
++ return dc;
++}
++
++void iupDrawKillCanvas(IdrawCanvas* dc)
++{
++ SelectObject(dc->hBitmapDC, dc->hOldBitmap);
++ DeleteObject(dc->hBitmap);
++ DeleteDC(dc->hBitmapDC);
++ if (dc->release_dc)
++ DeleteDC(dc->hDC);
++
++ free(dc);
++}
++
++void iupDrawUpdateSize(IdrawCanvas* dc)
++{
++ int w, h;
++ RECT rect;
++ GetClientRect(dc->ih->handle, &rect);
++ w = rect.right - rect.left;
++ h = rect.bottom - rect.top;
++
++ if (w != dc->w || h != dc->h)
++ {
++ SelectObject(dc->hBitmapDC, dc->hOldBitmap);
++ DeleteObject(dc->hBitmap);
++ DeleteDC(dc->hBitmapDC);
++
++ dc->hBitmap = CreateCompatibleBitmap(dc->hDC, dc->w, dc->h);
++ dc->hBitmapDC = CreateCompatibleDC(dc->hDC);
++ dc->hOldBitmap = SelectObject(dc->hBitmapDC, dc->hBitmap);
++
++ SetBkMode(dc->hBitmapDC, TRANSPARENT);
++ SetTextAlign(dc->hBitmapDC, TA_TOP|TA_LEFT);
++ }
++}
++
++void iupDrawFlush(IdrawCanvas* dc)
++{
++ BitBlt(dc->hDC, 0, 0, dc->w, dc->h, dc->hBitmapDC, 0, 0, SRCCOPY);
++}
++
++void iupDrawGetSize(IdrawCanvas* dc, int *w, int *h)
++{
++ if (w) *w = dc->w;
++ if (h) *h = dc->h;
++}
++
++void iupDrawParentBackground(IdrawCanvas* dc)
++{
++ unsigned char r=0, g=0, b=0;
++ char* color = iupBaseNativeParentGetBgColorAttrib(dc->ih);
++ iupStrToRGB(color, &r, &g, &b);
++ iupDrawRectangle(dc, 0, 0, dc->w-1, dc->h-1, r, g, b, 1);
++}
++
++void iupDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int filled)
++{
++ RECT rect;
++ rect.left = x1; rect.top = y1; rect.right = x2+1; rect.bottom = y2+1;
++ SetDCBrushColor(dc->hBitmapDC, RGB(r,g,b));
++ if (filled)
++ FillRect(dc->hBitmapDC, &rect, (HBRUSH)GetStockObject(DC_BRUSH));
++ else
++ FrameRect(dc->hBitmapDC, &rect, (HBRUSH)GetStockObject(DC_BRUSH));
++}
++
++void iupDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b)
++{
++ POINT line_poly[2];
++ HPEN hPen = CreatePen(PS_SOLID, 1, RGB(r, g, b));
++ HPEN hPenOld = SelectObject(dc->hBitmapDC, hPen);
++ line_poly[0].x = x1;
++ line_poly[0].y = y1;
++ line_poly[1].x = x2;
++ line_poly[1].y = y2;
++ Polyline(dc->hBitmapDC, line_poly, 2);
++ SelectObject(dc->hBitmapDC, hPenOld);
++ DeleteObject(hPen);
++}
++
++#define IUP_DEG2RAD 0.01745329252 /* degrees to radians (rad = CD_DEG2RAD * deg) */
++
++static int winDrawCalcArc(int c1, int c2, double a, int start)
++{
++ double proj, off;
++ if (start)
++ proj = cos(IUP_DEG2RAD * a);
++ else
++ proj = sin(IUP_DEG2RAD * a);
++ off = (c2+c1)/2.0 + (c2-c1+1)*proj/2.0;
++ return iupROUND(off);
++}
++
++void iupDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int filled)
++{
++ int XStartArc = winDrawCalcArc(x1, x2, a1, 1);
++ int XEndArc = winDrawCalcArc(x1, x2, a2, 0);
++ int YStartArc = winDrawCalcArc(y1, y2, a1, 1);
++ int YEndArc = winDrawCalcArc(y1, y2, a2, 0);
++
++ if (filled)
++ {
++ HBRUSH hBrush = CreateSolidBrush(RGB(r,g,b));
++ HPEN hBrushOld = SelectObject(dc->hBitmapDC, hBrush); 
++ BeginPath(dc->hBitmapDC); 
++ Pie(dc->hBitmapDC, x1, y1, x2+1, y2+1, XStartArc, YStartArc, XEndArc, YEndArc);
++ EndPath(dc->hBitmapDC);
++ FillPath(dc->hBitmapDC);
++ SelectObject(dc->hBitmapDC, hBrushOld);
++ DeleteObject(hBrush);
++ }
++ else
++ {
++ HPEN hPen = CreatePen(PS_SOLID, 1, RGB(r, g, b));
++ HPEN hPenOld = SelectObject(dc->hBitmapDC, hPen);
++ Arc(dc->hBitmapDC, x1, y1, x2+1, y2+1, XStartArc, YStartArc, XEndArc, YEndArc);
++ SelectObject(dc->hBitmapDC, hPenOld);
++ DeleteObject(hPen);
++ }
++}
++
++void iupDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int filled)
++{
++ if (filled)
++ {
++ HBRUSH hBrush = CreateSolidBrush(RGB(r,g,b));
++ HPEN hBrushOld = SelectObject(dc->hBitmapDC, hBrush); 
++ BeginPath(dc->hBitmapDC); 
++ Polygon(dc->hBitmapDC, (POINT*)points, count);
++ EndPath(dc->hBitmapDC);
++ FillPath(dc->hBitmapDC);
++ SelectObject(dc->hBitmapDC, hBrushOld);
++ DeleteObject(hBrush);
++ }
++ else
++ {
++ HPEN hPen = CreatePen(PS_SOLID, 1, RGB(r, g, b));
++ HPEN hPenOld = SelectObject(dc->hBitmapDC, hPen);
++ Polyline(dc->hBitmapDC, (POINT*)points, count);
++ SelectObject(dc->hBitmapDC, hPenOld);
++ DeleteObject(hPen);
++ }
++}
++
++void iupDrawSetClipRect(IdrawCanvas* dc, int x1, int y1, int x2, int y2)
++{
++ HRGN clip_hrgn = CreateRectRgn(x1, y1, x2, y2);
++ SelectClipRgn(dc->hBitmapDC, clip_hrgn);
++ DeleteObject(clip_hrgn);
++}
++
++void iupDrawResetClip(IdrawCanvas* dc)
++{
++ SelectClipRgn(dc->hBitmapDC, NULL);
++}
++
++void iupDrawText(IdrawCanvas* dc, const char* text, int len, int x, int y, unsigned char r, unsigned char g, unsigned char b)
++{
++ HFONT hOldFont, hFont = (HFONT)IupGetAttribute(dc->ih, "HFONT");
++ SetTextColor(dc->hBitmapDC, RGB(r, g, b));
++ hOldFont = SelectObject(dc->hBitmapDC, hFont);
++ TextOut(dc->hBitmapDC, x, y, text, len);
++ SelectObject(dc->hBitmapDC, hOldFont);
++}
++
++void iupDrawImage(IdrawCanvas* dc, const char* name, int make_inactive, int x, int y)
++{
++ int img_w, img_h, bpp;
++ HBITMAP hMask = NULL;
++ HBITMAP hBitmap = iupImageGetImage(name, dc->ih, make_inactive);
++ if (!hBitmap)
++ return;
++
++ /* must use this info, since image can be a driver image loaded from resources */
++ iupdrvImageGetInfo(hBitmap, &img_w, &img_h, &bpp);
++
++ if (bpp == 8)
++ hMask = iupdrvImageCreateMask(IupGetHandle(name));
++
++ iupwinDrawBitmap(dc->hBitmapDC, hBitmap, hMask, x, y, img_w, img_h, bpp);
++
++ if (hMask)
++ DeleteObject(hMask);
++}
+diff --git a/iup/src/win/iupwin_drv.h b/iup/src/win/iupwin_drv.h
+index 3372c1a..7407a7a 100755
+--- a/iup/src/win/iupwin_drv.h
++++ b/iup/src/win/iupwin_drv.h
+@@ -77,6 +77,7 @@ int iupwinBaseContainerProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT
+ /* Creates the Window with native parent and child ID, associate HWND with Ihandle*, 
+ and replace the WinProc by iupwinBaseWinProc */
+ int iupwinCreateWindowEx(Ihandle* ih, LPCSTR lpClassName, DWORD dwExStyle, DWORD dwStyle);
++void iupwinGetNativeParentStyle(Ihandle* ih, DWORD *dwExStyle, DWORD *dwStyle);
+ 
+ int iupwinClassExist(const char* name);
+ int iupwinGetColorRef(Ihandle *ih, char *name, COLORREF *color);
+@@ -97,8 +98,8 @@ char* iupwinGetClipboardText(Ihandle* ih);
+ int iupwinGetScreenRes(void);
+ /* 1 point = 1/72 inch */
+ /* pixel = (point/72)*(pixel/inch) */
+-#define IUPWIN_PT2PIXEL(_pt, _res) MulDiv(_pt, _res, 72) /* (((_pt)*(_res))/72) */
+-#define IUPWIN_PIXEL2PT(_pixel, _res) MulDiv(_pixel, 72, _res) /* (((_pixel)*72)/(_res)) */
++#define iupWIN_PT2PIXEL(_pt, _res) MulDiv(_pt, _res, 72) /* (((_pt)*(_res))/72) */
++#define iupWIN_PIXEL2PT(_pixel, _res) MulDiv(_pixel, 72, _res) /* (((_pixel)*72)/(_res)) */
+ 
+ 
+ /* child window identifier of the first MDI child window created,
+diff --git a/iup/src/win/iupwin_filedlg.c b/iup/src/win/iupwin_filedlg.c
+index da66b4b..26994e5 100755
+--- a/iup/src/win/iupwin_filedlg.c
++++ b/iup/src/win/iupwin_filedlg.c
+@@ -63,7 +63,7 @@ static INT CALLBACK winFileDlgBrowseCallback(HWND hWnd, UINT uMsg, LPARAM lParam
+ }
+ else if (uMsg == BFFM_SELCHANGED)
+ {
+- char* buffer = iupStrGetMemory(MAX_FILENAME_SIZE);
++ char buffer[MAX_FILENAME_SIZE];
+ ITEMIDLIST* selecteditem = (ITEMIDLIST*)lParam;
+ buffer[0] = 0;
+ SHGetPathFromIDList(selecteditem, buffer);
+@@ -90,7 +90,7 @@ static void winFileDlgGetFolder(Ihandle *ih)
+ browseinfo.pszDisplayName = buffer; 
+ browseinfo.lpfn = winFileDlgBrowseCallback;
+ browseinfo.lParam = (LPARAM)ih;
+- browseinfo.ulFlags = BIF_NEWDIALOGSTYLE;
++ browseinfo.ulFlags = IupGetGlobal("_IUPWIN_COINIT_MULTITHREADED")? 0: BIF_NEWDIALOGSTYLE;
+ browseinfo.hwndOwner = parent;
+ 
+ selecteditem = SHBrowseForFolder(&browseinfo);
+@@ -112,6 +112,37 @@ static void winFileDlgGetFolder(Ihandle *ih)
+ 
+ /************************************************************************************************/
+ 
++static int winFileDlgGetSelectedFile(Ihandle* ih, HWND hWnd, char* filename)
++{
++ int ret = CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE);
++ if (ret < 0)
++ return 0;
++
++ if (iupAttribGetBoolean(ih, "MULTIPLEFILES"))
++ {
++ /* check if there are more than 1 files and return only the first one */
++ int found = 0;
++ while(*filename != 0)
++ { 
++ if (*filename == '"')
++ {
++ if (!found)
++ found = 1;
++ else
++ {
++ *(filename-1) = 0;
++ return 1;
++ }
++ }
++ if (found)
++ *filename = *(filename+1);
++ filename++;
++ }
++ }
++
++ return 1;
++}
++
+ static UINT_PTR CALLBACK winFileDlgSimpleHook(HWND hWnd, UINT uiMsg, WPARAM wParam, LPARAM lParam)
+ {
+ (void)wParam;
+@@ -152,16 +183,15 @@ static UINT_PTR CALLBACK winFileDlgSimpleHook(HWND hWnd, UINT uiMsg, WPARAM wPar
+ IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");
+ if (cb)
+ {
+- char* filename = iupStrGetMemory(MAX_FILENAME_SIZE);
+- if (CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE) <= MAX_FILENAME_SIZE)
++ char filename[MAX_FILENAME_SIZE];
++ if (winFileDlgGetSelectedFile(ih, hWnd, filename))
+ {
+ int ret;
+ char* file_msg;
+ 
+ if (!iupdrvIsFile(filename))
+- break;
+-
+- if (pofn->hdr.code == CDN_FILEOK)
++ file_msg = "OTHER";
++ else if (pofn->hdr.code == CDN_FILEOK)
+ file_msg = "OK";
+ else 
+ file_msg = "SELECT";
+@@ -267,9 +297,9 @@ static UINT_PTR CALLBACK winFileDlgPreviewHook(HWND hWnd, UINT uiMsg, WPARAM wPa
+ LPDRAWITEMSTRUCT lpDrawItem = (LPDRAWITEMSTRUCT)lParam;
+ Ihandle* ih = (Ihandle*)GetWindowLongPtr(hWnd, DWLP_USER);
+ IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");
+- char* filename = iupStrGetMemory(MAX_FILENAME_SIZE);
++ char filename[MAX_FILENAME_SIZE];
+ iupAttribSetStr(ih, "PREVIEWDC", (char*)lpDrawItem->hDC);
+- if (CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE) <= MAX_FILENAME_SIZE)
++ if (winFileDlgGetSelectedFile(ih, hWnd, filename))
+ {
+ if (iupdrvIsFile(filename))
+ cb(ih, filename, "PAINT");
+@@ -324,16 +354,15 @@ static UINT_PTR CALLBACK winFileDlgPreviewHook(HWND hWnd, UINT uiMsg, WPARAM wPa
+ case CDN_SELCHANGE:
+ {
+ HWND hWndPreview = GetDlgItem(hWnd, IUP_PREVIEWCANVAS);
+- char* filename = iupStrGetMemory(MAX_FILENAME_SIZE);
+- if (CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE) <= MAX_FILENAME_SIZE)
++ char filename[MAX_FILENAME_SIZE];
++ if (winFileDlgGetSelectedFile(ih, hWnd, filename))
+ {
+ int ret;
+ char* file_msg;
+ 
+ if (!iupdrvIsFile(filename))
+- break;
+-
+- if (pofn->hdr.code == CDN_FILEOK)
++ file_msg = "OTHER";
++ else if (pofn->hdr.code == CDN_FILEOK)
+ file_msg = "OK";
+ else
+ file_msg = "SELECT";
+@@ -520,9 +549,14 @@ static int winFileDlgPopup(Ihandle *ih, int x, int y)
+ if (iupAttribGetBoolean(ih, "MULTIPLEFILES"))
+ {
+ int i = 0;
+- 
++
++ char* dir = iupStrFileGetPath(openfilename.lpstrFile); /* the first part is the directory already */
++ iupAttribStoreStr(ih, "DIRECTORY", dir);
++ free(dir);
++ 
+ /* If there is more than one file, replace terminator by the separator */
+- if (openfilename.lpstrFile && openfilename.lpstrFile[openfilename.nFileOffset-1] == 0 && openfilename.nFileOffset>0) 
++ if (openfilename.lpstrFile[openfilename.nFileOffset-1] == 0 && 
++ openfilename.nFileOffset>0) 
+ {
+ while (openfilename.lpstrFile[i] != 0 || openfilename.lpstrFile[i+1] != 0)
+ {
+@@ -534,12 +568,16 @@ static int winFileDlgPopup(Ihandle *ih, int x, int y)
+ }
+ 
+ iupAttribSetStr(ih, "STATUS", "0");
+- iupAttribSetStr(ih, "FILEEXIST", NULL);
++ iupAttribSetStr(ih, "FILEEXIST", "YES");
+ }
+ else
+ {
+ if (iupdrvIsFile(openfilename.lpstrFile)) /* check if file exists */
+ {
++ char* dir = iupStrFileGetPath(openfilename.lpstrFile);
++ iupAttribStoreStr(ih, "DIRECTORY", dir);
++ free(dir);
++
+ iupAttribSetStr(ih, "FILEEXIST", "YES");
+ iupAttribSetStr(ih, "STATUS", "0");
+ }
+diff --git a/iup/src/win/iupwin_focus.c b/iup/src/win/iupwin_focus.c
+index 63da02d..2328dea 100755
+--- a/iup/src/win/iupwin_focus.c
++++ b/iup/src/win/iupwin_focus.c
+@@ -32,7 +32,7 @@
+ 
+ /* Since Windows XP, the focus feedback only appears after the user press a key.
+ Except for the IupText where the feedback is the caret.
+- Before that if you click in a control the focus feedback will be hidden.
++ Before a key is pressed if you click in a control the focus feedback will be hidden.
+ 
+ We manually send WM_CHANGEUISTATE because we do not use IsDialogMessage anymore,
+ and the focus feedback was not shown even after the used press a key.
+@@ -43,19 +43,28 @@
+ void iupdrvSetFocus(Ihandle *ih)
+ {
+ SetFocus(ih->handle);
+- SendMessage(ih->handle, WM_CHANGEUISTATE, UIS_CLEAR|UISF_HIDEFOCUS, 0);
++
++ /* See comments above */
++ SendMessage(ih->handle, WM_CHANGEUISTATE, UIS_CLEAR|UISF_HIDEFOCUS, 0); /* clear+hidefocus=showfocus */
+ }
+ 
+ void iupwinWmSetFocus(Ihandle *ih)
+ {
+ Ihandle* dialog = IupGetDialog(ih);
+ if (ih != dialog)
+- iupAttribSetStr(dialog, "_IUPWIN_LASTFOCUS", (char*)ih); /* used by IupMenu */
++ iupAttribSetStr(dialog, "_IUPWIN_LASTFOCUS", (char*)ih); /* used by IupMenu and here. */
+ else
+ {
+ /* if a control inside that dialog had the focus, then reset to it when the dialog gets the focus */
+ Ihandle* lastfocus = (Ihandle*)iupAttribGet(dialog, "_IUPWIN_LASTFOCUS");
+- if (lastfocus) IupSetFocus(lastfocus);
++ if (lastfocus)
++ {
++ /* call the callback and update current focus before changing it again */
++ iupCallGetFocusCb(ih);
++
++ IupSetFocus(lastfocus);
++ return;
++ }
+ }
+ 
+ iupCallGetFocusCb(ih);
+diff --git a/iup/src/win/iupwin_font.c b/iup/src/win/iupwin_font.c
+index 659e2d9..c10befb 100755
+--- a/iup/src/win/iupwin_font.c
++++ b/iup/src/win/iupwin_font.c
+@@ -70,7 +70,7 @@ static IwinFont* winFindFont(const char *standardfont)
+ if (height < 0) 
+ height_pixels = height; /* already in pixels */
+ else
+- height_pixels = -IUPWIN_PT2PIXEL(height, res);
++ height_pixels = -iupWIN_PT2PIXEL(height, res);
+ 
+ if (height_pixels == 0)
+ return NULL;
+@@ -119,7 +119,7 @@ static void winFontFromLogFont(LOGFONT* logfont, char * font)
+ int is_strikeout = logfont->lfStrikeOut;
+ int height_pixels = logfont->lfHeight; /* negative value */
+ int res = iupwinGetScreenRes();
+- int height = IUPWIN_PIXEL2PT(-height_pixels, res); /* return in points */
++ int height = iupWIN_PIXEL2PT(-height_pixels, res); /* return in points */
+ 
+ sprintf(font, "%s, %s%s%s%s %d", logfont->lfFaceName, 
+ is_bold?"Bold ":"", 
+diff --git a/iup/src/win/iupwin_fontdlg.c b/iup/src/win/iupwin_fontdlg.c
+index 0602441..ce27cf2 100755
+--- a/iup/src/win/iupwin_fontdlg.c
++++ b/iup/src/win/iupwin_fontdlg.c
+@@ -68,7 +68,7 @@ static int winFontDlgPopup(Ihandle* ih, int x, int y)
+ 
+ standardfont = iupAttribGet(ih, "VALUE");
+ if (!standardfont)
+- return IUP_ERROR;
++ standardfont = IupGetGlobal("DEFAULTFONT");
+ 
+ /* parse the old format first */
+ if (!iupFontParseWin(standardfont, typeface, &height, &is_bold, &is_italic, &is_underline, &is_strikeout))
+@@ -81,7 +81,7 @@ static int winFontDlgPopup(Ihandle* ih, int x, int y)
+ if (height < 0)
+ height_pixels = height; /* already in pixels */
+ else
+- height_pixels = -IUPWIN_PT2PIXEL(height, res);
++ height_pixels = -iupWIN_PT2PIXEL(height, res);
+ 
+ if (height_pixels == 0)
+ return IUP_ERROR;
+@@ -134,7 +134,7 @@ static int winFontDlgPopup(Ihandle* ih, int x, int y)
+ if (height < 0) /* not an error, use old value as a reference for the units */
+ height = height_pixels; /* return in pixels */
+ else
+- height = IUPWIN_PIXEL2PT(-height_pixels, res); /* return in points */
++ height = iupWIN_PIXEL2PT(-height_pixels, res); /* return in points */
+ 
+ iupAttribSetStrf(ih, "VALUE", "%s, %s%s%s%s %d", logfont.lfFaceName, 
+ is_bold?"Bold ":"", 
+diff --git a/iup/src/win/iupwin_frame.c b/iup/src/win/iupwin_frame.c
+index 0949b5d..3f56aed 100755
+--- a/iup/src/win/iupwin_frame.c
++++ b/iup/src/win/iupwin_frame.c
+@@ -47,6 +47,27 @@ void iupdrvFrameGetDecorOffset(Ihandle* ih, int *x, int *y)
+ }
+ }
+ 
++static char* winFrameGetBgColorAttrib(Ihandle* ih)
++{
++ if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
++ return NULL;
++ else
++ return iupBaseNativeParentGetBgColorAttrib(ih);
++}
++
++static int winFrameSetBgColorAttrib(Ihandle* ih, const char* value)
++{
++ (void)value;
++
++ if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
++ {
++ IupUpdate(ih); /* post a redraw */
++ return 1;
++ }
++ else
++ return 0;
++}
++
+ static void winFrameDrawText(HDC hDC, const char* text, int x, int y, COLORREF fgcolor)
+ {
+ COLORREF oldcolor;
+@@ -126,6 +147,16 @@ static void winFrameDrawItem(Ihandle* ih, DRAWITEMSTRUCT *drawitem)
+ DrawEdge(hDC, &drawitem->rcItem, EDGE_SUNKEN, BF_RECT);
+ else
+ DrawEdge(hDC, &drawitem->rcItem, EDGE_ETCHED, BF_RECT);
++
++ if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))
++ {
++ unsigned char r=0, g=0, b=0;
++ char* color = iupAttribGetStr(ih, "BGCOLOR");
++ iupStrToRGB(color, &r, &g, &b);
++ SetDCBrushColor(hDC, RGB(r,g,b));
++ InflateRect(&drawitem->rcItem, -2, -2);
++ FillRect(hDC, &drawitem->rcItem, (HBRUSH)GetStockObject(DC_BRUSH));
++ }
+ }
+ 
+ iupwinDrawDestroyBitmapDC(&bmpDC);
+@@ -169,11 +200,13 @@ static int winFrameMapMethod(Ihandle* ih)
+ title = iupAttribGet(ih, "TITLE");
+ if (title)
+ iupAttribSetStr(ih, "_IUPFRAME_HAS_TITLE", "1");
+-
+- if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))
+- dwExStyle |= WS_EX_COMPOSITED;
+ else
+- dwStyle |= WS_CLIPCHILDREN;
++ {
++ if (iupAttribGet(ih, "BGCOLOR"))
++ iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1");
++ }
++
++ iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);
+ 
+ if (!iupwinCreateWindowEx(ih, "BUTTON", dwExStyle, dwStyle))
+ return IUP_ERROR;
+@@ -195,7 +228,7 @@ void iupdrvFrameInitClass(Iclass* ic)
+ /* Driver Dependent Attribute functions */
+ 
+ /* Visual */
+- iupClassRegisterAttribute(ic, "BGCOLOR", iupBaseNativeParentGetBgColorAttrib, NULL, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); 
++ iupClassRegisterAttribute(ic, "BGCOLOR", winFrameGetBgColorAttrib, winFrameSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); 
+ 
+ /* Special */
+ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_NOT_MAPPED);
+diff --git a/iup/src/win/iupwin_globalattrib.c b/iup/src/win/iupwin_globalattrib.c
+index a176925..bcd6355 100755
+--- a/iup/src/win/iupwin_globalattrib.c
++++ b/iup/src/win/iupwin_globalattrib.c
+@@ -148,6 +148,11 @@ int iupdrvSetGlobal(const char *name, const char *value)
+ winGlobalSendKey(key, 0x03);
+ return 0;
+ }
++ if (iupStrEqual(name, "DLL_HINSTANCE"))
++ {
++ iupwin_dll_hinstance = (HINSTANCE)value;
++ return 0;
++ }
+ return 1;
+ }
+ 
+@@ -239,5 +244,7 @@ char *iupdrvGetGlobal(const char *name)
+ return "YES";
+ return "NO";
+ }
++ if (iupStrEqual(name, "DLL_HINSTANCE"))
++ return (char*)iupwin_dll_hinstance;
+ return NULL;
+ }
+diff --git a/iup/src/win/iupwin_info.c b/iup/src/win/iupwin_info.c
+index 8ea7dd4..4d57289 100755
+--- a/iup/src/win/iupwin_info.c
++++ b/iup/src/win/iupwin_info.c
+@@ -18,7 +18,7 @@
+ #include "iupwin_info.h"
+ 
+ 
+-int iupwinIsVista(void)
++int iupwinIsVistaOrNew(void)
+ {
+ OSVERSIONINFO osvi;
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+diff --git a/iup/src/win/iupwin_info.h b/iup/src/win/iupwin_info.h
+index d39bae0..8d461fb 100755
+--- a/iup/src/win/iupwin_info.h
++++ b/iup/src/win/iupwin_info.h
+@@ -16,7 +16,7 @@ int iupwinGetSystemMajorVersion(void);
+ int iupwinGetComCtl32Version(void);
+ char* iupwinGetSystemLanguage(void);
+ int iupwinIsAppThemed(void);
+-int iupwinIsVista(void);
++int iupwinIsVistaOrNew(void);
+ 
+ /* color */
+ void iupwinGetSysColor(char* color, int wincolor);
+diff --git a/iup/src/win/iupwin_key.c b/iup/src/win/iupwin_key.c
+index 921ed94..899e837 100755
+--- a/iup/src/win/iupwin_key.c
++++ b/iup/src/win/iupwin_key.c
+@@ -317,32 +317,32 @@ int iupwinKeyEvent(Ihandle* ih, int wincode, int press)
+ void iupwinButtonKeySetStatus(WORD keys, char* status, int doubleclick)
+ {
+ if (keys & MK_SHIFT)
+- iupKEYSETSHIFT(status);
++ iupKEY_SETSHIFT(status);
+ 
+ if (keys & MK_CONTROL)
+- iupKEYSETCONTROL(status); 
++ iupKEY_SETCONTROL(status); 
+ 
+ if (keys & MK_LBUTTON)
+- iupKEYSETBUTTON1(status);
++ iupKEY_SETBUTTON1(status);
+ 
+ if (keys & MK_MBUTTON)
+- iupKEYSETBUTTON2(status);
++ iupKEY_SETBUTTON2(status);
+ 
+ if (keys & MK_RBUTTON)
+- iupKEYSETBUTTON3(status);
++ iupKEY_SETBUTTON3(status);
+ 
+ if (doubleclick)
+- iupKEYSETDOUBLE(status);
++ iupKEY_SETDOUBLE(status);
+ 
+ if (GetKeyState(VK_MENU) & 0x8000)
+- iupKEYSETALT(status);
++ iupKEY_SETALT(status);
+ 
+ if ((GetKeyState(VK_LWIN) & 0x8000) || (GetKeyState(VK_RWIN) & 0x8000))
+- iupKEYSETSYS(status);
++ iupKEY_SETSYS(status);
+ 
+ if (keys & MK_XBUTTON1)
+- iupKEYSETBUTTON4(status);
++ iupKEY_SETBUTTON4(status);
+ 
+ if (keys & MK_XBUTTON2)
+- iupKEYSETBUTTON5(status);
++ iupKEY_SETBUTTON5(status);
+ }
+diff --git a/iup/src/win/iupwin_label.c b/iup/src/win/iupwin_label.c
+index d5a1f53..95dd10c 100755
+--- a/iup/src/win/iupwin_label.c
++++ b/iup/src/win/iupwin_label.c
+@@ -173,7 +173,7 @@ static int winLabelSetAlignmentAttrib(Ihandle* ih, const char* value)
+ else /* "ATOP" */
+ ih->data->vert_alignment = IUP_ALIGN_ATOP;
+ 
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ }
+ return 0;
+ }
+@@ -197,7 +197,7 @@ static int winLabelSetPaddingAttrib(Ihandle* ih, const char* value)
+ iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');
+ 
+ if (ih->handle && ih->data->type != IUP_LABEL_SEP_HORIZ && ih->data->type != IUP_LABEL_SEP_VERT)
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ 
+ return 0;
+ }
+@@ -211,7 +211,7 @@ static int winLabelSetWordWrapAttrib(Ihandle* ih, const char* value)
+ else
+ ih->data->text_style &= ~DT_WORDBREAK;
+ 
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ }
+ 
+ return 1;
+@@ -226,7 +226,7 @@ static int winLabelSetEllipsisAttrib(Ihandle* ih, const char* value)
+ else
+ ih->data->text_style &= ~DT_END_ELLIPSIS;
+ 
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ }
+ 
+ return 1;
+@@ -240,12 +240,24 @@ static int winLabelSetFgColorAttrib(Ihandle* ih, const char* value)
+ if (iupStrToRGB(value, &r, &g, &b))
+ {
+ ih->data->fgcolor = RGB(r,g,b);
+- iupdrvDisplayRedraw(ih);
++
++ if (ih->handle)
++ iupdrvRedrawNow(ih);
+ }
+ }
+ return 1;
+ }
+ 
++static int winLabelSetUpdateAttrib(Ihandle* ih, const char* value)
++{
++ (void)value;
++
++ if (ih->handle)
++ iupdrvPostRedraw(ih); /* Post a redraw */
++
++ return 1;
++}
++
+ static int winLabelProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *result)
+ {
+ switch (msg)
+@@ -257,6 +269,7 @@ static int winLabelProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *re
+ *result = WVR_HREDRAW|WVR_VREDRAW;
+ return 1;
+ }
++ break;
+ }
+ }
+ 
+@@ -266,7 +279,7 @@ static int winLabelProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *re
+ static int winLabelMapMethod(Ihandle* ih)
+ {
+ char* value;
+- DWORD dwStyle = WS_CHILD |
++ DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS |
+ SS_NOTIFY; /* SS_NOTIFY is necessary because of the base messages */
+ 
+ if (!ih->parent)
+@@ -330,7 +343,7 @@ void iupdrvLabelInitClass(Iclass* ic)
+ 
+ /* IupLabel only */
+ iupClassRegisterAttribute(ic, "ALIGNMENT", winLabelGetAlignmentAttrib, winLabelSetAlignmentAttrib, IUPAF_SAMEASSYSTEM, "ALEFT:ACENTER", IUPAF_NO_INHERIT);
+- iupClassRegisterAttribute(ic, "IMAGE", NULL, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "IMAGE", NULL, winLabelSetUpdateAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "PADDING", iupLabelGetPaddingAttrib, winLabelSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);
+ 
+ /* IupLabel Windows and GTK only */
+diff --git a/iup/src/win/iupwin_list.c b/iup/src/win/iupwin_list.c
+index 8fdadb6..cb510b5 100755
+--- a/iup/src/win/iupwin_list.c
++++ b/iup/src/win/iupwin_list.c
+@@ -154,6 +154,8 @@ void iupdrvListInsertItem(Ihandle* ih, int pos, const char* value)
+ SendMessage(ih->handle, WIN_INSERTSTRING(ih), pos, (LPARAM)value);
+ SendMessage(ih->handle, WIN_SETITEMDATA(ih), pos, (LPARAM)iupdrvFontGetStringWidth(ih, value));
+ winListUpdateScrollWidth(ih);
++
++ iupListUpdateOldValue(ih, pos, 0);
+ }
+ 
+ void iupdrvListRemoveItem(Ihandle* ih, int pos)
+@@ -164,8 +166,14 @@ void iupdrvListRemoveItem(Ihandle* ih, int pos)
+ int curpos = SendMessage(ih->handle, WIN_GETCURSEL(ih), 0, 0);
+ if (pos == curpos)
+ {
+- if (curpos > 0) curpos--;
+- else curpos++;
++ if (curpos > 0) 
++ curpos--;
++ else 
++ {
++ curpos=1;
++ if (iupdrvListGetCount(ih)==1)
++ curpos = -1; /* remove the selection */
++ }
+ 
+ SendMessage(ih->handle, WIN_SETCURSEL(ih), curpos, 0);
+ }
+@@ -173,6 +181,8 @@ void iupdrvListRemoveItem(Ihandle* ih, int pos)
+ 
+ SendMessage(ih->handle, WIN_DELETESTRING(ih), pos, 0L);
+ winListUpdateScrollWidth(ih);
++
++ iupListUpdateOldValue(ih, pos, 1);
+ }
+ 
+ void iupdrvListRemoveAllItems(Ihandle* ih)
+@@ -220,18 +230,29 @@ static void winListUpdateItemWidth(Ihandle* ih)
+ }
+ }
+ 
++static int winListSetBgColorAttrib(Ihandle *ih, const char *value)
++{
++ (void)value;
++ if (ih->handle)
++ iupdrvPostRedraw(ih);
++ return 1;
++}
++
+ static int winListSetStandardFontAttrib(Ihandle* ih, const char* value)
+ {
+ iupdrvSetStandardFontAttrib(ih, value);
+- winListUpdateItemWidth(ih);
+- winListUpdateScrollWidth(ih);
++ if (ih->handle)
++ {
++ winListUpdateItemWidth(ih);
++ winListUpdateScrollWidth(ih);
++ }
+ return 1;
+ }
+ 
+ static char* winListGetIdValueAttrib(Ihandle* ih, const char* name_id)
+ {
+ int pos = iupListGetPos(ih, name_id);
+- if (pos != -1)
++ if (pos >= 0)
+ {
+ int len = SendMessage(ih->handle, WIN_GETTEXTLEN(ih), (WPARAM)pos, 0);
+ char* str = iupStrGetMemory(len+1);
+@@ -514,8 +535,10 @@ static int winListSetNCAttrib(Ihandle* ih, const char* value)
+ {
+ HWND cbedit = (HWND)iupAttribGet(ih, "_IUPWIN_EDITBOX");
+ SendMessage(cbedit, EM_LIMITTEXT, ih->data->nc, 0L);
++ return 0;
+ }
+- return 0;
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int winListSetSelectionAttrib(Ihandle* ih, const char* value)
+@@ -995,13 +1018,27 @@ static int winListEditProc(Ihandle* ih, HWND cbedit, UINT msg, WPARAM wp, LPARAM
+ if (msg==WM_KEYDOWN) /* process K_ANY before text callbacks */
+ {
+ ret = iupwinBaseProc(ih, msg, wp, lp, result);
+- if (ret) return 1;
++ if (ret) 
++ {
++ iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", "1");
++ *result = 0;
++ return 1;
++ }
++ else
++ iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL);
+ }
+ 
+ switch (msg)
+ {
+ case WM_CHAR:
+ {
++ if (iupAttribGet(ih, "_IUPWIN_IGNORE_CHAR"))
++ {
++ iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL);
++ *result = 0;
++ return 1;
++ }
++
+ if ((char)wp == '\b')
+ { 
+ if (!winListCallEditCb(ih, cbedit, NULL, 0, -1))
+@@ -1301,7 +1338,7 @@ static void winListLayoutUpdateMethod(Ihandle *ih)
+ static int winListMapMethod(Ihandle* ih)
+ {
+ char* class_name;
+- DWORD dwStyle = WS_CHILD,
++ DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS,
+ dwExStyle = WS_EX_CLIENTEDGE;
+ 
+ if (!ih->parent)
+@@ -1426,7 +1463,7 @@ void iupdrvListInitClass(Iclass* ic)
+ iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, winListSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NOT_MAPPED);
+ 
+ /* Visual */
+- iupClassRegisterAttribute(ic, "BGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_NOT_MAPPED); 
++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winListSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_NOT_MAPPED);
+ 
+ /* Special */
+ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "TXTFGCOLOR", IUPAF_NOT_MAPPED);
+diff --git a/iup/src/win/iupwin_loop.c b/iup/src/win/iupwin_loop.c
+index 7c5dbe7..fd25537 100755
+--- a/iup/src/win/iupwin_loop.c
++++ b/iup/src/win/iupwin_loop.c
+@@ -106,6 +106,18 @@ int IupMainLoop(void)
+ return IUP_NOERROR;
+ }
+ 
++int IupLoopStepWait(void)
++{
++ MSG msg;
++ int ret = GetMessage(&msg, NULL, 0, 0);
++ if (ret == -1) /* error */
++ return IUP_ERROR;
++ if (ret == 0 || /* WM_QUIT */
++ winLoopProcessMessage(&msg) == IUP_CLOSE) /* ret != 0 */
++ return IUP_CLOSE;
++ return IUP_DEFAULT;
++}
++
+ int IupLoopStep(void)
+ {
+ MSG msg;
+diff --git a/iup/src/win/iupwin_menu.c b/iup/src/win/iupwin_menu.c
+index 74a8b52..06ad93e 100755
+--- a/iup/src/win/iupwin_menu.c
++++ b/iup/src/win/iupwin_menu.c
+@@ -385,7 +385,10 @@ static int winMenuMapMethod(Ihandle* ih)
+ static void winMenuUnMapMethod(Ihandle* ih)
+ {
+ if (iupMenuIsMenuBar(ih))
++ {
+ SetMenu(ih->parent->handle, NULL);
++ ih->parent = NULL;
++ }
+ 
+ DestroyMenu((HMENU)ih->handle); /* DestroyMenu is recursive */
+ }
+diff --git a/iup/src/win/iupwin_open.c b/iup/src/win/iupwin_open.c
+index 7357cde..3629ce4 100755
+--- a/iup/src/win/iupwin_open.c
++++ b/iup/src/win/iupwin_open.c
+@@ -76,8 +76,9 @@ int iupdrvOpen(int *argc, char ***argv)
+ iupwin_hinstance = GetModuleHandle(NULL);
+ IupSetGlobal("HINSTANCE", (char*)iupwin_hinstance);
+ }
+-
+- CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
++ 
++ if (CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)==RPC_E_CHANGED_MODE)
++ IupSetGlobal("_IUPWIN_COINIT_MULTITHREADED", "1");
+ 
+ {
+ INITCOMMONCONTROLSEX InitCtrls;
+diff --git a/iup/src/win/iupwin_progressbar.c b/iup/src/win/iupwin_progressbar.c
+index 9038d79..4a52cc4 100755
+--- a/iup/src/win/iupwin_progressbar.c
++++ b/iup/src/win/iupwin_progressbar.c
+@@ -106,7 +106,7 @@ static int winProgressBarSetFgColorAttrib(Ihandle* ih, const char* value)
+ 
+ static int winProgressBarMapMethod(Ihandle* ih)
+ {
+- DWORD dwStyle = WS_CHILD;
++ DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS;
+ 
+ if (!ih->parent)
+ return IUP_ERROR;
+diff --git a/iup/src/win/iupwin_tabs.c b/iup/src/win/iupwin_tabs.c
+index 682f451..b39f7fe 100755
+--- a/iup/src/win/iupwin_tabs.c
++++ b/iup/src/win/iupwin_tabs.c
+@@ -232,10 +232,7 @@ static HWND winTabCreatePageWindow(Ihandle* ih)
+ DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS, 
+ dwExStyle = 0;
+ 
+- if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))
+- dwExStyle |= WS_EX_COMPOSITED;
+- else
+- dwStyle |= WS_CLIPCHILDREN;
++ iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);
+ 
+ hWnd = CreateWindowEx(dwExStyle, "IupTabsPage", NULL, dwStyle, 
+ 0, 0, CW_USEDEFAULT, CW_USEDEFAULT, 
+@@ -255,9 +252,12 @@ static int winTabsSetPaddingAttrib(Ihandle* ih, const char* value)
+ iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');
+ 
+ if (ih->handle)
++ {
+ SendMessage(ih->handle, TCM_SETPADDING, 0, MAKELPARAM(ih->data->horiz_padding, ih->data->vert_padding));
+-
+- return 0;
++ return 0;
++ }
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int winTabsSetMultilineAttrib(Ihandle* ih, const char* value)
+@@ -368,6 +368,13 @@ static char* winTabsGetBgColorAttrib(Ihandle* ih)
+ return IupGetGlobal("DLGBGCOLOR");
+ }
+ 
++static int winTabsSetBgColorAttrib(Ihandle *ih, const char *value)
++{
++ (void)value;
++ iupdrvPostRedraw(ih);
++ return 1;
++}
++
+ 
+ /* ------------------------------------------------------------------------- */
+ /* winTabs - Calls the user callback to change of tab */
+@@ -397,6 +404,7 @@ static int winTabsWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
+ int prev_pos = SendMessage(ih->handle, TCM_GETCURSEL, 0, 0);
+ iupAttribSetInt(ih, "_IUPTABS_PREV_CHILD_POS", prev_pos);
+ 
++ /* save the previous handle if callback exists */
+ if (cb)
+ {
+ Ihandle* prev_child = IupGetChild(ih, prev_pos);
+@@ -420,7 +428,9 @@ static int winTabsWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
+ Ihandle* prev_child = (Ihandle*)iupAttribGet(ih, "_IUPTABS_PREV_CHILD");
+ iupAttribSetStr(ih, "_IUPTABS_PREV_CHILD", NULL);
+ 
+- cb(ih, child, prev_child);
++ /* avoid duplicate calls when a Tab is inside another Tab. */
++ if (prev_child)
++ cb(ih, child, prev_child);
+ }
+ }
+ 
+@@ -522,7 +532,7 @@ static void winTabsChildAddedMethod(Ihandle* ih, Ihandle* child)
+ }
+ }
+ 
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ }
+ }
+ }
+@@ -535,12 +545,11 @@ static void winTabsChildRemovedMethod(Ihandle* ih, Ihandle* child)
+ if (tab_page)
+ {
+ int pos = winTabsGetPageWindowPos(ih, tab_page);
++ iupTabsTestRemoveTab(ih, pos);
++
+ SendMessage(ih->handle, TCM_DELETEITEM, pos, 0);
+ DestroyWindow(tab_page);
+ 
+- if (pos==0) pos++;
+- iupdrvTabsSetCurrentTab(ih, pos-1);
+-
+ iupAttribSetStr(child, "_IUPTAB_CONTAINER", NULL);
+ }
+ }
+@@ -564,19 +573,14 @@ static int winTabsMapMethod(Ihandle* ih)
+ if (ih->data->is_multiline)
+ dwStyle |= TCS_MULTILINE;
+ 
+- if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))
+- {
+- dwExStyle |= WS_EX_COMPOSITED;
++ iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);
+ 
+- if (!ih->data->is_multiline && iupwinIsVista())
+- {
+- /* workaround for composite bug in Vista */
+- ih->data->is_multiline = 1; 
+- dwStyle |= TCS_MULTILINE;
+- }
++ if (dwExStyle & WS_EX_COMPOSITED && !ih->data->is_multiline && iupwinIsVistaOrNew())
++ {
++ /* workaround for composite bug in Vista */
++ ih->data->is_multiline = 1; 
++ dwStyle |= TCS_MULTILINE;
+ }
+- else
+- dwStyle |= WS_CLIPCHILDREN;
+ 
+ if (!iupwinCreateWindowEx(ih, WC_TABCONTROL, dwExStyle, dwStyle))
+ return IUP_ERROR;
+@@ -665,7 +669,7 @@ void iupdrvTabsInitClass(Iclass* ic)
+ /* Driver Dependent Attribute functions */
+ 
+ /* Visual */
+- iupClassRegisterAttribute(ic, "BGCOLOR", winTabsGetBgColorAttrib, NULL, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); 
++ iupClassRegisterAttribute(ic, "BGCOLOR", winTabsGetBgColorAttrib, winTabsSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);
+ 
+ /* Special */
+ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_NOT_MAPPED);
+@@ -676,5 +680,9 @@ void iupdrvTabsInitClass(Iclass* ic)
+ iupClassRegisterAttribute(ic, "MULTILINE", winTabsGetMultilineAttrib, winTabsSetMultilineAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "TABTITLE", NULL, winTabsSetTabTitleAttrib, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, winTabsSetTabImageAttrib, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+- iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, winTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);
++ iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, winTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
++
++ /* necessary because transparent background does not work when not using visual styles */
++ if (!iupwin_comctl32ver6) /* Used by iupdrvImageCreateImage */
++ iupClassRegisterAttribute(ic, "FLAT_ALPHA", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ }
+diff --git a/iup/src/win/iupwin_text.c b/iup/src/win/iupwin_text.c
+index dfe489a..2a61724 100755
+--- a/iup/src/win/iupwin_text.c
++++ b/iup/src/win/iupwin_text.c
+@@ -432,8 +432,8 @@ static int winTextSetLinColToPosition(Ihandle *ih, int lin, int col)
+ col--;
+ 
+ linmax = SendMessage(ih->handle, EM_GETLINECOUNT, 0, 0L);
+- if (lin > linmax)
+- lin = linmax;
++ if (lin > linmax-1)
++ lin = linmax-1;
+ 
+ lineindex = SendMessage(ih->handle, EM_LINEINDEX, (WPARAM)lin, 0L);
+ 
+@@ -639,8 +639,12 @@ static int winTextSetPaddingAttrib(Ihandle* ih, const char* value)
+ iupStrToIntInt(value, &(ih->data->horiz_padding), &(ih->data->vert_padding), 'x');
+ ih->data->vert_padding = 0;
+ if (ih->handle)
++ {
+ SendMessage(ih->handle, EM_SETMARGINS, EC_LEFTMARGIN|EC_RIGHTMARGIN, MAKELPARAM(ih->data->horiz_padding, ih->data->horiz_padding));
+- return 0;
++ return 0;
++ }
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int winTextSetSelectedTextAttrib(Ihandle* ih, const char* value)
+@@ -713,8 +717,11 @@ static int winTextSetNCAttrib(Ihandle* ih, const char* value)
+ SendMessage(ih->handle, EM_EXLIMITTEXT, 0, ih->data->nc); /* so it can be larger than 64k */
+ else
+ SendMessage(ih->handle, EM_LIMITTEXT, ih->data->nc, 0L);
++
++ return 0;
+ }
+- return 0;
++ else
++ return 1; /* store until not mapped, when mapped will be set again */
+ }
+ 
+ static int winTextSetSelectionAttrib(Ihandle* ih, const char* value)
+@@ -845,7 +852,7 @@ static char* winTextGetSelectionPosAttrib(Ihandle* ih)
+ 
+ static int winTextSetInsertAttrib(Ihandle* ih, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ if (value)
+ {
+@@ -867,9 +874,9 @@ static int winTextSetInsertAttrib(Ihandle* ih, const char* value)
+ 
+ static int winTextSetAppendAttrib(Ihandle* ih, const char* value)
+ {
+- int len;
++ int pos;
+ char* str;
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ if (!value) value = "";
+ str = (char*)value;
+@@ -881,9 +888,9 @@ static int winTextSetAppendAttrib(Ihandle* ih, const char* value)
+ str = iupStrToDos(str);
+ }
+ 
+- len = GetWindowTextLength(ih->handle)+1;
+- SendMessage(ih->handle, EM_SETSEL, (WPARAM)len, (LPARAM)len);
+- if (ih->data->is_multiline && ih->data->append_newline)
++ pos = GetWindowTextLength(ih->handle)+1;
++ SendMessage(ih->handle, EM_SETSEL, (WPARAM)pos, (LPARAM)pos);
++ if (ih->data->is_multiline && ih->data->append_newline && pos!=1)
+ {
+ if (ih->data->has_formatting)
+ SendMessage(ih->handle, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)"\r");
+@@ -920,7 +927,7 @@ static int winTextSetTabSizeAttrib(Ihandle* ih, const char* value)
+ iupStrToInt(value, &tabsize);
+ tabsize *= 4;
+ SendMessage(ih->handle, EM_SETTABSTOPS, (WPARAM)1L, (LPARAM)&tabsize);
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ return 1;
+ }
+ 
+@@ -1120,6 +1127,7 @@ static int winTextSetBgColorAttrib(Ihandle *ih, const char *value)
+ SendMessage(ih->handle, EM_SETBKGNDCOLOR, 0, (LPARAM)color);
+ }
+ }
++ iupdrvPostRedraw(ih);
+ return 1;
+ }
+ 
+@@ -1529,15 +1537,27 @@ static int winTextProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
+ ret = iupwinBaseProc(ih, msg, wp, lp, result);
+ if (ret) 
+ {
++ iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", "1");
+ *result = 0;
+ return 1;
+ }
++ else
++ iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL);
+ }
+ 
+ switch (msg)
+ {
+ case WM_CHAR:
+ {
++ /* even aborting WM_KEYDOWN, a WM_CHAR will be sent, so ignore it also */
++ /* if a dialog was shown, the loop will be processed, so ignore out of focus WM_CHAR messages */
++ if (GetFocus() != ih->handle || iupAttribGet(ih, "_IUPWIN_IGNORE_CHAR"))
++ {
++ iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL);
++ *result = 0;
++ return 1;
++ }
++
+ if ((char)wp == '\b')
+ { 
+ if (!winTextCallActionCb(ih, NULL, 0, -1))
+@@ -1736,7 +1756,7 @@ static int winTextProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
+ static void winTextCreateSpin(Ihandle* ih)
+ {
+ HWND hSpin;
+- DWORD dwStyle = WS_CHILD|UDS_ARROWKEYS|UDS_HOTTRACK|UDS_NOTHOUSANDS;
++ DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS|UDS_ARROWKEYS|UDS_HOTTRACK|UDS_NOTHOUSANDS;
+ int serial = iupDialogGetChildId(ih);
+ 
+ if (iupStrEqualNoCase(iupAttribGetStr(ih, "SPINALIGN"), "LEFT"))
+@@ -1826,7 +1846,7 @@ static void winTextLayoutUpdateMethod(Ihandle* ih)
+ 
+ static int winTextMapMethod(Ihandle* ih)
+ {
+- DWORD dwStyle = WS_CHILD, 
++ DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS, 
+ dwExStyle = 0;
+ char* winclass = "EDIT", *value;
+ 
+@@ -1873,7 +1893,7 @@ static int winTextMapMethod(Ihandle* ih)
+ }
+ else
+ {
+- dwStyle |= ES_AUTOHSCROLL|ES_NOHIDESEL;
++ dwStyle |= ES_AUTOHSCROLL;
+ 
+ if (iupAttribGetBoolean(ih, "PASSWORD"))
+ dwStyle |= ES_PASSWORD;
+@@ -1950,8 +1970,8 @@ void iupdrvTextInitClass(Iclass* ic)
+ iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, winTextSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NOT_MAPPED);
+ 
+ /* Overwrite Visual */
+- iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winTextSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_NOT_MAPPED); 
+- iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, winTextSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winTextSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_DEFAULT); 
++ iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, winTextSetVisibleAttrib, "YES", "NO", IUPAF_DEFAULT);
+ 
+ /* Special */
+ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "TXTFGCOLOR", IUPAF_NOT_MAPPED); /* usually black */ 
+diff --git a/iup/src/win/iupwin_toggle.c b/iup/src/win/iupwin_toggle.c
+index fcaa438..c17f594 100755
+--- a/iup/src/win/iupwin_toggle.c
++++ b/iup/src/win/iupwin_toggle.c
+@@ -35,7 +35,9 @@
+ 
+ void iupdrvToggleAddCheckBox(int *x, int *y)
+ {
+- (*x) += 16+6;
++ (*x) += 16+8;
++ if (!iupwin_comctl32ver6)
++ (*x) += 4;
+ if ((*y) < 16) (*y) = 16; /* minimum height */
+ }
+ 
+@@ -229,7 +231,7 @@ static int winToggleSetImageAttrib(Ihandle* ih, const char* value)
+ iupAttribSetStr(ih, "IMAGE", (char*)value);
+ 
+ if (iupwin_comctl32ver6)
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ else
+ {
+ int check = SendMessage(ih->handle, BM_GETCHECK, 0L, 0L);
+@@ -249,7 +251,7 @@ static int winToggleSetImInactiveAttrib(Ihandle* ih, const char* value)
+ iupAttribSetStr(ih, "IMINACTIVE", (char*)value);
+ 
+ if (iupwin_comctl32ver6)
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ else
+ {
+ int check = SendMessage(ih->handle, BM_GETCHECK, 0L, 0L);
+@@ -269,7 +271,7 @@ static int winToggleSetImPressAttrib(Ihandle* ih, const char* value)
+ iupAttribSetStr(ih, "IMPRESS", (char*)value);
+ 
+ if (iupwin_comctl32ver6)
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ else
+ {
+ int check = SendMessage(ih->handle, BM_GETCHECK, 0L, 0L);
+@@ -339,7 +341,7 @@ static int winToggleSetActiveAttrib(Ihandle* ih, const char* value)
+ if (iupwin_comctl32ver6)
+ {
+ iupBaseSetActiveAttrib(ih, value);
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ return 0;
+ }
+ else
+@@ -382,11 +384,21 @@ static int winToggleSetPaddingAttrib(Ihandle* ih, const char* value)
+ iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');
+ 
+ if (ih->handle && iupwin_comctl32ver6 && ih->data->type == IUP_TOGGLE_IMAGE)
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ 
+ return 0;
+ }
+ 
++static int winToggleSetUpdateAttrib(Ihandle* ih, const char* value)
++{
++ (void)value;
++
++ if (ih->handle)
++ iupdrvPostRedraw(ih); /* Post a redraw */
++
++ return 1;
++}
++
+ static int winToggleSetBgColorAttrib(Ihandle* ih, const char* value)
+ {
+ (void)value;
+@@ -395,7 +407,7 @@ static int winToggleSetBgColorAttrib(Ihandle* ih, const char* value)
+ /* update internal image cache for controls that have the IMAGE attribute */
+ iupAttribSetStr(ih, "BGCOLOR", value);
+ iupImageUpdateParent(ih);
+- iupdrvDisplayRedraw(ih);
++ iupdrvRedrawNow(ih);
+ }
+ return 1;
+ }
+@@ -591,7 +603,7 @@ static int winToggleMapMethod(Ihandle* ih)
+ {
+ Ihandle* radio = iupRadioFindToggleParent(ih);
+ char* value;
+- DWORD dwStyle = WS_CHILD | 
++ DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS |
+ BS_NOTIFY; /* necessary because of the base messages */
+ 
+ if (!ih->parent)
+@@ -673,11 +685,11 @@ void iupdrvToggleInitClass(Iclass* ic)
+ iupClassRegisterAttribute(ic, "BGCOLOR", winToggleGetBgColorAttrib, winToggleSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); 
+ 
+ /* Special */
+- iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, "DLGFGCOLOR", NULL, IUPAF_NOT_MAPPED); /* force the new default value */ 
++ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, winToggleSetUpdateAttrib, "DLGFGCOLOR", NULL, IUPAF_NOT_MAPPED); /* force the new default value */ 
+ iupClassRegisterAttribute(ic, "TITLE", iupdrvBaseGetTitleAttrib, winToggleSetTitleAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ 
+ /* IupToggle only */
+- iupClassRegisterAttribute(ic, "ALIGNMENT", NULL, NULL, IUPAF_SAMEASSYSTEM, "ACENTER:ACENTER", IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "ALIGNMENT", NULL, winToggleSetUpdateAttrib, IUPAF_SAMEASSYSTEM, "ACENTER:ACENTER", IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "IMAGE", NULL, winToggleSetImageAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "IMINACTIVE", NULL, winToggleSetImInactiveAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "IMPRESS", NULL, winToggleSetImPressAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+diff --git a/iup/src/win/iupwin_tree.c b/iup/src/win/iupwin_tree.c
+index e6877dc..4a5f8be 100755
+--- a/iup/src/win/iupwin_tree.c
++++ b/iup/src/win/iupwin_tree.c
+@@ -31,17 +31,19 @@
+ #include "iupwin_draw.h"
+ #include "iupwin_info.h"
+ 
++
+ typedef struct _winTreeItemData
+ {
+ COLORREF color;
+ unsigned char kind;
+- void* userdata;
+ HFONT hFont;
+ short image;
+ short image_expanded;
+ } winTreeItemData;
+ 
+-#ifndef TVN_ITEMCHANGING /* Vista Only */
++/* Vista Only */
++
++#ifndef TVN_ITEMCHANGING 
+ typedef struct tagNMTVITEMCHANGE {
+ NMHDR hdr;
+ UINT uChanged;
+@@ -54,257 +56,125 @@ typedef struct tagNMTVITEMCHANGE {
+ #define TVN_ITEMCHANGINGW (TVN_FIRST-17) 
+ #endif
+ 
+-static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem);
+-typedef int (*winTreeNodeFunc)(Ihandle* ih, HTREEITEM hItem, void* userdata);
+-
+-static int winTreeForEach(Ihandle* ih, HTREEITEM hItem, winTreeNodeFunc func, void* userdata)
+-{
+- HTREEITEM hItemChild;
+-
+- if (!hItem)
+- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
++#ifndef TVS_EX_DOUBLEBUFFER
++#define TVS_EX_DOUBLEBUFFER 0x0004
++#endif
+ 
+- while(hItem != NULL)
+- {
+- if (!func(ih, hItem, userdata))
+- return 0;
++#ifndef TVM_SETEXTENDEDSTYLE
++#define TVM_SETEXTENDEDSTYLE (TV_FIRST + 44)
++#endif
+ 
+- hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
+- if (hItemChild)
+- {
+- /* Recursively traverse child items */
+- if (!winTreeForEach(ih, hItemChild, func, userdata))
+- return 0;
+- }
+ 
+- /* Go to next sibling item */
+- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
+- }
++static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem);
+ 
+- return 1;
+-}
+ 
+ /*****************************************************************************/
+ /* FINDING ITEMS */
+ /*****************************************************************************/
+-static HTREEITEM winTreeFindNodeID(Ihandle* ih, HTREEITEM hItem, HTREEITEM hNode)
+-{
+- TVITEM item;
+- winTreeItemData* itemData;
+-
+- while(hItem != NULL)
+- {
+- /* ID control to traverse items */
+- ih->data->id_control++;
+-
+- /* StateID founded! */
+- if(hItem == hNode)
+- return hItem;
+ 
+- /* Get hItem attributes */
+- item.hItem = hItem;
+- item.mask = TVIF_HANDLE|TVIF_PARAM;
+- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
+- itemData = (winTreeItemData*)item.lParam;
+-
+- /* Check whether we have child items */
+- if (itemData->kind == ITREE_BRANCH)
+- {
+- /* Recursively traverse child items */
+- HTREEITEM hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
+- hItemChild = winTreeFindNodeID(ih, hItemChild, hNode);
+-
+- /* StateID founded! */
+- if(hItemChild)
+- return hItemChild;
+- }
+- /* Go to next sibling item */
+- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
+- }
+-
+- return NULL;
++InodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih)
++{
++ return (InodeHandle*)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CARET, 0);
+ }
+ 
+-static int winTreeGetNodeId(Ihandle* ih, HTREEITEM hItem)
++static HTREEITEM winTreeFindNodeXY(Ihandle* ih, int x, int y)
+ {
+- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
+- ih->data->id_control = -1;
+- if (winTreeFindNodeID(ih, hItemRoot, hItem))
+- return ih->data->id_control;
+- else
+- return -1;
++ TVHITTESTINFO info;
++ info.pt.x = x;
++ info.pt.y = y;
++ return (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)(LPTVHITTESTINFO)&info);
+ }
+ 
+-static HTREEITEM winTreeFindUserDataID(Ihandle* ih, HTREEITEM hItem, void* userdata)
++static HTREEITEM winTreeFindNodePointed(Ihandle* ih)
+ {
+- TVITEM item;
+- winTreeItemData* itemData;
+-
+- while(hItem != NULL)
+- {
+- /* ID control to traverse items */
+- ih->data->id_control++;
+-
+- /* Get hItem attributes */
+- item.hItem = hItem;
+- item.mask = TVIF_HANDLE|TVIF_PARAM;
+- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
+- itemData = (winTreeItemData*)item.lParam;
+-
+- /* userdata founded! */
+- if(itemData->userdata == userdata)
+- return hItem;
+-
+- /* Check whether we have child items */
+- if (itemData->kind == ITREE_BRANCH)
+- {
+- /* Recursively traverse child items */
+- HTREEITEM hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
+- hItemChild = winTreeFindUserDataID(ih, hItemChild, userdata);
+-
+- /* userdata founded! */
+- if (hItemChild)
+- return hItemChild;
+- }
+-
+- /* Go to next sibling item */
+- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
+- }
+-
+- return NULL;
++ TVHITTESTINFO info;
++ DWORD pos = GetMessagePos();
++ info.pt.x = LOWORD(pos);
++ info.pt.y = HIWORD(pos);
++ ScreenToClient(ih->handle, &info.pt);
++ return (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)(LPTVHITTESTINFO)&info);
+ }
+ 
+-static int winTreeGetUserDataId(Ihandle* ih, void* userdata)
++int iupwinGetColor(const char* value, COLORREF *color)
+ {
+- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
+- ih->data->id_control = -1;
+- if (winTreeFindUserDataID(ih, hItemRoot, userdata))
+- return ih->data->id_control;
+- else
+- return -1;
++ unsigned char r, g, b;
++ if (iupStrToRGB(value, &r, &g, &b))
++ {
++ *color = RGB(r,g,b);
++ return 1;
++ }
++ return 0;
+ }
+ 
+-static HTREEITEM winTreeFindNodeFromID(Ihandle* ih, HTREEITEM hItem)
++static void winTreeChildCountRec(Ihandle* ih, HTREEITEM hItem, int *count)
+ {
+- TVITEM item;
+- winTreeItemData* itemData;
+-
++ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
+ while(hItem != NULL)
+ {
+- /* ID control to traverse items */
+- ih->data->id_control--;
+-
+- /* StateID founded! */
+- if(ih->data->id_control < 0)
+- return hItem;
+-
+- /* Get hItem attributes */
+- item.hItem = hItem;
+- item.mask = TVIF_HANDLE|TVIF_PARAM;
+- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
+- itemData = (winTreeItemData*)item.lParam;
+-
+- /* Check whether we have child items */
+- if (itemData->kind == ITREE_BRANCH)
+- {
+- /* Recursively traverse child items */
+- HTREEITEM hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
+- hItemChild = winTreeFindNodeFromID(ih, hItemChild);
++ (*count)++;
+ 
+- /* StateID founded! */
+- if(ih->data->id_control < 0)
+- return hItemChild;
+- }
++ /* go recursive to children */
++ winTreeChildCountRec(ih, hItem, count);
+ 
+ /* Go to next sibling item */
+ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
+ }
+-
+- return hItem;
+ }
+ 
+-static HTREEITEM winTreeFindNodeFromString(Ihandle* ih, const char* name_id)
++int iupdrvTreeTotalChildCount(Ihandle* ih, HTREEITEM hItem)
+ {
+- if (name_id[0])
+- {
+- HTREEITEM hRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
+- iupStrToInt(name_id, &ih->data->id_control);
+- return winTreeFindNodeFromID(ih, hRoot);
+- }
+- else
+- return (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CARET, 0);
++ int count = 0;
++ winTreeChildCountRec(ih, hItem, &count);
++ return count;
+ }
+ 
+-/* Recursively, find a new brother for the item
+- that will have its depth changed. Returns the new brother. */
+-static HTREEITEM winTreeFindNewBrother(Ihandle* ih, HTREEITEM hBrotherItem)
++static void winTreeChildRebuildCacheRec(Ihandle* ih, HTREEITEM hItem, int *id)
+ {
+- TVITEM item;
+- winTreeItemData* itemData;
+-
+- while(hBrotherItem != NULL)
++ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
++ while(hItem != NULL)
+ {
+- if(ih->data->id_control < 0)
+- return hBrotherItem;
+-
+- item.hItem = hBrotherItem;
+- item.mask = TVIF_HANDLE|TVIF_PARAM;
+- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
+- itemData = (winTreeItemData*)item.lParam;
+-
+- if (itemData->kind == ITREE_BRANCH)
+- {
+- HTREEITEM hItemChild;
+-
+- ih->data->id_control--;
+- hItemChild = winTreeFindNewBrother(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hBrotherItem));
++ (*id)++;
++ ih->data->node_cache[*id].node_handle = hItem;
+ 
+- if(ih->data->id_control < 0)
+- return hItemChild;
+- }
++ /* go recursive to children */
++ winTreeChildRebuildCacheRec(ih, hItem, id);
+ 
+- hBrotherItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hBrotherItem);
++ /* Go to next sibling item */
++ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
+ }
+-
+- return hBrotherItem;
+ }
+ 
+-static HTREEITEM winTreeFindNodePointed(Ihandle* ih)
++static void winTreeRebuildNodeCache(Ihandle* ih, int id, HTREEITEM hItem)
+ {
+- TVHITTESTINFO info;
+- DWORD pos = GetMessagePos();
+- info.pt.x = LOWORD(pos);
+- info.pt.y = HIWORD(pos);
+-
+- ScreenToClient(ih->handle, &info.pt);
+- 
+- return (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)(LPTVHITTESTINFO)&info);
++ ih->data->node_cache[id].node_handle = hItem;
++ winTreeChildRebuildCacheRec(ih, hItem, &id);
+ }
+ 
+-int iupwinGetColor(const char* value, COLORREF *color)
+-{
+- unsigned char r, g, b;
+- if (iupStrToRGB(value, &r, &g, &b))
+- {
+- *color = RGB(r,g,b);
+- return 1;
+- }
+- return 0;
+-}
+ 
+ /*****************************************************************************/
+ /* ADDING ITEMS */
+ /*****************************************************************************/
++
++static void winTreeExpandItem(Ihandle* ih, HTREEITEM hItem, int expand);
++
+ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* title, int add)
+ {
+- TVITEM item, tviPrevItem;
++ TVITEM item;
+ TVINSERTSTRUCT tvins;
+- HTREEITEM hPrevItem = winTreeFindNodeFromString(ih, name_id);
+- int kindPrev;
++ HTREEITEM hPrevItem = iupTreeGetNodeFromString(ih, name_id);
++ HTREEITEM hItemNew;
+ winTreeItemData* itemData;
+ 
+ if (!hPrevItem)
+- return;
++ {
++ /* check if the root was really specified */
++ int id = 0;
++ if (!iupStrToInt(name_id, &id) || id != -1)
++ return;
++ }
++
++ if (!title)
++ title = "";
+ 
+ itemData = calloc(1, sizeof(winTreeItemData));
+ itemData->image = -1;
+@@ -318,83 +188,71 @@ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t
+ iupwinGetColor(iupAttribGetStr(ih, "FGCOLOR"), &itemData->color);
+ 
+ if (kind == ITREE_BRANCH)
+- {
+ item.iSelectedImage = item.iImage = (int)ih->data->def_image_collapsed;
+-
+- if (ih->data->add_expanded)
+- {
+- item.mask |= TVIF_STATE;
+- item.state = item.stateMask = TVIS_EXPANDED;
+- item.iSelectedImage = item.iImage = (int)ih->data->def_image_expanded;
+- }
+- }
+ else
+ item.iSelectedImage = item.iImage = (int)ih->data->def_image_leaf;
+ 
+ /* Save the heading level in the node's application-defined data area */
+ tvins.item = item;
+ 
+- /* get the KIND attribute of node selected */ 
+- tviPrevItem.hItem = hPrevItem;
+- tviPrevItem.mask = TVIF_PARAM|TVIF_CHILDREN; 
+- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&tviPrevItem);
+- kindPrev = ((winTreeItemData*)tviPrevItem.lParam)->kind;
+-
+- /* Define the parent and the position to the new node inside
+- the list, using the KIND attribute of node selected */
+- if (kindPrev == ITREE_BRANCH && add)
+- {
+- tvins.hParent = hPrevItem;
+- tvins.hInsertAfter = TVI_FIRST; /* insert the new node after item selected, as first child */
+- }
+- else
+- {
+- tvins.hParent = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hPrevItem);
+- tvins.hInsertAfter = hPrevItem; /* insert the new node after item selected */
+- }
+-
+- /* Add the node to the tree-view control */
+- SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);
+-
+- if (kindPrev == ITREE_BRANCH && tviPrevItem.cChildren==0)
++ if (hPrevItem)
+ {
+- /* this is the first child, redraw to update the '+'/'-' buttons */
+- iupdrvDisplayRedraw(ih);
+- }
+-}
++ int kindPrev;
++ TVITEM tviPrevItem;
+ 
+-static void winTreeAddRootNode(Ihandle* ih)
+-{
+- TVITEM item; 
+- TVINSERTSTRUCT tvins;
+- HTREEITEM hNewItem;
+- winTreeItemData* itemData;
++ /* get the KIND attribute of reference node */ 
++ tviPrevItem.hItem = hPrevItem;
++ tviPrevItem.mask = TVIF_PARAM|TVIF_CHILDREN; 
++ SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&tviPrevItem);
++ kindPrev = ((winTreeItemData*)tviPrevItem.lParam)->kind;
+ 
+- itemData = calloc(1, sizeof(winTreeItemData));
+- itemData->image = -1;
+- itemData->image_expanded = -1;
+- itemData->kind = ITREE_BRANCH;
++ /* Define the parent and the position to the new node inside
++ the list, using the KIND attribute of reference node */
++ if (kindPrev == ITREE_BRANCH && add)
++ {
++ /* depth+1 */
++ tvins.hParent = hPrevItem;
++ tvins.hInsertAfter = TVI_FIRST; /* insert the new node after the reference node, as first child */
++ }
++ else
++ {
++ /* same depth */
++ tvins.hParent = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hPrevItem);
++ tvins.hInsertAfter = hPrevItem; /* insert the new node after reference node */
++ }
+ 
+- item.mask = TVIF_PARAM | TVIF_STATE | TVIF_IMAGE | TVIF_SELECTEDIMAGE; 
+- item.state = item.stateMask = TVIS_EXPANDED;
+- item.iSelectedImage = item.iImage = (int)ih->data->def_image_expanded;
+- item.lParam = (LPARAM)itemData;
++ /* Add the new node */
++ hItemNew = (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);
++ iupTreeAddToCache(ih, add, kindPrev, hPrevItem, hItemNew);
+ 
+- iupwinGetColor(iupAttribGetStr(ih, "FGCOLOR"), &itemData->color);
++ if (kindPrev == ITREE_BRANCH && tviPrevItem.cChildren==0) /* was 0, now is 1 */
++ {
++ /* this is the first child, redraw to update the '+'/'-' buttons */
++ if (ih->data->add_expanded)
++ winTreeExpandItem(ih, hPrevItem, 1);
++ else
++ winTreeExpandItem(ih, hPrevItem, 0);
++ }
+ 
+- /* Save the heading level in the node's application-defined data area */
+- tvins.item = item; 
+- tvins.hInsertAfter = TVI_FIRST;
+- tvins.hParent = TVI_ROOT;
++ }
++ else
++ {
++ tvins.hInsertAfter = TVI_FIRST;
++ tvins.hParent = TVI_ROOT;
+ 
+- /* Add the node to the tree-view control */
+- hNewItem = (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);
++ /* Add the new node */
++ hItemNew = (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);
++ iupTreeAddToCache(ih, 0, 0, NULL, hItemNew);
+ 
+- /* MarkStart node */
+- iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)hNewItem);
++ if (ih->data->node_count == 1)
++ {
++ /* MarkStart node */
++ iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)hItemNew);
+ 
+- /* Set the default VALUE */
+- winTreeSetFocusNode(ih, hNewItem);
++ /* Set the default VALUE */
++ winTreeSetFocusNode(ih, hItemNew);
++ }
++ }
+ }
+ 
+ static int winTreeIsItemExpanded(Ihandle* ih, HTREEITEM hItem)
+@@ -408,13 +266,28 @@ static int winTreeIsItemExpanded(Ihandle* ih, HTREEITEM hItem)
+ 
+ static void winTreeExpandItem(Ihandle* ih, HTREEITEM hItem, int expand)
+ {
+- if (expand == -1)
+- expand = !winTreeIsItemExpanded(ih, hItem); /* toggle */
++ TVITEM item;
++ winTreeItemData* itemData;
++
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", "1");
++ /* it only works if the branch has children */
++ SendMessage(ih->handle, TVM_EXPAND, expand? TVE_EXPAND: TVE_COLLAPSE, (LPARAM)hItem);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", NULL);
++
++ /* update image */
++ item.hItem = hItem;
++ item.mask = TVIF_HANDLE|TVIF_PARAM;
++ SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
++ itemData = (winTreeItemData*)item.lParam;
+ 
+ if (expand)
+- SendMessage(ih->handle, TVM_EXPAND, TVE_EXPAND, (LPARAM)hItem);
++ item.iSelectedImage = item.iImage = (itemData->image_expanded!=-1)? itemData->image_expanded: (int)ih->data->def_image_expanded;
+ else
+- SendMessage(ih->handle, TVM_EXPAND, TVE_COLLAPSE, (LPARAM)hItem);
++ item.iSelectedImage = item.iImage = (itemData->image!=-1)? itemData->image: (int)ih->data->def_image_collapsed;
++
++ item.hItem = hItem;
++ item.mask = TVIF_HANDLE | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
++ SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item);
+ }
+ 
+ /*****************************************************************************/
+@@ -445,12 +318,12 @@ static void winTreeExpandTree(Ihandle* ih, HTREEITEM hItem, int expand)
+ /* SELECTING ITEMS */
+ /*****************************************************************************/
+ 
+-static int winTreeIsItemSelected(Ihandle* ih, HTREEITEM hItem)
++static int winTreeIsNodeSelected(Ihandle* ih, HTREEITEM hItem)
+ {
+ return ((SendMessage(ih->handle, TVM_GETITEMSTATE, (WPARAM)hItem, TVIS_SELECTED)) & TVIS_SELECTED)!=0;
+ }
+ 
+-static void winTreeSelectItem(Ihandle* ih, HTREEITEM hItem, int select)
++static void winTreeSelectNode(Ihandle* ih, HTREEITEM hItem, int select)
+ {
+ TV_ITEM item;
+ item.mask = TVIF_STATE | TVIF_HANDLE;
+@@ -458,16 +331,13 @@ static void winTreeSelectItem(Ihandle* ih, HTREEITEM hItem, int select)
+ item.hItem = hItem;
+ 
+ if (select == -1)
+- select = !winTreeIsItemSelected(ih, hItem);
++ select = !winTreeIsNodeSelected(ih, hItem); /* toggle */
+ 
+ item.state = select ? TVIS_SELECTED : 0;
+ 
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)&item);
+-}
+-
+-static HTREEITEM winTreeGetFocusNode(Ihandle* ih)
+-{
+- return (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CARET, 0);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ }
+ 
+ /* ------------Comment from wxWidgets--------------------
+@@ -475,17 +345,17 @@ static HTREEITEM winTreeGetFocusNode(Ihandle* ih)
+ item without changing anything else. */
+ static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem)
+ {
+- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
++ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
+ if (hItem != hItemFocus)
+ {
+ /* remember the selection state of the item */
+- int wasSelected = winTreeIsItemSelected(ih, hItem);
++ int wasSelected = winTreeIsNodeSelected(ih, hItem);
+ int wasFocusSelected = 0;
+ 
+- if (iupwinIsVista())
++ if (iupwinIsVistaOrNew() && iupwin_comctl32ver6)
+ iupAttribSetStr(ih, "_IUPTREE_ALLOW_CHANGE", (char*)hItem); /* Vista Only */
+ else
+- wasFocusSelected = hItemFocus && winTreeIsItemSelected(ih, hItemFocus);
++ wasFocusSelected = hItemFocus && winTreeIsNodeSelected(ih, hItemFocus);
+ 
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ 
+@@ -493,58 +363,42 @@ static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem)
+ {
+ /* prevent the tree from unselecting the old focus which it would do by default */
+ SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)NULL); /* remove the focus */
+- winTreeSelectItem(ih, hItemFocus, 1); /* select again */
++ winTreeSelectNode(ih, hItemFocus, 1); /* select again */
+ }
+ 
+ SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItem); /* set focus, selection, and unselect the previous focus */
+ 
+ if (!wasSelected)
+- winTreeSelectItem(ih, hItem, 0); /* need to clear the selection if was not selected */
++ winTreeSelectNode(ih, hItem, 0); /* need to clear the selection if was not selected */
+ 
+ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ iupAttribSetStr(ih, "_IUPTREE_ALLOW_CHANGE", NULL);
+ }
+ }
+ 
+-typedef struct _winTreeRange{
+- HTREEITEM hItem1, hItem2;
+- char inside, clear;
+-}winTreeRange;
+-
+-static int winTreeSelectRangeFunc(Ihandle* ih, HTREEITEM hItem, winTreeRange* range)
++static void winTreeSelectRange(Ihandle* ih, HTREEITEM hItem1, HTREEITEM hItem2, int clear)
+ {
+- int end_range = 0;
+-
+- if (range->inside == 0) /* detect the range start */
++ int i;
++ int id1 = iupTreeFindNodeId(ih, hItem1);
++ int id2 = iupTreeFindNodeId(ih, hItem2);
++ if (id2 == -1) id2 = ih->data->node_count-1;
++ if (id1 > id2)
+ {
+- if (range->hItem1 == hItem) range->inside=1;
+- else if (range->hItem2 == hItem) range->inside=1;
++ int tmp = id1;
++ id1 = id2;
++ id2 = tmp;
+ }
+- else if (range->inside == 1) /* detect the range end */
++
++ for (i = 0; i < ih->data->node_count; i++)
+ {
+- if (range->hItem1 == hItem) end_range=1;
+- else if (range->hItem2 == hItem) end_range=1;
++ if (i < id1 || i > id2)
++ {
++ if (clear)
++ winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 0);
++ }
++ else
++ winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 1);
+ }
+-
+- if (range->inside == 1) /* if inside, select */
+- winTreeSelectItem(ih, hItem, 1);
+- else if (range->clear) /* if outside and clear, unselect */
+- winTreeSelectItem(ih, hItem, 0);
+-
+- if (end_range || (range->inside && range->hItem1==range->hItem2))
+- range->inside=-1; /* update after selecting the node */
+-
+- return 1;
+-}
+-
+-static void winTreeSelectRange(Ihandle* ih, HTREEITEM hItemFrom, HTREEITEM hItemTo, int clear)
+-{
+- winTreeRange range;
+- range.hItem1 = hItemFrom;
+- range.hItem2 = hItemTo;
+- range.inside = 0;
+- range.clear = (char)clear;
+- winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeSelectRangeFunc, &range);
+ }
+ 
+ static void winTreeSelectAll(Ihandle* ih)
+@@ -558,9 +412,10 @@ static void winTreeClearSelection(Ihandle* ih, HTREEITEM hItemExcept)
+ winTreeSelectRange(ih, hItemExcept, hItemExcept, 1);
+ }
+ 
+-static int winTreeInvertSelectFunc(Ihandle* ih, HTREEITEM hItem, void* userdata)
++static int winTreeInvertSelectFunc(Ihandle* ih, HTREEITEM hItem, int id, void* userdata)
+ {
+- winTreeSelectItem(ih, hItem, -1);
++ (void)id;
++ winTreeSelectNode(ih, hItem, -1);
+ (void)userdata;
+ return 1;
+ }
+@@ -568,14 +423,11 @@ static int winTreeInvertSelectFunc(Ihandle* ih, HTREEITEM hItem, void* userdata)
+ typedef struct _winTreeSelArray{
+ Iarray* markedArray;
+ char is_handle;
+- int id_control;
+ }winTreeSelArray;
+ 
+-static int winTreeSelectedArrayFunc(Ihandle* ih, HTREEITEM hItem, winTreeSelArray* selarray)
++static int winTreeSelectedArrayFunc(Ihandle* ih, HTREEITEM hItem, int id, winTreeSelArray* selarray)
+ { 
+- selarray->id_control++;
+-
+- if (winTreeIsItemSelected(ih, hItem))
++ if (winTreeIsNodeSelected(ih, hItem))
+ {
+ if (selarray->is_handle)
+ {
+@@ -587,7 +439,7 @@ static int winTreeSelectedArrayFunc(Ihandle* ih, HTREEITEM hItem, winTreeSelArra
+ {
+ int* intArrayData = (int*)iupArrayInc(selarray->markedArray);
+ int i = iupArrayCount(selarray->markedArray);
+- intArrayData[i-1] = selarray->id_control;
++ intArrayData[i-1] = id;
+ }
+ }
+ 
+@@ -599,10 +451,9 @@ static Iarray* winTreeGetSelectedArray(Ihandle* ih)
+ Iarray* markedArray = iupArrayCreate(1, sizeof(HTREEITEM));
+ winTreeSelArray selarray;
+ selarray.markedArray = markedArray;
+- selarray.id_control = -1;
+ selarray.is_handle = 1;
+ 
+- winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeSelectedArrayFunc, &selarray);
++ iupTreeForEach(ih, (iupTreeNodeFunc)winTreeSelectedArrayFunc, &selarray);
+ 
+ return markedArray;
+ }
+@@ -612,10 +463,9 @@ static Iarray* winTreeGetSelectedArrayId(Ihandle* ih)
+ Iarray* markedArray = iupArrayCreate(1, sizeof(int));
+ winTreeSelArray selarray;
+ selarray.markedArray = markedArray;
+- selarray.id_control = -1;
+ selarray.is_handle = 0;
+ 
+- winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeSelectedArrayFunc, &selarray);
++ iupTreeForEach(ih, (iupTreeNodeFunc)winTreeSelectedArrayFunc, &selarray);
+ 
+ return markedArray;
+ }
+@@ -625,7 +475,7 @@ static Iarray* winTreeGetSelectedArrayId(Ihandle* ih)
+ /* COPYING ITEMS (Branches and its children) */
+ /*****************************************************************************/
+ /* Insert the copied item in a new location. Returns the new item. */
+-static HTREEITEM winTreeCopyItem(Ihandle* ih, HTREEITEM hItem, HTREEITEM hParent, HTREEITEM hPosition, int full_copy)
++static HTREEITEM winTreeCopyItem(Ihandle* ih, HTREEITEM hItem, HTREEITEM hParent, HTREEITEM hPosition, int is_copy)
+ {
+ TVITEM item; 
+ TVINSERTSTRUCT tvins;
+@@ -637,34 +487,34 @@ static HTREEITEM winTreeCopyItem(Ihandle* ih, HTREEITEM hItem, HTREEITEM hParent
+ item.cchTextMax = 255;
+ SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
+ 
+- if (full_copy) /* during a full copy the userdata reference is not copied */
++ if (is_copy) /* during a copy the itemdata reference is not reused */
+ {
+ /* create a new one */
+ winTreeItemData* itemDataNew = malloc(sizeof(winTreeItemData));
+ memcpy(itemDataNew, (void*)item.lParam, sizeof(winTreeItemData));
+- itemDataNew->userdata = NULL;
+ item.lParam = (LPARAM)itemDataNew;
+ }
+ 
+- /* Copy everything including user data reference */
++ /* Copy everything including itemdata reference */
+ tvins.item = item; 
+ tvins.hInsertAfter = hPosition;
+ tvins.hParent = hParent;
+ 
+- /* Add the node to the tree-view control */
++ /* Add the new node */
++ ih->data->node_count++;
+ return (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);
+ }
+ 
+-static void winTreeCopyChildren(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int full_copy)
++static void winTreeCopyChildren(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int is_copy)
+ {
+ HTREEITEM hChildSrc = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItemSrc);
+- HTREEITEM hNewItem = TVI_FIRST;
++ HTREEITEM hItemNew = TVI_FIRST;
+ while (hChildSrc != NULL)
+ {
+- hNewItem = winTreeCopyItem(ih, hChildSrc, hItemDst, hNewItem, full_copy); /* Use the same order they where enumerated */
++ hItemNew = winTreeCopyItem(ih, hChildSrc, hItemDst, hItemNew, is_copy); /* Use the same order they where enumerated */
+ 
+ /* Recursively transfer all the items */
+- winTreeCopyChildren(ih, hChildSrc, hNewItem, full_copy); 
++ winTreeCopyChildren(ih, hChildSrc, hItemNew, is_copy); 
+ 
+ /* Go to next sibling item */
+ hChildSrc = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hChildSrc);
+@@ -672,11 +522,18 @@ static void winTreeCopyChildren(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItem
+ }
+ 
+ /* Copies all items in a branch to a new location. Returns the new branch node. */
+-static HTREEITEM winTreeCopyNode(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int full_copy)
++static HTREEITEM winTreeCopyMoveNode(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int is_copy)
+ {
+- HTREEITEM hNewItem, hParent;
++ HTREEITEM hItemNew, hParent;
+ TVITEM item;
+ winTreeItemData* itemDataDst;
++ int id_new, count, id_src, id_dst;
++
++ int old_count = ih->data->node_count;
++
++ id_src = iupTreeFindNodeId(ih, hItemSrc);
++ id_dst = iupTreeFindNodeId(ih, hItemDst);
++ id_new = id_dst+1; /* contains the position for a copy operation */
+ 
+ /* Get DST node attributes */
+ item.hItem = hItemDst;
+@@ -691,31 +548,64 @@ static HTREEITEM winTreeCopyNode(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hIte
+ hItemDst = TVI_FIRST;
+ }
+ else
+- { 
++ { 
++ if (itemDataDst->kind == ITREE_BRANCH)
++ {
++ int child_count = iupdrvTreeTotalChildCount(ih, hItemDst);
++ id_new += child_count;
++ }
++
+ /* copy as next brother of item or collapsed branch */
+ hParent = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hItemDst);
+ }
+ 
+- hNewItem = winTreeCopyItem(ih, hItemSrc, hParent, hItemDst, full_copy);
++ /* move to the same place does nothing */
++ if (!is_copy && id_new == id_src)
++ return NULL;
++
++ hItemNew = winTreeCopyItem(ih, hItemSrc, hParent, hItemDst, is_copy);
++
++ winTreeCopyChildren(ih, hItemSrc, hItemNew, is_copy);
++
++ count = ih->data->node_count - old_count;
++ iupTreeCopyMoveCache(ih, id_src, id_new, count, is_copy);
++
++ if (!is_copy)
++ {
++ /* Deleting the node (and its children) from the old position */
++ /* do not delete the itemdata, we reuse the references in CopyNode */
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
++ SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemSrc);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ 
+- winTreeCopyChildren(ih, hItemSrc, hNewItem, full_copy);
++ /* restore count, because we remove src */
++ ih->data->node_count = old_count;
+ 
+- return hNewItem;
++ /* compensate position for a move */
++ if (id_new > id_src)
++ id_new -= count;
++ }
++
++ winTreeRebuildNodeCache(ih, id_new, hItemNew);
++
++ return hItemNew;
+ }
+ 
+ /*****************************************************************************/
+ /* MANIPULATING IMAGES */
+ /*****************************************************************************/
+-static void winTreeUpdateImages(Ihandle* ih, HTREEITEM hItem, int mode)
++static void winTreeUpdateImages(Ihandle* ih, int mode)
+ {
+- HTREEITEM hItemChild;
++ HTREEITEM hItem;
+ TVITEM item;
+ winTreeItemData* itemData;
++ int i;
+ 
+ /* called when one of the default images is changed */
+-
+- while(hItem != NULL)
++ for (i = 0; i < ih->data->node_count; i++)
+ {
++ hItem = ih->data->node_cache[i].node_handle;
++
+ /* Get node attributes */
+ item.hItem = hItem;
+ item.mask = TVIF_HANDLE | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_STATE;
+@@ -742,10 +632,6 @@ static void winTreeUpdateImages(Ihandle* ih, HTREEITEM hItem, int mode)
+ SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item);
+ }
+ }
+-
+- /* Recursively traverse child items */
+- hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
+- winTreeUpdateImages(ih, hItemChild, mode);
+ }
+ else
+ {
+@@ -756,9 +642,6 @@ static void winTreeUpdateImages(Ihandle* ih, HTREEITEM hItem, int mode)
+ SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item);
+ }
+ }
+-
+- /* Go to next sibling node */
+- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);
+ }
+ }
+ 
+@@ -828,29 +711,57 @@ static int winTreeCallBranchLeafCb(Ihandle* ih, HTREEITEM hItem)
+ 
+ if (itemData->kind == ITREE_BRANCH)
+ {
++ if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCH_CB"))
++ return IUP_DEFAULT;
++
+ if (item.state & TVIS_EXPANDED)
+ {
+ IFni cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB");
+ if (cbBranchClose)
+- return cbBranchClose(ih, winTreeGetNodeId(ih, hItem));
++ return cbBranchClose(ih, iupTreeFindNodeId(ih, hItem));
+ }
+ else
+ {
+ IFni cbBranchOpen = (IFni)IupGetCallback(ih, "BRANCHOPEN_CB");
+ if (cbBranchOpen)
+- return cbBranchOpen(ih, winTreeGetNodeId(ih, hItem));
++ return cbBranchOpen(ih, iupTreeFindNodeId(ih, hItem));
+ }
+ }
+ else
+ {
+ IFni cbExecuteLeaf = (IFni)IupGetCallback(ih, "EXECUTELEAF_CB");
+ if (cbExecuteLeaf)
+- return cbExecuteLeaf(ih, winTreeGetNodeId(ih, hItem));
++ return cbExecuteLeaf(ih, iupTreeFindNodeId(ih, hItem));
+ }
+ 
+ return IUP_DEFAULT;
+ }
+ 
++static void winTreeCallMultiUnSelectionCb(Ihandle* ih)
++{
++ IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTIUNSELECTION_CB");
++ IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");
++ if (cbSelec || cbMulti)
++ {
++ Iarray* markedArray = winTreeGetSelectedArrayId(ih);
++ int* id_hitem = (int*)iupArrayGetData(markedArray);
++ int i, count = iupArrayCount(markedArray);
++
++ if (count > 1)
++ {
++ if (cbMulti)
++ cbMulti(ih, id_hitem, iupArrayCount(markedArray));
++ else
++ {
++ for (i=0; i<count; i++)
++ cbSelec(ih, id_hitem[i], 0);
++ }
++ }
++
++ iupArrayDestroy(markedArray);
++ }
++}
++
+ static void winTreeCallMultiSelectionCb(Ihandle* ih)
+ {
+ IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTISELECTION_CB");
+@@ -885,6 +796,8 @@ static void winTreeCallSelectionCb(Ihandle* ih, int status, HTREEITEM hItem)
+ IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");
+ if (cbSelec)
+ {
++ int id;
++
+ if (ih->data->mark_mode == ITREE_MARK_MULTIPLE && IupGetCallback(ih,"MULTISELECTION_CB"))
+ {
+ if ((GetKeyState(VK_SHIFT) & 0x8000))
+@@ -894,7 +807,9 @@ static void winTreeCallSelectionCb(Ihandle* ih, int status, HTREEITEM hItem)
+ if (iupAttribGet(ih, "_IUPTREE_IGNORE_SELECTION_CB"))
+ return;
+ 
+- cbSelec(ih, winTreeGetNodeId(ih, hItem), status);
++ id = iupTreeFindNodeId(ih, hItem);
++ if (id != -1)
++ cbSelec(ih, id, status);
+ }
+ }
+ 
+@@ -911,8 +826,8 @@ static int winTreeCallDragDropCb(Ihandle* ih, HTREEITEM hItemDrag, HTREEITEM hIt
+ 
+ if (cbDragDrop)
+ {
+- int drag_id = winTreeGetNodeId(ih, hItemDrag);
+- int drop_id = winTreeGetNodeId(ih, hItemDrop);
++ int drag_id = iupTreeFindNodeId(ih, hItemDrag);
++ int drop_id = iupTreeFindNodeId(ih, hItemDrop);
+ return cbDragDrop(ih, drag_id, drop_id, is_shift, *is_ctrl);
+ }
+ 
+@@ -929,8 +844,8 @@ static int winTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value)
+ {
+ ih->data->def_image_expanded = (void*)winTreeGetImageIndex(ih, value);
+ 
+- /* Update all images, starting at root node */
+- winTreeUpdateImages(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0), ITREE_UPDATEIMAGE_EXPANDED);
++ /* Update all images */
++ winTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED);
+ 
+ return 1;
+ }
+@@ -939,8 +854,8 @@ static int winTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value)
+ {
+ ih->data->def_image_collapsed = (void*)winTreeGetImageIndex(ih, value);
+ 
+- /* Update all images, starting at root node */
+- winTreeUpdateImages(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0), ITREE_UPDATEIMAGE_COLLAPSED);
++ /* Update all images */
++ winTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED);
+ 
+ return 1;
+ }
+@@ -949,8 +864,8 @@ static int winTreeSetImageLeafAttrib(Ihandle* ih, const char* value)
+ {
+ ih->data->def_image_leaf = (void*)winTreeGetImageIndex(ih, value);
+ 
+- /* Update all images, starting at root node */
+- winTreeUpdateImages(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0), ITREE_UPDATEIMAGE_LEAF);
++ /* Update all images */
++ winTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF);
+ 
+ return 1;
+ }
+@@ -959,7 +874,7 @@ static int winTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const
+ {
+ TVITEM item;
+ winTreeItemData* itemData;
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return 0;
+ 
+@@ -986,7 +901,7 @@ static int winTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v
+ {
+ TVITEM item;
+ winTreeItemData* itemData;
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return 0;
+ 
+@@ -1025,7 +940,7 @@ static int winTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v
+ 
+ static int winTreeSetTopItemAttrib(Ihandle* ih, const char* value)
+ {
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, value);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, value);
+ if (hItem)
+ SendMessage(ih->handle, TVM_ENSUREVISIBLE, 0, (LPARAM)hItem);
+ return 0;
+@@ -1056,9 +971,8 @@ static int winTreeSetSpacingAttrib(Ihandle* ih, const char* value)
+ static int winTreeSetExpandAllAttrib(Ihandle* ih, const char* value)
+ {
+ HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
+- HTREEITEM hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItemRoot); /* skip the root node that is always expanded */
+ int expand = iupStrBoolean(value);
+- winTreeExpandTree(ih, hItem, expand);
++ winTreeExpandTree(ih, hItemRoot, expand);
+ return 0;
+ }
+ 
+@@ -1131,7 +1045,7 @@ static char* winTreeGetTitle(Ihandle* ih, HTREEITEM hItem)
+ 
+ static char* winTreeGetTitleAttrib(Ihandle* ih, const char* name_id)
+ {
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return NULL;
+ return winTreeGetTitle(ih, hItem);
+@@ -1140,10 +1054,13 @@ static char* winTreeGetTitleAttrib(Ihandle* ih, const char* name_id)
+ static int winTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+ TVITEM item; 
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return 0;
+ 
++ if (!value)
++ value = "";
++
+ item.hItem = hItem;
+ item.mask = TVIF_HANDLE | TVIF_TEXT; 
+ item.pszText = (char*)value;
+@@ -1151,60 +1068,11 @@ static int winTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* v
+ return 0;
+ }
+ 
+-static char* winTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id)
+-{
+- int id;
+- char* str = (char*)(name_id+1); /* skip ':' */
+- void* userdata = NULL;
+- if (sscanf(str, "%p", &userdata)!=1)
+- return NULL;
+- id = winTreeGetUserDataId(ih, userdata);
+- if (id == -1)
+- return NULL;
+- str = iupStrGetMemory(16);
+- sprintf(str, "%d", id);
+- return str;
+-}
+-
+-static char* winTreeGetUserDataAttrib(Ihandle* ih, const char* name_id)
+-{
+- TVITEM item;
+- winTreeItemData* itemData;
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+- if (!hItem)
+- return NULL;
+-
+- item.hItem = hItem;
+- item.mask = TVIF_HANDLE | TVIF_PARAM;
+- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
+- itemData = (winTreeItemData*)item.lParam;
+-
+- return itemData->userdata;
+-}
+-
+-static int winTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value)
+-{
+- TVITEM item; 
+- winTreeItemData* itemData;
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+- if (!hItem)
+- return 0;
+-
+- item.hItem = hItem;
+- item.mask = TVIF_HANDLE | TVIF_PARAM;
+- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
+- itemData = (winTreeItemData*)item.lParam;
+-
+- itemData->userdata = (void*)value;
+-
+- return 0;
+-}
+-
+ static char* winTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id)
+ {
+ TVITEM item;
+ winTreeItemData* itemData;
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return NULL;
+ 
+@@ -1220,7 +1088,7 @@ static int winTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha
+ {
+ TVITEM item; 
+ winTreeItemData* itemData;
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return 0;
+ 
+@@ -1230,11 +1098,23 @@ static int winTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha
+ itemData = (winTreeItemData*)item.lParam;
+ 
+ if (value)
++ {
+ itemData->hFont = iupwinGetHFont(value);
++ if (itemData->hFont)
++ {
++ TV_ITEM item;
++ item.mask = TVIF_STATE | TVIF_HANDLE | TVIF_TEXT;
++ item.stateMask = TVIS_BOLD;
++ item.hItem = hItem;
++ item.pszText = winTreeGetTitle(ih, hItem); /* reset text to resize item */
++ item.state = (strstr(value, "Bold")||strstr(value, "BOLD"))? TVIS_BOLD: 0;
++ SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)&item);
++ }
++ }
+ else
+ itemData->hFont = NULL;
+ 
+- iupdrvDisplayUpdate(ih);
++ iupdrvPostRedraw(ih);
+ 
+ return 0;
+ }
+@@ -1259,7 +1139,7 @@ static char* winTreeGetStateAttrib(Ihandle* ih, const char* name_id)
+ {
+ TVITEM item;
+ winTreeItemData* itemData;
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return NULL;
+ 
+@@ -1281,25 +1161,34 @@ static char* winTreeGetStateAttrib(Ihandle* ih, const char* name_id)
+ 
+ static int winTreeSetStateAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ TVITEM item;
++ winTreeItemData* itemData;
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return 0;
+ 
+- winTreeExpandItem(ih, hItem, iupStrEqualNoCase(value, "EXPANDED"));
++ /* Get Children: branch or leaf */
++ item.mask = TVIF_HANDLE|TVIF_PARAM; 
++ item.hItem = hItem;
++ SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
++ itemData = (winTreeItemData*)item.lParam;
++
++ if (itemData->kind == ITREE_BRANCH)
++ winTreeExpandItem(ih, hItem, iupStrEqualNoCase(value, "EXPANDED"));
++
+ return 0;
+ }
+ 
+ static char* winTreeGetDepthAttrib(Ihandle* ih, const char* name_id)
+ {
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
+- int depth = 0;
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
++ int depth = -1;
+ char* str;
+ 
+- if (!hItem)
++ if (!hItem) 
+ return NULL;
+ 
+- while((hItemRoot != hItem) && (hItem != NULL))
++ while(hItem != NULL)
+ {
+ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hItem);
+ depth++;
+@@ -1314,12 +1203,13 @@ static int winTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char
+ {
+ HTREEITEM hItemDst, hParent, hItemSrc;
+ 
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+- hItemSrc = winTreeFindNodeFromString(ih, name_id);
++
++ hItemSrc = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItemSrc)
+ return 0;
+- hItemDst = winTreeFindNodeFromString(ih, value);
++ hItemDst = iupTreeGetNodeFromString(ih, value);
+ if (!hItemDst)
+ return 0;
+ 
+@@ -1332,11 +1222,8 @@ static int winTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char
+ return 0;
+ }
+ 
+- /* Copying the node and its children to the new position */
+- winTreeCopyNode(ih, hItemSrc, hItemDst, 0); /* not a full copy, preserve user data */
+-
+- /* do not delete the user data, we copy the references in CopyNode */
+- SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemSrc);
++ /* Move the node and its children to the new position */
++ winTreeCopyMoveNode(ih, hItemSrc, hItemDst, 0);
+ 
+ return 0;
+ }
+@@ -1345,12 +1232,13 @@ static int winTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char
+ {
+ HTREEITEM hItemDst, hParent, hItemSrc;
+ 
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+- hItemSrc = winTreeFindNodeFromString(ih, name_id);
++
++ hItemSrc = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItemSrc)
+ return 0;
+- hItemDst = winTreeFindNodeFromString(ih, value);
++ hItemDst = iupTreeGetNodeFromString(ih, value);
+ if (!hItemDst)
+ return 0;
+ 
+@@ -1363,8 +1251,8 @@ static int winTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char
+ return 0;
+ }
+ 
+- /* Copying the node and its children to the new position */
+- winTreeCopyNode(ih, hItemSrc, hItemDst, 1);
++ /* Copy the node and its children to the new position */
++ winTreeCopyMoveNode(ih, hItemSrc, hItemDst, 1);
+ 
+ return 0;
+ }
+@@ -1375,7 +1263,7 @@ static char* winTreeGetColorAttrib(Ihandle* ih, const char* name_id)
+ char* str;
+ TVITEM item;
+ winTreeItemData* itemData;
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return NULL;
+ 
+@@ -1398,7 +1286,7 @@ static int winTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v
+ unsigned char r, g, b;
+ TVITEM item;
+ winTreeItemData* itemData;
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return 0;
+ 
+@@ -1410,7 +1298,7 @@ static int winTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v
+ if (iupStrToRGB(value, &r, &g, &b))
+ {
+ itemData->color = RGB(r,g,b);
+- iupdrvDisplayUpdate(ih);
++ iupdrvPostRedraw(ih);
+ }
+ 
+ return 0;
+@@ -1435,7 +1323,7 @@ static char* winTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)
+ {
+ int count;
+ char* str;
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return NULL;
+ 
+@@ -1454,18 +1342,11 @@ static char* winTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)
+ return str;
+ }
+ 
+-static char* winTreeGetCountAttrib(Ihandle* ih)
+-{
+- char* str = iupStrGetMemory(10);
+- sprintf(str, "%d", (int)SendMessage(ih->handle, TVM_GETCOUNT, 0, 0));
+- return str;
+-}
+-
+ static char* winTreeGetKindAttrib(Ihandle* ih, const char* name_id)
+ {
+ TVITEM item; 
+ winTreeItemData* itemData;
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return NULL;
+ 
+@@ -1483,7 +1364,7 @@ static char* winTreeGetKindAttrib(Ihandle* ih, const char* name_id)
+ static char* winTreeGetParentAttrib(Ihandle* ih, const char* name_id)
+ {
+ char* str;
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return NULL;
+ 
+@@ -1492,15 +1373,13 @@ static char* winTreeGetParentAttrib(Ihandle* ih, const char* name_id)
+ return NULL;
+ 
+ str = iupStrGetMemory(10);
+- sprintf(str, "%d", winTreeGetNodeId(ih, hItem));
++ sprintf(str, "%d", iupTreeFindNodeId(ih, hItem));
+ return str;
+ }
+ 
+-static void winTreeDelNodeData(Ihandle* ih, HTREEITEM hItem)
++static void winTreeRemoveItemData(Ihandle* ih, HTREEITEM hItem, IFns cb, int id)
+ {
+ TVITEM item; 
+- HTREEITEM hChildItem;
+-
+ item.hItem = hItem;
+ item.mask = TVIF_HANDLE|TVIF_PARAM; 
+ if (SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item))
+@@ -1508,81 +1387,153 @@ static void winTreeDelNodeData(Ihandle* ih, HTREEITEM hItem)
+ winTreeItemData* itemData = (winTreeItemData*)item.lParam;
+ if (itemData)
+ {
+- IFnis cb = (IFnis)IupGetCallback(ih, "NODEREMOVED_CB");
+- if (cb) cb(ih, winTreeGetNodeId(ih, hItem), (char*)itemData->userdata);
++ if (cb) 
++ cb(ih, (char*)ih->data->node_cache[id].userdata);
++
+ free(itemData);
+ item.lParam = (LPARAM)NULL;
+ SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item);
+ }
+ }
++}
++
++static void winTreeRemoveNodeDataRec(Ihandle* ih, HTREEITEM hItem, IFns cb, int *id)
++{
++ int old_id = *id;
+ 
+- hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
++ /* Check whether we have child items */
++ /* remove from children first */
++ HTREEITEM hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
+ while (hChildItem)
+ {
+- winTreeDelNodeData(ih, hChildItem);
++ /* go recursive to children */
++ winTreeRemoveNodeDataRec(ih, hChildItem, cb, id);
++
++ /* Go to next sibling item */
+ hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hChildItem);
+ }
++
++ /* actually do it for the node */
++ ih->data->node_count--;
++ (*id)++;
++
++ winTreeRemoveItemData(ih, hItem, cb, old_id);
++}
++
++static void winTreeRemoveNodeData(Ihandle* ih, HTREEITEM hItem, int call_cb)
++{
++ IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL;
++ int old_count = ih->data->node_count;
++ int id = iupTreeFindNodeId(ih, hItem);
++ int old_id = id;
++
++ winTreeRemoveNodeDataRec(ih, hItem, cb, &id);
++
++ if (call_cb)
++ iupTreeDelFromCache(ih, old_id, old_count-ih->data->node_count);
++}
++
++static void winTreeRemoveAllNodeData(Ihandle* ih, int call_cb)
++{
++ IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL;
++ int i, old_count = ih->data->node_count;
++ HTREEITEM hItem;
++
++ for (i = 0; i < ih->data->node_count; i++)
++ {
++ hItem = ih->data->node_cache[i].node_handle;
++ winTreeRemoveItemData(ih, hItem, cb, i);
++ }
++
++ ih->data->node_count = 0;
++
++ if (call_cb)
++ iupTreeDelFromCache(ih, 0, old_count);
+ }
+ 
+ static int winTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+- if(iupStrEqualNoCase(value, "SELECTED")) /* selected here means the specified one */
++ if (iupStrEqualNoCase(value, "ALL"))
+ {
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
+- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
++ winTreeRemoveAllNodeData(ih, 1);
+ 
+- /* the root node can't be deleted */
+- if(!hItem || hItem == hItemRoot)
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
++ SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
++ return 0;
++ }
++ if (iupStrEqualNoCase(value, "SELECTED")) /* selected here means the reference one */
++ {
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
++ if(!hItem)
+ return 0;
+ 
+- /* deleting the specified node (and it's children) */
+- winTreeDelNodeData(ih, hItem);
++ /* deleting the reference node (and it's children) */
++ winTreeRemoveNodeData(ih, hItem, 1);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItem);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ 
+ return 0;
+ }
+- else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the specified one */
++ else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the reference node */
+ {
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ HTREEITEM hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
+ 
+ if(!hItem)
+ return 0;
+ 
+- /* deleting the selected node's children */
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
++
++ /* deleting the reference node children */
+ while (hChildItem)
+ {
+- winTreeDelNodeData(ih, hChildItem);
++ winTreeRemoveNodeData(ih, hChildItem, 1);
+ SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hChildItem);
+ hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);
+ }
+ 
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ return 0;
+ }
+ else if(iupStrEqualNoCase(value, "MARKED"))
+ {
+- int i, count;
+- Iarray* markedArray;
+- HTREEITEM* hItemArrayData;
+- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
++ int i, del_focus = 0;
++ HTREEITEM hItemFocus;
+ 
+- /* Delete the array of marked nodes */
+- markedArray = winTreeGetSelectedArray(ih);
+- hItemArrayData = (HTREEITEM*)iupArrayGetData(markedArray);
+- count = iupArrayCount(markedArray);
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
++ hItemFocus = iupdrvTreeGetFocusNode(ih);
+ 
+- for(i = 0; i < count; i++)
++ for(i = 1; i < ih->data->node_count; /* increment only if not removed */)
+ {
+- if (hItemArrayData[i] != hItemRoot) /* the root node can't be deleted */
++ if (winTreeIsNodeSelected(ih, ih->data->node_cache[i].node_handle))
+ {
+- winTreeDelNodeData(ih, hItemArrayData[i]);
+- SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemArrayData[i]);
++ HTREEITEM hItem = ih->data->node_cache[i].node_handle;
++ if (hItemFocus == hItem)
++ {
++ del_focus = 1;
++ i++;
++ }
++ else
++ {
++ winTreeRemoveNodeData(ih, hItem, 1);
++ SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItem);
++ }
+ }
++ else
++ i++;
+ }
+ 
+- iupArrayDestroy(markedArray);
++ if (del_focus)
++ {
++ winTreeRemoveNodeData(ih, hItemFocus, 1);
++ SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemFocus);
++ }
++
++ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ 
+ return 0;
+ }
+@@ -1592,22 +1543,13 @@ static int winTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char*
+ 
+ static int winTreeSetRenameAttrib(Ihandle* ih, const char* value)
+ { 
+- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
+ if (ih->data->show_rename)
+ {
+- IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");
+- if (cbShowRename)
+- cbShowRename(ih, winTreeGetNodeId(ih, hItemFocus));
+-
++ HTREEITEM hItemFocus;
+ SetFocus(ih->handle); /* the tree must have focus to activate the edit */
++ hItemFocus = iupdrvTreeGetFocusNode(ih);
+ SendMessage(ih->handle, TVM_EDITLABEL, 0, (LPARAM)hItemFocus);
+ }
+- else
+- {
+- IFnis cbRenameNode = (IFnis)IupGetCallback(ih, "RENAMENODE_CB");
+- if (cbRenameNode)
+- cbRenameNode(ih, winTreeGetNodeId(ih, hItemFocus), winTreeGetTitle(ih, hItemFocus)); 
+- }
+ 
+ (void)value;
+ return 0;
+@@ -1615,11 +1557,11 @@ static int winTreeSetRenameAttrib(Ihandle* ih, const char* value)
+ 
+ static char* winTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)
+ {
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return NULL;
+ 
+- if (winTreeIsItemSelected(ih, hItem))
++ if (winTreeIsNodeSelected(ih, hItem))
+ return "YES";
+ else 
+ return "NO";
+@@ -1627,17 +1569,23 @@ static char* winTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)
+ 
+ static int winTreeSetMarkedAttrib(Ihandle* ih, const char* name_id, const char* value)
+ {
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return 0;
+ 
+- winTreeSelectItem(ih, hItem, iupStrBoolean(value));
++ if (ih->data->mark_mode==ITREE_MARK_SINGLE)
++ {
++ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
++ winTreeSelectNode(ih, hItemFocus, 0);
++ }
++
++ winTreeSelectNode(ih, hItem, iupStrBoolean(value));
+ return 0;
+ }
+ 
+ static int winTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)
+ {
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);
+ if (!hItem)
+ return 0;
+ 
+@@ -1649,15 +1597,59 @@ static int winTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)
+ static char* winTreeGetValueAttrib(Ihandle* ih)
+ {
+ char* str;
+- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
++ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
+ if (!hItemFocus)
+- return "0"; /* default VALUE is root */
++ {
++ if (ih->data->node_count)
++ return "0"; /* default VALUE is root */
++ else
++ return "-1";
++ }
+ 
+ str = iupStrGetMemory(16);
+- sprintf(str, "%d", winTreeGetNodeId(ih, hItemFocus));
++ sprintf(str, "%d", iupTreeFindNodeId(ih, hItemFocus));
++ return str;
++}
++
++static char* winTreeGetMarkedNodesAttrib(Ihandle* ih)
++{
++ char* str = iupStrGetMemory(ih->data->node_count+1);
++ int i;
++
++ for (i=0; i<ih->data->node_count; i++)
++ {
++ if (winTreeIsNodeSelected(ih, ih->data->node_cache[i].node_handle))
++ str[i] = '+';
++ else
++ str[i] = '-';
++ }
++
++ str[ih->data->node_count] = 0;
+ return str;
+ }
+ 
++static int winTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value)
++{
++ int count, i;
++
++ if (ih->data->mark_mode==ITREE_MARK_SINGLE || !value)
++ return 0;
++
++ count = strlen(value);
++ if (count > ih->data->node_count)
++ count = ih->data->node_count;
++
++ for (i=0; i<count; i++)
++ {
++ if (value[i] == '+')
++ winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 1);
++ else
++ winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 0);
++ }
++
++ return 0;
++}
++
+ static int winTreeSetMarkAttrib(Ihandle* ih, const char* value)
+ {
+ if (ih->data->mark_mode==ITREE_MARK_SINGLE)
+@@ -1665,7 +1657,7 @@ static int winTreeSetMarkAttrib(Ihandle* ih, const char* value)
+ 
+ if(iupStrEqualNoCase(value, "BLOCK"))
+ {
+- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
++ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
+ winTreeSelectRange(ih, (HTREEITEM)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"), hItemFocus, 0);
+ }
+ else if(iupStrEqualNoCase(value, "CLEARALL"))
+@@ -1673,14 +1665,14 @@ static int winTreeSetMarkAttrib(Ihandle* ih, const char* value)
+ else if(iupStrEqualNoCase(value, "MARKALL"))
+ winTreeSelectAll(ih);
+ else if(iupStrEqualNoCase(value, "INVERTALL")) /* INVERTALL *MUST* appear before INVERT, or else INVERTALL will never be called. */
+- winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeInvertSelectFunc, NULL);
++ iupTreeForEach(ih, (iupTreeNodeFunc)winTreeInvertSelectFunc, NULL);
+ else if(iupStrEqualPartial(value, "INVERT")) /* iupStrEqualPartial allows the use of "INVERTid" form */
+ {
+- HTREEITEM hItem = winTreeFindNodeFromString(ih, &value[strlen("INVERT")]);
++ HTREEITEM hItem = iupTreeGetNodeFromString(ih, &value[strlen("INVERT")]);
+ if (!hItem)
+ return 0;
+ 
+- winTreeSelectItem(ih, hItem, -1); /* toggle */
++ winTreeSelectNode(ih, hItem, -1); /* toggle */
+ }
+ else
+ {
+@@ -1690,10 +1682,10 @@ static int winTreeSetMarkAttrib(Ihandle* ih, const char* value)
+ if (iupStrToStrStr(value, str1, str2, '-')!=2)
+ return 0;
+ 
+- hItem1 = winTreeFindNodeFromString(ih, str1);
++ hItem1 = iupTreeGetNodeFromString(ih, str1);
+ if (!hItem1) 
+ return 0;
+- hItem2 = winTreeFindNodeFromString(ih, str2);
++ hItem2 = iupTreeGetNodeFromString(ih, str2);
+ if (!hItem2) 
+ return 0;
+ 
+@@ -1711,9 +1703,9 @@ static int winTreeSetValueAttrib(Ihandle* ih, const char* value)
+ if (winTreeSetMarkAttrib(ih, value))
+ return 0;
+ 
+- hItemFocus = winTreeGetFocusNode(ih);
++ hItemFocus = iupdrvTreeGetFocusNode(ih);
+ 
+- if(iupStrEqualNoCase(value, "ROOT"))
++ if(iupStrEqualNoCase(value, "ROOT") || iupStrEqualNoCase(value, "FIRST"))
+ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
+ else if(iupStrEqualNoCase(value, "LAST"))
+ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_LASTVISIBLE, 0);
+@@ -1759,15 +1751,14 @@ static int winTreeSetValueAttrib(Ihandle* ih, const char* value)
+ else if(iupStrEqualNoCase(value, "PREVIOUS"))
+ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PREVIOUSVISIBLE, (LPARAM)hItemFocus);
+ else
+- hItem = winTreeFindNodeFromString(ih, value);
++ hItem = iupTreeGetNodeFromString(ih, value);
+ 
+ if (hItem)
+ {
+ if (ih->data->mark_mode==ITREE_MARK_SINGLE)
+ {
+- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+- winTreeSelectItem(ih, hItem, 1);
+- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
++ winTreeSelectNode(ih, hItemFocus, 0);
++ winTreeSelectNode(ih, hItem, 1);
+ }
+ winTreeSetFocusNode(ih, hItem);
+ }
+@@ -1832,27 +1823,60 @@ static LRESULT CALLBACK winTreeEditWinProc(HWND hwnd, UINT msg, WPARAM wp, LPARA
+ return CallWindowProc(oldProc, hwnd, msg, wp, lp);
+ }
+ 
+-static void winTreeDrag(Ihandle* ih, int x, int y)
++static void winTreeBeginDrag(Ihandle* ih, int x, int y)
+ {
+- HTREEITEM hItemDrop;
++ HIMAGELIST dragImageList;
++
++ HTREEITEM hItemDrag = winTreeFindNodeXY(ih, x, y);
++ if (!hItemDrag)
++ return;
++
++ SendMessage(ih->handle, TVM_ENDEDITLABELNOW, TRUE, 0);
++
++ /* store the drag-and-drop item */
++ iupAttribSetStr(ih, "_IUPTREE_DRAGITEM", (char*)hItemDrag);
+ 
++ /* get the image list for dragging */
++ dragImageList = (HIMAGELIST)SendMessage(ih->handle, TVM_CREATEDRAGIMAGE, 0, (LPARAM)hItemDrag);
++ if (dragImageList)
++ {
++ POINT pt;
++ ImageList_BeginDrag(dragImageList, 0, 0, 0);
++
++ pt.x = x;
++ pt.y = y;
++
++ ClientToScreen(ih->handle, &pt);
++ ImageList_DragEnter(NULL, pt.x, pt.y);
++
++ iupAttribSetStr(ih, "_IUPTREE_DRAGIMAGELIST", (char*)dragImageList);
++ }
++
++ ShowCursor(FALSE);
++ SetCapture(ih->handle); /* drag only inside the tree */
++}
++
++static void winTreeDrag(Ihandle* ih, int x, int y)
++{
++ HTREEITEM hItemDrop = winTreeFindNodeXY(ih, x, y);
++ HTREEITEM hItemDrag = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_DRAGITEM");
+ HIMAGELIST dragImageList = (HIMAGELIST)iupAttribGet(ih, "_IUPTREE_DRAGIMAGELIST");
++
+ if (dragImageList)
+ {
+- POINT pnt;
+- pnt.x = x;
+- pnt.y = y;
+- GetCursorPos(&pnt);
+- ClientToScreen(GetDesktopWindow(), &pnt) ;
+- ImageList_DragMove(pnt.x, pnt.y);
++ POINT pt;
++ pt.x = x;
++ pt.y = y;
++ ClientToScreen(ih->handle, &pt);
++ ImageList_DragMove(pt.x, pt.y);
+ }
+ 
+- if ((hItemDrop = winTreeFindNodePointed(ih)) != NULL)
++ if (hItemDrop && hItemDrop!=hItemDrag)
+ {
+ if(dragImageList)
+ ImageList_DragShowNolock(FALSE);
+ 
+- SendMessage(ih->handle, TVM_SELECTITEM, TVGN_DROPHILITE, (LPARAM)hItemDrop);
++ SendMessage(ih->handle, TVM_SETINSERTMARK, TRUE, (LPARAM)hItemDrop);
+ 
+ /* store the drop item to be executed */
+ iupAttribSetStr(ih, "_IUPTREE_DROPITEM", (char*)hItemDrop);
+@@ -1860,6 +1884,8 @@ static void winTreeDrag(Ihandle* ih, int x, int y)
+ if(dragImageList)
+ ImageList_DragShowNolock(TRUE);
+ }
++ else
++ iupAttribSetStr(ih, "_IUPTREE_DROPITEM", NULL);
+ }
+ 
+ static void winTreeDrop(Ihandle* ih)
+@@ -1882,7 +1908,7 @@ static void winTreeDrop(Ihandle* ih)
+ ShowCursor(TRUE);
+ 
+ /* Remove drop target highlighting */
+- SendMessage(ih->handle, TVM_SELECTITEM, TVGN_DROPHILITE, (LPARAM)NULL);
++ SendMessage(ih->handle, TVM_SETINSERTMARK, 0, (LPARAM)NULL);
+ 
+ iupAttribSetStr(ih, "_IUPTREE_DRAGITEM", NULL);
+ iupAttribSetStr(ih, "_IUPTREE_DROPITEM", NULL);
+@@ -1901,16 +1927,12 @@ static void winTreeDrop(Ihandle* ih)
+ 
+ if (winTreeCallDragDropCb(ih, hItemDrag, hItemDrop, &is_ctrl) == IUP_CONTINUE)
+ {
+- /* Copy the dragged item to the new position. */
+- HTREEITEM hItemNew = winTreeCopyNode(ih, hItemDrag, hItemDrop, is_ctrl);
+-
+- if (!is_ctrl)
+- {
+- /* do not delete the user data, we copy the references in CopyNode */
+- SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemDrag);
+- }
++ /* Copy or move the dragged item to the new position. */
++ HTREEITEM hItemNew = winTreeCopyMoveNode(ih, hItemDrag, hItemDrop, is_ctrl);
+ 
+- SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItemNew); /* set focus and selection */
++ /* Set focus and selection */
++ if (hItemNew)
++ SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItemNew); 
+ }
+ } 
+ 
+@@ -1929,9 +1951,7 @@ static void winTreeExtendSelect(Ihandle* ih, int x, int y)
+ hItemFirstSel = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_FIRSTSELITEM");
+ if (hItemFirstSel)
+ {
+- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ winTreeSelectRange(ih, hItemFirstSel, hItem, 1);
+- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ 
+ iupAttribSetStr(ih, "_IUPTREE_LASTSELITEM", (char*)hItem);
+ winTreeSetFocusNode(ih, hItem);
+@@ -1952,10 +1972,10 @@ static int winTreeMouseMultiSelect(Ihandle* ih, int x, int y)
+ if (GetKeyState(VK_CONTROL) & 0x8000) /* Control key is down */
+ {
+ /* Toggle selection state */
+- winTreeSelectItem(ih, hItem, -1);
++ winTreeSelectNode(ih, hItem, -1);
+ iupAttribSetStr(ih, "_IUPTREE_FIRSTSELITEM", (char*)hItem);
+ 
+- winTreeCallSelectionCb(ih, winTreeIsItemSelected(ih, hItem), hItem);
++ winTreeCallSelectionCb(ih, winTreeIsNodeSelected(ih, hItem), hItem);
+ winTreeSetFocusNode(ih, hItem);
+ 
+ return 1;
+@@ -1965,9 +1985,11 @@ static int winTreeMouseMultiSelect(Ihandle* ih, int x, int y)
+ HTREEITEM hItemFirstSel = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_FIRSTSELITEM");
+ if (hItemFirstSel)
+ {
+- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
++ int last_id = iupTreeFindNodeId(ih, hItem);
+ winTreeSelectRange(ih, hItemFirstSel, hItem, 1);
+- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
++
++ /* if last selected item is a branch, then select its children */
++ iupTreeSelectLastCollapsedBranch(ih, &last_id);
+ 
+ winTreeCallMultiSelectionCb(ih);
+ winTreeSetFocusNode(ih, hItem);
+@@ -1975,11 +1997,15 @@ static int winTreeMouseMultiSelect(Ihandle* ih, int x, int y)
+ }
+ }
+ 
++ winTreeCallMultiUnSelectionCb(ih);
++
+ /* simple click */
+ winTreeClearSelection(ih, hItem);
+ iupAttribSetStr(ih, "_IUPTREE_FIRSTSELITEM", (char*)hItem);
+ iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "1");
+ 
++ /* Call SELECT_CB for all unselected nodes */
++
+ return 0;
+ }
+ 
+@@ -2039,7 +2065,7 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
+ 
+ if (wp == VK_RETURN)
+ {
+- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
++ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
+ if (winTreeCallBranchLeafCb(ih, hItemFocus) != IUP_IGNORE)
+ winTreeExpandItem(ih, hItemFocus, -1);
+ 
+@@ -2056,14 +2082,14 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
+ {
+ if (GetKeyState(VK_CONTROL) & 0x8000)
+ {
+- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
++ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
+ /* Toggle selection state */
+- winTreeSelectItem(ih, hItemFocus, -1);
++ winTreeSelectNode(ih, hItemFocus, -1);
+ }
+ }
+ else if (wp == VK_UP || wp == VK_DOWN)
+ {
+- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
++ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
+ if (wp == VK_UP)
+ hItemFocus = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PREVIOUSVISIBLE, (LPARAM)hItemFocus);
+ else
+@@ -2084,9 +2110,7 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
+ HTREEITEM hItemFirstSel = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_FIRSTSELITEM");
+ if (hItemFirstSel)
+ {
+- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");
+ winTreeSelectRange(ih, hItemFirstSel, hItemFocus, 1);
+- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);
+ 
+ winTreeCallMultiSelectionCb(ih);
+ winTreeSetFocusNode(ih, hItemFocus);
+@@ -2138,10 +2162,20 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
+ }
+ break;
+ case WM_MOUSEMOVE:
+- if (ih->data->show_dragdrop && (HTREEITEM)iupAttribGet(ih, "_IUPTREE_DRAGITEM") != NULL)
+- winTreeDrag(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));
++ if (ih->data->show_dragdrop && (wp & MK_LBUTTON))
++ {
++ if (!iupAttribGet(ih, "_IUPTREE_DRAGITEM"))
++ winTreeBeginDrag(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));
++ else 
++ winTreeDrag(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));
++ }
+ else if (iupAttribGet(ih, "_IUPTREE_EXTENDSELECT"))
+- winTreeExtendSelect(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));
++ {
++ if (wp & MK_LBUTTON)
++ winTreeExtendSelect(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));
++ else
++ iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", NULL);
++ }
+ 
+ iupwinMouseMove(ih, msg, wp, lp);
+ break;
+@@ -2157,6 +2191,7 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res
+ if (iupAttribGet(ih, "_IUPTREE_EXTENDSELECT"))
+ {
+ iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", NULL);
++
+ if (iupAttribGet(ih, "_IUPTREE_LASTSELITEM"))
+ {
+ winTreeCallMultiSelectionCb(ih);
+@@ -2205,14 +2240,19 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
+ else if (msg_info->code == TVN_SELCHANGED)
+ {
+ NMTREEVIEW* info = (NMTREEVIEW*)msg_info;
+- winTreeCallSelectionCb(ih, 0, info->itemOld.hItem); /* node unselected */
+- winTreeCallSelectionCb(ih, 1, info->itemNew.hItem); /* node selected */
++ if (ih->data->mark_mode!=ITREE_MARK_MULTIPLE || /* (NOT) Multiple selection with Control or Shift key is down */
++ !(GetKeyState(VK_CONTROL) & 0x8000 || GetKeyState(VK_SHIFT) & 0x8000)) 
++ {
++ winTreeCallSelectionCb(ih, 0, info->itemOld.hItem); /* node unselected */
++ winTreeCallSelectionCb(ih, 1, info->itemNew.hItem); /* node selected */
++ }
+ }
+ else if(msg_info->code == TVN_BEGINLABELEDIT)
+ {
+ char* value;
+ HWND hEdit;
+ NMTVDISPINFO* info = (NMTVDISPINFO*)msg_info;
++ IFni cbShowRename;
+ 
+ if (iupAttribGet(ih, "_IUPTREE_EXTENDSELECT"))
+ {
+@@ -2220,6 +2260,13 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
+ return 1;
+ }
+ 
++ cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");
++ if (cbShowRename && cbShowRename(ih, iupTreeFindNodeId(ih, info->item.hItem))==IUP_IGNORE)
++ {
++ *result = TRUE; /* prevent the change */
++ return 1;
++ }
++
+ hEdit = (HWND)SendMessage(ih->handle, TVM_GETEDITCONTROL, 0, 0);
+ 
+ /* save the edit box. */
+@@ -2253,57 +2300,30 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
+ }
+ else if(msg_info->code == TVN_ENDLABELEDIT)
+ {
++ IFnis cbRename;
+ NMTVDISPINFO* info = (NMTVDISPINFO*)msg_info;
+ 
+ iupAttribSetStr(ih, "_IUPWIN_EDITBOX", NULL);
+ 
+- if (info->item.pszText)
+- {
+- IFnis cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB");
+- if (cbRename)
+- {
+- if (cbRename(ih, winTreeGetNodeId(ih, info->item.hItem), info->item.pszText) == IUP_IGNORE)
+- {
+- *result = FALSE;
+- return 1;
+- }
+- }
++ if (!info->item.pszText) /* cancel, so abort */
++ return 0;
+ 
+- *result = TRUE;
+- return 1;
+- }
+- }
+- else if(msg_info->code == TVN_BEGINDRAG)
+- {
+- if (ih->data->show_dragdrop)
++ cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB");
++ if (cbRename)
+ {
+- NMTREEVIEW* pNMTreeView = (NMTREEVIEW*)msg_info;
+- HTREEITEM hItemDrag = pNMTreeView->itemNew.hItem;
+- HIMAGELIST dragImageList;
+-
+- /* store the drag-and-drop item */
+- iupAttribSetStr(ih, "_IUPTREE_DRAGITEM", (char*)hItemDrag);
+-
+- /* get the image list for dragging */
+- dragImageList = (HIMAGELIST)SendMessage(ih->handle, TVM_CREATEDRAGIMAGE, 0, (LPARAM)hItemDrag);
+- if (dragImageList)
++ if (cbRename(ih, iupTreeFindNodeId(ih, info->item.hItem), info->item.pszText) == IUP_IGNORE)
+ {
+- POINT pt = pNMTreeView->ptDrag;
+- ImageList_BeginDrag(dragImageList, 0, 0, 0);
+-
+- ClientToScreen(ih->handle, &pt);
+- ImageList_DragEnter(NULL, pt.x, pt.y);
+-
+- iupAttribSetStr(ih, "_IUPTREE_DRAGIMAGELIST", (char*)dragImageList);
++ *result = FALSE;
++ return 1;
+ }
+-
+- ShowCursor(FALSE);
+- SetCapture(ih->handle); /* drag only inside the tree */
+ }
++
++ *result = TRUE;
++ return 1;
+ }
+ else if(msg_info->code == NM_DBLCLK)
+ {
+- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);
++ HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);
+ TVITEM item;
+ winTreeItemData* itemData;
+ 
+@@ -2317,7 +2337,7 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
+ {
+ IFni cbExecuteLeaf = (IFni)IupGetCallback(ih, "EXECUTELEAF_CB");
+ if(cbExecuteLeaf)
+- cbExecuteLeaf(ih, winTreeGetNodeId(ih, hItemFocus));
++ cbExecuteLeaf(ih, iupTreeFindNodeId(ih, hItemFocus));
+ }
+ }
+ else if(msg_info->code == TVN_ITEMEXPANDING)
+@@ -2351,7 +2371,7 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
+ HTREEITEM hItem = winTreeFindNodePointed(ih);
+ IFni cbRightClick = (IFni)IupGetCallback(ih, "RIGHTCLICK_CB");
+ if (cbRightClick)
+- cbRightClick(ih, winTreeGetNodeId(ih, hItem));
++ cbRightClick(ih, iupTreeFindNodeId(ih, hItem));
+ }
+ else if (msg_info->code == NM_CUSTOMDRAW)
+ {
+@@ -2374,7 +2394,7 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)
+ SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);
+ itemData = (winTreeItemData*)item.lParam;
+ 
+- if (winTreeIsItemSelected(ih, hItem))
++ if (GetFocus()==ih->handle && (customdraw->nmcd.uItemState & CDIS_SELECTED))
+ customdraw->clrText = winTreeInvertColor(itemData->color);
+ else
+ customdraw->clrText = itemData->color;
+@@ -2402,47 +2422,34 @@ static int winTreeConvertXYToPos(Ihandle* ih, int x, int y)
+ info.pt.y = y;
+ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)&info);
+ if (hItem)
+- return winTreeGetNodeId(ih, hItem);
++ return iupTreeFindNodeId(ih, hItem);
+ return -1;
+ }
+ 
+ 
+ /*******************************************************************************************/
+ 
+-static void winTreeUnMapMethod(Ihandle* ih)
+-{
+- Iarray* bmp_array;
+- HIMAGELIST image_list;
+-
+- HTREEITEM itemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);
+- winTreeDelNodeData(ih, itemRoot);
+-
+- image_list = (HIMAGELIST)SendMessage(ih->handle, TVM_GETIMAGELIST, TVSIL_NORMAL, 0);
+- if (image_list)
+- ImageList_Destroy(image_list);
+-
+- bmp_array = (Iarray*)iupAttribGet(ih, "_IUPWIN_BMPARRAY");
+- if (bmp_array)
+- iupArrayDestroy(bmp_array);
+-
+- iupdrvBaseUnMapMethod(ih);
+-}
+ 
+ static int winTreeMapMethod(Ihandle* ih)
+ {
+- DWORD dwStyle = WS_CHILD | WS_BORDER | TVS_SHOWSELALWAYS;
++ DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS | WS_BORDER | TVS_SHOWSELALWAYS;
+ 
+- /* can be set only on the Tree View creation */
++ /* styles can be set only on the Tree View creation */
+ 
+- if (!ih->data->show_dragdrop)
+- dwStyle |= TVS_DISABLEDRAGDROP;
++ /* always disable the internal drag&drop, because it affects our selection and drawing */
++ dwStyle |= TVS_DISABLEDRAGDROP;
+ 
+ if (ih->data->show_rename)
+ dwStyle |= TVS_EDITLABELS;
+ 
+ if (!iupAttribGetBoolean(ih, "HIDELINES"))
++ {
+ dwStyle |= TVS_HASLINES;
+ 
++ if (!iupAttribGetInt(ih, "ADDROOT"))
++ dwStyle |= TVS_LINESATROOT;
++ }
++
+ if (!iupAttribGetBoolean(ih, "HIDEBUTTONS"))
+ dwStyle |= TVS_HASBUTTONS;
+ 
+@@ -2455,6 +2462,11 @@ static int winTreeMapMethod(Ihandle* ih)
+ if (!iupwinCreateWindowEx(ih, WC_TREEVIEW, 0, dwStyle))
+ return IUP_ERROR;
+ 
++ if (!iupwin_comctl32ver6) /* To improve drawing of items when TITLEFONT is set */
++ SendMessage(ih->handle, CCM_SETVERSION, 5, 0); 
++ else
++ SendMessage(ih->handle, TVM_SETEXTENDEDSTYLE, TVS_EX_DOUBLEBUFFER, TVS_EX_DOUBLEBUFFER); 
++
+ IupSetCallback(ih, "_IUPWIN_CTRLPROC_CB", (Icallback)winTreeProc);
+ IupSetCallback(ih, "_IUPWIN_NOTIFY_CB", (Icallback)winTreeWmNotify);
+ 
+@@ -2466,7 +2478,7 @@ static int winTreeMapMethod(Ihandle* ih)
+ winTreeSetBgColorAttrib(ih, value);
+ iupAttribSetStr(ih, "BGCOLOR", NULL);
+ }
+- else if (iupwinGetSystemMajorVersion()<6) /* force background in XP because of the editbox background */
++ else if (!iupwin_comctl32ver6 || iupwinGetSystemMajorVersion()<6) /* force background in XP because of the editbox background */
+ winTreeSetBgColorAttrib(ih, IupGetGlobal("TXTBGCOLOR"));
+ }
+ 
+@@ -2475,8 +2487,8 @@ static int winTreeMapMethod(Ihandle* ih)
+ ih->data->def_image_collapsed = (void*)winTreeGetImageIndex(ih, "IMGCOLLAPSED");
+ ih->data->def_image_expanded = (void*)winTreeGetImageIndex(ih, "IMGEXPANDED");
+ 
+- /* Add the Root Node */
+- winTreeAddRootNode(ih);
++ if (iupAttribGetInt(ih, "ADDROOT"))
++ iupdrvTreeAddNode(ih, "-1", ITREE_BRANCH, "", 0);
+ 
+ /* configure for DRAG&DROP of files */
+ if (IupGetCallback(ih, "DROPFILES_CB"))
+@@ -2484,9 +2496,31 @@ static int winTreeMapMethod(Ihandle* ih)
+ 
+ IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)winTreeConvertXYToPos);
+ 
++ iupdrvTreeUpdateMarkMode(ih);
++
+ return IUP_NOERROR;
+ }
+ 
++static void winTreeUnMapMethod(Ihandle* ih)
++{
++ Iarray* bmp_array;
++ HIMAGELIST image_list;
++
++ winTreeRemoveAllNodeData(ih, 0);
++
++ ih->data->node_count = 0;
++
++ image_list = (HIMAGELIST)SendMessage(ih->handle, TVM_GETIMAGELIST, TVSIL_NORMAL, 0);
++ if (image_list)
++ ImageList_Destroy(image_list);
++
++ bmp_array = (Iarray*)iupAttribGet(ih, "_IUPWIN_BMPARRAY");
++ if (bmp_array)
++ iupArrayDestroy(bmp_array);
++
++ iupdrvBaseUnMapMethod(ih);
++}
++
+ void iupdrvTreeInitClass(Iclass* ic)
+ {
+ /* Driver Dependent Class functions */
+@@ -2500,7 +2534,6 @@ void iupdrvTreeInitClass(Iclass* ic)
+ /* IupTree Attributes - GENERAL */
+ iupClassRegisterAttribute(ic, "EXPANDALL", NULL, winTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "INDENTATION", winTreeGetIndentationAttrib, winTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT);
+- iupClassRegisterAttribute(ic, "COUNT", winTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "DRAGDROP", NULL, iupwinSetDragDropAttrib, NULL, NULL, IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, winTreeSetSpacingAttrib, NULL, NULL, IUPAF_NOT_MAPPED);
+ iupClassRegisterAttribute(ic, "TOPITEM", NULL, winTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+@@ -2521,7 +2554,6 @@ void iupdrvTreeInitClass(Iclass* ic)
+ iupClassRegisterAttributeId(ic, "NAME", winTreeGetTitleAttrib, winTreeSetTitleAttrib, IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "TITLE", winTreeGetTitleAttrib, winTreeSetTitleAttrib, IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "CHILDCOUNT", winTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
+- iupClassRegisterAttributeId(ic, "USERDATA", winTreeGetUserDataAttrib, winTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "COLOR", winTreeGetColorAttrib, winTreeSetColorAttrib, IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "TITLEFONT", winTreeGetTitleFontAttrib, winTreeSetTitleFontAttrib, IUPAF_NO_INHERIT);
+ 
+@@ -2530,6 +2562,7 @@ void iupdrvTreeInitClass(Iclass* ic)
+ iupClassRegisterAttribute (ic, "MARK", NULL, winTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute (ic, "STARTING", NULL, winTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute (ic, "MARKSTART", NULL, winTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute (ic, "MARKEDNODES", winTreeGetMarkedNodesAttrib, winTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ 
+ iupClassRegisterAttribute (ic, "VALUE", winTreeGetValueAttrib, winTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
+ 
+@@ -2538,5 +2571,8 @@ void iupdrvTreeInitClass(Iclass* ic)
+ iupClassRegisterAttribute(ic, "RENAME", NULL, winTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "MOVENODE", NULL, winTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+ iupClassRegisterAttributeId(ic, "COPYNODE", NULL, winTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);
+- iupClassRegisterAttributeId(ic, "FINDUSERDATA", winTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);
++
++ /* necessary because transparent background does not work when not using visual styles */
++ if (!iupwin_comctl32ver6) /* Used by iupdrvImageCreateImage */
++ iupClassRegisterAttribute(ic, "FLAT_ALPHA", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ }
+diff --git a/iup/src/win/iupwin_val.c b/iup/src/win/iupwin_val.c
+index 706c612..5c956d9 100755
+--- a/iup/src/win/iupwin_val.c
++++ b/iup/src/win/iupwin_val.c
+@@ -56,6 +56,13 @@ void iupdrvValGetMinSize(Ihandle* ih, int *w, int *h)
+ }
+ }
+ 
++static int winValSetBgColorAttrib(Ihandle *ih, const char *value)
++{
++ (void)value;
++ iupdrvPostRedraw(ih);
++ return 1;
++}
++
+ static int winValSetStepAttrib(Ihandle* ih, const char* value)
+ {
+ int linesize;
+@@ -110,18 +117,6 @@ static int winValSetValueAttrib(Ihandle* ih, const char* value)
+ /*********************************************************************************************/
+ 
+ 
+-static int winValCtlColor(Ihandle* ih, HDC hdc, LRESULT *result)
+-{
+- COLORREF cr;
+- if (iupwinGetParentBgColor(ih, &cr))
+- {
+- SetDCBrushColor(hdc, cr);
+- *result = (LRESULT)GetStockObject(DC_BRUSH);
+- return 1;
+- }
+- return 0;
+-}
+-
+ static int winValCustomScroll(Ihandle* ih, int msg)
+ {
+ double old_val = ih->data->val;
+@@ -190,6 +185,19 @@ static void winValIncPageValue(Ihandle *ih, int dir)
+ winValCustomScroll(ih, 0);
+ }
+ 
++static int winValCtlColor(Ihandle* ih, HDC hdc, LRESULT *result)
++{
++ COLORREF cr;
++ if (iupwinGetParentBgColor(ih, &cr))
++ {
++ SetBkColor(hdc, cr);
++ SetDCBrushColor(hdc, cr);
++ *result = (LRESULT)GetStockObject(DC_BRUSH);
++ return 1;
++ }
++ return 0;
++}
++
+ static int winValProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *result)
+ {
+ (void)lp;
+@@ -240,7 +248,7 @@ static int winValProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *resu
+ 
+ static int winValMapMethod(Ihandle* ih)
+ {
+- DWORD dwStyle = WS_CHILD | TBS_AUTOTICKS;
++ DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS | TBS_AUTOTICKS;
+ int show_ticks;
+ 
+ if (!ih->parent)
+@@ -312,4 +320,7 @@ void iupdrvValInitClass(Iclass* ic)
+ iupClassRegisterAttribute(ic, "STEP", iupValGetStepAttrib, winValSetStepAttrib, "0.01", NULL, IUPAF_NO_INHERIT); /* force new default value */
+ 
+ iupClassRegisterAttribute(ic, "TICKSPOS", NULL, NULL, "NORMAL", NULL, IUPAF_NOT_MAPPED);
++
++ /* Visual */
++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winValSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);
+ }
+diff --git a/iup/srccd/Makefile b/iup/srccd/Makefile
+index 43a3f09..8b1d154 100755
+--- a/iup/srccd/Makefile
++++ b/iup/srccd/Makefile
+@@ -3,4 +3,4 @@
+ do_all: iupcd
+ 
+ iupcd:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak 
++ @$(MAKE) --no-print-directory -f ../tecmake.mak 
+diff --git a/iup/srccd/iup_cd.c b/iup/srccd/iup_cd.c
+index 5998775..619ded7 100755
+--- a/iup/srccd/iup_cd.c
++++ b/iup/srccd/iup_cd.c
+@@ -14,7 +14,6 @@
+ #include <cdiup.h>
+ #include <cdnative.h>
+ 
+-
+ static void (*cdcreatecanvasNATIVE)(cdCanvas* canvas, void* data) = NULL;
+ 
+ static void cdcreatecanvasIUP(cdCanvas* canvas, Ihandle *ih_canvas)
+@@ -24,8 +23,12 @@ static void cdcreatecanvasIUP(cdCanvas* canvas, Ihandle *ih_canvas)
+ #endif
+ char* data;
+ 
+- if (IupGetInt(ih_canvas, "CD_GDK"))
++ if (cdBaseDriver()==CD_BASE_GDK)
++ {
+ data = IupGetAttribute(ih_canvas, "DRAWABLE"); /* new IUP 3 attribute, works for GTK only */
++ if (!data)
++ return;
++ }
+ else
+ {
+ #ifdef WIN32
+diff --git a/iup/srcconsole/Makefile b/iup/srcconsole/Makefile
+index 876ca8d..505b103 100755
+--- a/iup/srcconsole/Makefile
++++ b/iup/srcconsole/Makefile
+@@ -3,10 +3,10 @@
+ do_all: iuplua5
+ 
+ iuplua5:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak 
++ @$(MAKE) --no-print-directory -f ../tecmake.mak 
+ 
+ iuplua5gtk:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak USE_GTK=Yes
++ @$(MAKE) --no-print-directory -f ../tecmake.mak USE_GTK=Yes
+ 
+ iuplua3:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iuplua3
++ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iuplua3
+diff --git a/iup/srcconsole/config.mak b/iup/srcconsole/config.mak
+index 612a3ab..568bed6 100755
+--- a/iup/srcconsole/config.mak
++++ b/iup/srcconsole/config.mak
+@@ -1,12 +1,23 @@
+ PROJNAME = iup
+ APPNAME = iuplua51
+-APPTYPE = console
++APPTYPE = CONSOLE
++
++ifdef GTK_DEFAULT
++ ifdef USE_MOTIF
++ # Build Motif version in Linux,Darwin,FreeBSD
++ APPNAME = iuplua51mot
++ endif
++else 
++ ifdef USE_GTK
++ # Build GTK version in IRIX,SunOS,AIX,Win32
++ APPNAME = iuplua51gtk
++ endif
++endif
+ 
+ LOHDIR = loh
+ SRCLUA = console5.lua
+ SRC = iup_lua51.c
+ 
+-
+ # Disable strip
+ STRIP = 
+ # Optimize
+@@ -35,6 +46,16 @@ ifdef DBG
+ USE_STATIC = Yes
+ USE_LUA51 = Yes
+ 
++ ifdef DBG_DIR
++ IUPLIB = $(IUP)/lib/$(TEC_UNAME)d
++ CDLIB = $(CD)/lib/$(TEC_UNAME)d
++ IMLIB = $(IM)/lib/$(TEC_UNAME)d
++ else
++ IUPLIB = $(IUP)/lib/$(TEC_UNAME)
++ CDLIB = $(CD)/lib/$(TEC_UNAME)
++ IMLIB = $(IM)/lib/$(TEC_UNAME)
++ endif 
++ 
+ DEFINES = USE_STATIC
+ 
+ USE_CDLUA = Yes
+@@ -42,7 +63,6 @@ ifdef DBG
+ ifneq ($(findstring Win, $(TEC_SYSNAME)), )
+ LIBS += iuplua_pplot$(LIBLUASUFX) iup_pplot
+ else
+- IUPLIB = $(IUP)/lib/$(TEC_UNAME)
+ SLIB += $(IUPLIB)/libiuplua_pplot$(LIBLUASUFX).a $(IUPLIB)/libiup_pplot.a
+ endif
+ 
+@@ -50,7 +70,6 @@ ifdef DBG
+ ifneq ($(findstring Win, $(TEC_SYSNAME)), )
+ LIBS += cdluaim$(LIBLUASUFX)
+ else
+- CDLIB = $(CD)/lib/$(TEC_UNAME)
+ SLIB += $(CDLIB)/libcdluaim$(LIBLUASUFX).a
+ endif
+ endif
+@@ -65,8 +84,6 @@ ifdef DBG
+ ifneq ($(findstring Win, $(TEC_SYSNAME)), )
+ LIBS += imlua_process$(LIBLUASUFX) iupluaim$(LIBLUASUFX) im_process iupim
+ else
+- IUPLIB = $(IUP)/lib/$(TEC_UNAME)
+- IMLIB = $(IM)/lib/$(TEC_UNAME)
+ SLIB += $(IMLIB)/libimlua_process$(LIBLUASUFX).a $(IUPLIB)/libiupluaim$(LIBLUASUFX).a $(IMLIB)/libim_process.a $(IUPLIB)/libiupim.a
+ endif
+ 
+@@ -77,20 +94,24 @@ ifdef DBG
+ ifneq ($(findstring Win, $(TEC_SYSNAME)), )
+ LIBS += iupluaimglib$(LIBLUASUFX) iupimglib
+ else
+- IUPLIB = $(IUP)/lib/$(TEC_UNAME)
+ SLIB += $(IUPLIB)/libiupluaimglib$(LIBLUASUFX).a $(IUPLIB)/libiupimglib.a
+ endif
+ endif
+ else
+ ifneq ($(findstring Win, $(TEC_SYSNAME)), )
+ # Dinamically link in Windows, when not debugging
+- # Must call "tecmake dll8"
++ # Must call "tecmake dll8" so USE_* will use the correct TEC_UNAME
+ USE_LUA51 = Yes
+ USE_DLL = Yes
+ GEN_MANIFEST = No
+ else
+ # In UNIX Lua is always statically linked, late binding is used.
+- USE_STATIC = Yes
++ # Except in Cygwin and MacOSX
++ ifeq ($(findstring cygw, $(TEC_UNAME)), )
++ ifeq ($(findstring Darwin, $(TEC_UNAME)), )
++ USE_STATIC = Yes
++ endif
++ endif
+ USE_LUA51 = Yes
+ endif
+ endif
+@@ -102,10 +123,13 @@ ifneq ($(findstring Win, $(TEC_SYSNAME)), )
+ endif
+ 
+ ifneq ($(findstring cygw, $(TEC_UNAME)), )
+- LDFLAGS = -s
+ LIBS += readline history
+ endif
+ 
++ifneq ($(findstring Darwin, $(TEC_UNAME)), )
++ LIBS += readline
++endif
++
+ ifneq ($(findstring Linux, $(TEC_UNAME)), )
+ LIBS += dl 
+ #To allow late binding
+@@ -129,10 +153,3 @@ ifneq ($(findstring AIX, $(TEC_UNAME)), )
+ LFLAGS = -Xlinker "-bbigtoc"
+ endif
+ 
+-ifeq ($(TEC_UNAME), vc8)
+- ifdef DBG
+- #debug info not working for vc8 linker
+- define DBG
+- endef
+- endif
+-endif 
+diff --git a/iup/srcconsole/console5.lua b/iup/srcconsole/console5.lua
+index 20f74b2..0b93641 100755
+--- a/iup/srcconsole/console5.lua
++++ b/iup/srcconsole/console5.lua
+@@ -1,67 +1,69 @@
+ require"iuplua"
+ 
+-iup.console = {}
+-
+ -- Utilities
++iup_console = {}
+ 
+-function iup.console.printtable(t)
+- local n,v = next(t, nil)
+- print("--printtable Start--")
+- while n do
+- print(tostring(n).."="..tostring(v))
+- n,v = next(t, n)
+- end
+- print("--printtable End--")
++function iup_console.concat(str, info)
++ return str .. info .. "\n"
+ end
+ 
+-function iup.console.print_version_info()
+- if (im) then print("IM " .. im._VERSION .. " " .. im._COPYRIGHT) end
++function iup_console.print_version_info()
++ iup_console.clear()
++ local str = ""
++ if (im) then str = iup_console.concat(str, "IM " .. im._VERSION .. " " .. im._COPYRIGHT) end
+ 
+- if (cd) then print("CD " .. cd._VERSION .. " " .. cd._COPYRIGHT) end
++ if (cd) then str = iup_console.concat(str, "CD " .. cd._VERSION .. " " .. cd._COPYRIGHT) end
+ 
+- print("IUP " .. iup._VERSION .. " " .. iup._COPYRIGHT)
+- print("")
+- print("IUP Info")
+- print(" System: " .. iup.GetGlobal("SYSTEM"))
+- print(" System Version: " .. iup.GetGlobal("SYSTEMVERSION"))
++ str = iup_console.concat(str, "IUP " .. iup._VERSION .. " " .. iup._COPYRIGHT)
++ str = iup_console.concat(str, "")
++ str = iup_console.concat(str, "IUP Info")
++ str = iup_console.concat(str, " System: " .. iup.GetGlobal("SYSTEM"))
++ str = iup_console.concat(str, " System Version: " .. iup.GetGlobal("SYSTEMVERSION"))
+ 
+ local mot = iup.GetGlobal("MOTIFVERSION")
+- if (mot) then print(" Motif Version: ", mot) end
++ if (mot) then str = iup_console.concat(str, " Motif Version: ", mot) end
+ 
+- print(" Screen Size: " .. iup.GetGlobal("SCREENSIZE"))
+- print(" Screen Depth: " .. iup.GetGlobal("SCREENDEPTH"))
++ str = iup_console.concat(str, " Screen Size: " .. iup.GetGlobal("SCREENSIZE"))
++ str = iup_console.concat(str, " Screen Depth: " .. iup.GetGlobal("SCREENDEPTH"))
+ 
+- if (iup.GL_VENDOR) then print(" OpenGL Vendor: " .. iup.GL_VENDOR) end
+- if (iup.GL_RENDERER) then print(" OpenGL Renderer: " .. iup.GL_RENDERER) end
+- if (iup.GL_VERSION) then print(" OpenGL Version: " .. iup.GL_VERSION) end
++ if (iup.GL_VENDOR) then str = iup_console.concat(str, " OpenGL Vendor: " .. iup.GL_VENDOR) end
++ if (iup.GL_RENDERER) then str = iup_console.concat(str, " OpenGL Renderer: " .. iup.GL_RENDERER) end
++ if (iup.GL_VERSION) then str = iup_console.concat(str, " OpenGL Version: " .. iup.GL_VERSION) end
++ 
++ iup_console.mlCode.value=str
+ end
+ 
+ -- Console Dialog
+ 
+-iup.console.lastfilename = nil -- Last file open
+-iup.console.mlCode = iup.multiline{expand="YES", size="200x120", font="COURIER_NORMAL_10"}
+-iup.console.lblPosition = iup.label{title="0:0", size="50x"}
+-iup.console.lblFileName = iup.label{title="", size="50x", expand="HORIZONTAL"}
++iup_console.lastfilename = nil -- Last file open
++iup_console.mlCode = iup.multiline{expand="YES", size="200x120", font="COURIER_NORMAL_10"}
++iup_console.lblPosition = iup.label{title="0:0", size="50x"}
++iup_console.lblFileName = iup.label{title="", size="50x", expand="HORIZONTAL"}
++
++function iup_console.mlCode:caret_cb(lin, col)
++ iup_console.lblPosition.title = lin..":"..col
++end
+ 
+-function iup.console.mlCode:caret_cb(lin, col)
+- iup.console.lblPosition.title = lin..":"..col
++function iup_console.clear()
++ iup_console.mlCode.value='' 
++ iup_console.lblFileName.title = '' 
++ iup_console.lastfilename = nil
+ end
+ 
+-iup.console.butExecute = iup.button{size="50x15", title="Execute",
+- action="iup.dostring(iup.console.mlCode.value)"}
+-iup.console.butClearCommands = iup.button{size="50x15", title="Clear",
+- action="iup.console.mlCode.value='' iup.console.lblFileName.title = '' iup.console.lastfilename = nil"}
+-iup.console.butLoadFile = iup.button{size="50x15", title="Load..."}
+-iup.console.butSaveasFile = iup.button{size="50x15", title="Save As..."}
+-iup.console.butSaveFile = iup.button{size="50x15", title="Save"}
+-
+-function iup.console.butSaveFile:action()
+- if (iup.console.lastfilename == nil) then
+- iup.console.butSaveasFile:action()
++iup_console.butExecute = iup.button{size="50x15", title="Execute",
++ action="iup.dostring(iup_console.mlCode.value)"}
++iup_console.butClearCommands = iup.button{size="50x15", title="Clear", action=iup_console.clear}
++iup_console.butLoadFile = iup.button{size="50x15", title="Load..."}
++iup_console.butSaveasFile = iup.button{size="50x15", title="Save As..."}
++iup_console.butSaveFile = iup.button{size="50x15", title="Save"}
++
++function iup_console.butSaveFile:action()
++ if (iup_console.lastfilename == nil) then
++ iup_console.butSaveasFile:action()
+ else
+- newfile = io.open(iup.console.lastfilename, "w+")
++ newfile = io.open(iup_console.lastfilename, "w+")
+ if (newfile) then
+- newfile:write(iup.console.mlCode.value)
++ newfile:write(iup_console.mlCode.value)
+ newfile:close()
+ else
+ error ("Cannot Save file "..filename)
+@@ -69,21 +71,26 @@ function iup.console.butSaveFile:action()
+ end
+ end
+ 
+-function iup.console.butSaveasFile:action()
+- local fd = iup.filedlg{dialogtype="SAVE", title="Save File",
++function iup_console.butSaveasFile:action()
++ local fd = iup.filedlg{dialogtype="SAVE", title="Save File", 
++ nochangedir="NO", directory=iup_console.last_directory,
+ filter="*.*", filterinfo="All files",allownew=yes}
++ 
+ fd:popup(iup.LEFT, iup.LEFT)
++ 
+ local status = fd.status
+- iup.console.lastfilename = fd.value
+- iup.console.lblFileName.title = iup.console.lastfilename
++ iup_console.lastfilename = fd.value
++ iup_console.lblFileName.title = fd.value
++ iup_console.last_directory = fd.directory
+ fd:destroy()
++ 
+ if status ~= "-1" then
+- if (iup.console.lastfilename == nil) then
++ if (iup_console.lastfilename == nil) then
+ error ("Cannot Save file "..filename)
+ end
+- local newfile=io.open(iup.console.lastfilename, "w+")
++ local newfile=io.open(iup_console.lastfilename, "w+")
+ if (newfile) then
+- newfile:write(iup.console.mlCode.value)
++ newfile:write(iup_console.mlCode.value)
+ newfile:close(newfile)
+ else
+ error ("Cannot Save file")
+@@ -91,24 +98,26 @@ function iup.console.butSaveasFile:action()
+ end
+ end
+ 
+-function iup.console.LoadFile(filename)
++function iup_console.LoadFile(filename)
+ local newfile = io.open (filename, "r")
+ if (newfile == nil) then
+ error ("Cannot load file "..filename)
+ else
+- iup.console.mlCode.value=newfile:read("*a")
++ iup_console.mlCode.value=newfile:read("*a")
+ newfile:close (newfile)
+- iup.console.lastfilename = filename
+- iup.console.lblFileName.title = iup.console.lastfilename
++ iup_console.lastfilename = filename
++ iup_console.lblFileName.title = iup_console.lastfilename
+ end
+ end
+ 
+-function iup.console.butLoadFile:action()
+- local fd=iup.filedlg{dialogtype="OPEN", title="Load File",
++function iup_console.butLoadFile:action()
++ local fd=iup.filedlg{dialogtype="OPEN", title="Load File", 
++ nochangedir="NO", directory=iup_console.last_directory,
+ filter="*.*", filterinfo="All Files", allownew="NO"}
+ fd:popup(iup.CENTER, iup.CENTER)
+ local status = fd.status
+ local filename = fd.value
++ iup_console.last_directory = fd.directory
+ fd:destroy()
+ 
+ if (status == "-1") or (status == "1") then
+@@ -116,21 +125,21 @@ function iup.console.butLoadFile:action()
+ error ("Cannot load file "..filename)
+ end
+ else
+- iup.console.LoadFile(filename)
++ iup_console.LoadFile(filename)
+ end
+ end
+ 
+-iup.console.vbxConsole = iup.vbox
++iup_console.vbxConsole = iup.vbox
+ {
+- iup.frame{iup.hbox{iup.vbox{iup.console.butLoadFile,
+- iup.console.butSaveFile,
+- iup.console.butSaveasFile,
+- iup.console.butClearCommands,
+- iup.console.butExecute;
++ iup.frame{iup.hbox{iup.vbox{iup_console.butLoadFile,
++ iup_console.butSaveFile,
++ iup_console.butSaveasFile,
++ iup_console.butClearCommands,
++ iup_console.butExecute;
+ margin="0x0", gap="10"},
+- iup.vbox{iup.console.lblFileName,
+- iup.console.mlCode,
+- iup.console.lblPosition;
++ iup.vbox{iup_console.lblFileName,
++ iup_console.mlCode,
++ iup_console.lblPosition;
+ alignment = "ARIGHT"};
+ alignment="ATOP"}; title="Commands"}
+ ;alignment="ACENTER", margin="5x5", gap="5"
+@@ -138,7 +147,7 @@ iup.console.vbxConsole = iup.vbox
+ 
+ -- Main Menu Definition.
+ 
+-iup.console.mnuMain = iup.menu
++iup_console.mnuMain = iup.menu
+ {
+ iup.submenu
+ {
+@@ -149,29 +158,29 @@ iup.console.mnuMain = iup.menu
+ },
+ iup.submenu{iup.menu
+ {
+- iup.item{title="Print Version Info...", action=iup.console.print_version_info},
+- iup.item{title="About...", action="iup.console.dlgAbout:popup(iup.CENTER, iup.CENTER)"}
++ iup.item{title="Print Version Info...", action=iup_console.print_version_info},
++ iup.item{title="About...", action="iup_console.dlgAbout:popup(iup.CENTER, iup.CENTER)"}
+ };title="Help"}
+ }
+ 
+ -- Main Dialog Definition.
+ 
+-iup.console.dlgMain = iup.dialog{iup.console.vbxConsole;
++iup_console.dlgMain = iup.dialog{iup_console.vbxConsole;
+ title="IupLua Console",
+- menu=iup.console.mnuMain,
++ menu=iup_console.mnuMain,
+ dragdrop = "YES",
+- defaultenter=iup.console.butExecute,
++ defaultenter=iup_console.butExecute,
+ close_cb = "return iup.CLOSE"}
+ 
+-function iup.console.dlgMain:dropfiles_cb(filename, num, x, y)
++function iup_console.dlgMain:dropfiles_cb(filename, num, x, y)
+ if (num == 0) then
+- iup.console.LoadFile(filename)
++ iup_console.LoadFile(filename)
+ end
+ end
+ 
+ -- About Dialog Definition.
+ 
+-iup.console.dlgAbout = iup.dialog
++iup_console.dlgAbout = iup.dialog
+ {
+ iup.vbox
+ {
+@@ -195,10 +204,12 @@ iup.console.dlgAbout = iup.dialog
+ 
+ -- Displays the Main Dialog
+ 
+-iup.console.dlgMain:show()
+-iup.SetFocus(iup.console.mlCode)
++iup_console.dlgMain:show()
++iup.SetFocus(iup_console.mlCode)
+ 
+-iup.MainLoop()
++if (not iup.MainLoopLevel or iup.MainLoopLevel()==0) then
++ iup.MainLoop()
++end
+ 
+-iup.console.dlgMain:destroy()
+-iup.console.dlgAbout:destroy()
++iup_console.dlgMain:destroy()
++iup_console.dlgAbout:destroy()
+diff --git a/iup/srcconsole/copy_all_so b/iup/srcconsole/copy_all_so
+index 52f1fea..ce3c248 100755
+--- a/iup/srcconsole/copy_all_so
++++ b/iup/srcconsole/copy_all_so
+@@ -2,10 +2,10 @@
+ 
+ foreach plat ( Linux24 Linux24g3 Linux24g3_64 Linux26 Linux26_64 Linux26g4 Linux26g4_64 Linux26_ia64 SunOS57 SunOS510 SunOS510x86 AIX43 IRIX65 IRIX6465 )
+ echo $plat
+- cp -f ../lib/$plat/*.so ../bin/$plat
+- cp -f ../../cd/lib/$plat/*.so ../bin/$plat
+- cp -f ../../im/lib/$plat/*.so ../bin/$plat
++# cp -f ../lib/$plat/*.so ../bin/$plat
++# cp -f ../../cd/lib/$plat/*.so ../bin/$plat
++# cp -f ../../im/lib/$plat/*.so ../bin/$plat
+ cp -f ../../luagl/lib/$plat/*.so ../bin/$plat
+ cp -f ../../lfs/lib/$plat/*.so ../bin/$plat
+- rm -f ../bin/$plat/*3.so
++# rm -f ../bin/$plat/*3.so
+ end
+diff --git a/iup/srcconsole/copy_so b/iup/srcconsole/copy_so
+index 2535766..e345d31 100755
+--- a/iup/srcconsole/copy_so
++++ b/iup/srcconsole/copy_so
+@@ -1,4 +1,6 @@
+ cp -f ../lib/${TEC_UNAME}/*.so ../bin/$TEC_UNAME
+ cp -f ../../cd/lib/${TEC_UNAME}/*.so ../bin/$TEC_UNAME
+ cp -f ../../im/lib/${TEC_UNAME}/*.so ../bin/$TEC_UNAME
++cp -f ../../luagl/lib/${TEC_UNAME}/*.so ../bin/${TEC_UNAME}
++cp -f ../../lfs/lib/${TEC_UNAME}/*.so ../bin/${TEC_UNAME}
+ rm -f ../bin/${TEC_UNAME}/*3.so
+diff --git a/iup/srcconsole/iuplua3.rc b/iup/srcconsole/iuplua3.rc
+index e741199..9fcc280 100755
+--- a/iup/srcconsole/iuplua3.rc
++++ b/iup/srcconsole/iuplua3.rc
+@@ -13,7 +13,7 @@ BEGIN
+ VALUE "CompanyName", "Tecgraf/PUC-Rio\0"
+ VALUE "FileDescription", "Lua Windows Standalone Interpreter with IUP\0"
+ VALUE "FileVersion", "3.0.0\0"
+- VALUE "LegalCopyright", "Copyright © 1994-2009 Tecgraf, PUC-Rio.\0"
++ VALUE "LegalCopyright", "Copyright © 1994-2010 Tecgraf, PUC-Rio.\0"
+ VALUE "OriginalFilename", "iuplua51.exe\0"
+ VALUE "ProductName", "IUP for Windows\0"
+ VALUE "ProductVersion", "3.0.0\0"
+diff --git a/iup/srcconsole/iuplua5.rc b/iup/srcconsole/iuplua5.rc
+index bc02e07..70e40a4 100755
+--- a/iup/srcconsole/iuplua5.rc
++++ b/iup/srcconsole/iuplua5.rc
+@@ -13,7 +13,7 @@ BEGIN
+ VALUE "CompanyName", "Tecgraf/PUC-Rio\0"
+ VALUE "FileDescription", "Lua Windows Standalone Interpreter with IUP\0"
+ VALUE "FileVersion", "3.0.0\0"
+- VALUE "LegalCopyright", "Copyright © 1994-2009 Tecgraf, PUC-Rio.\0"
++ VALUE "LegalCopyright", "Copyright © 1994-2010 Tecgraf, PUC-Rio.\0"
+ VALUE "OriginalFilename", "iuplua51.exe\0"
+ VALUE "ProductName", "IUP for Windows\0"
+ VALUE "ProductVersion", "3.0.0\0"
+diff --git a/iup/srcconsole/make_uname.bat b/iup/srcconsole/make_uname.bat
+index a5b1d9a..a0db110 100755
+--- a/iup/srcconsole/make_uname.bat
++++ b/iup/srcconsole/make_uname.bat
+@@ -6,24 +6,26 @@ if "%1"=="vc8_64" goto iupexe64
+ if "%1"=="all" goto iupexe
+ goto end
+ 
++REM Must use dll8 so USE_* will use the correct TEC_UNAME
++
+ :iupexe32
+ call tecmake dll8 relink %2 %3 %4 %5 %6 %7
+-REM call tecmake dll8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
++REM call tecmake vc8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
+ REM call tecmake vc8 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7
+ goto end
+ 
+ :iupexe64
+ call tecmake dll8_64 relink %2 %3 %4 %5 %6 %7
+-REM call tecmake dll8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
++REM call tecmake vc8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
+ REM call tecmake vc8_64 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7
+ goto end
+ 
+ :iupexe
+ call tecmake dll8 relink %2 %3 %4 %5 %6 %7
+-REM call tecmake dll8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
++REM call tecmake vc8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
+ REM call tecmake vc8 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7
+ call tecmake dll8_64 relink %2 %3 %4 %5 %6 %7
+-REM call tecmake dll8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
++REM call tecmake vc8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7
+ REM call tecmake vc8_64 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7
+ goto end
+ 
+diff --git a/iup/srccontrols/Makefile b/iup/srccontrols/Makefile
+index d02bbc3..c928251 100755
+--- a/iup/srccontrols/Makefile
++++ b/iup/srccontrols/Makefile
+@@ -3,4 +3,4 @@
+ do_all: iupcontrols
+ 
+ iupcontrols:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak 
++ @$(MAKE) --no-print-directory -f ../tecmake.mak 
+diff --git a/iup/srccontrols/color/iup_colorbrowser.c b/iup/srccontrols/color/iup_colorbrowser.c
+index 82b4a88..51f8a30 100755
+--- a/iup/srccontrols/color/iup_colorbrowser.c
++++ b/iup/srccontrols/color/iup_colorbrowser.c
+@@ -681,7 +681,7 @@ static int iColorBrowserKeypress_CB(Ihandle* ih, int c, int press)
+ static char* iColorBrowserGetHSIAttrib(Ihandle* ih)
+ {
+ char* buffer = iupStrGetMemory(100);
+- sprintf(buffer, "%f %f %f", (double)ih->data->hue, (double)ih->data->saturation, (double)ih->data->intensity);
++ sprintf(buffer, "%g %g %g", (double)ih->data->hue, (double)ih->data->saturation, (double)ih->data->intensity);
+ return buffer;
+ }
+ 
+@@ -781,10 +781,16 @@ static int iColorBrowserMapMethod(Ihandle* ih)
+ static void iColorBrowserUnMapMethod(Ihandle* ih)
+ {
+ if (ih->data->cddbuffer)
++ {
+ cdKillCanvas(ih->data->cddbuffer);
++ ih->data->cddbuffer = NULL;
++ }
+ 
+ if (ih->data->cdcanvas)
++ {
+ cdKillCanvas(ih->data->cdcanvas);
++ ih->data->cdcanvas = NULL;
++ }
+ }
+ 
+ static int iColorBrowserCreateMethod(Ihandle* ih, void **params)
+diff --git a/iup/srccontrols/color/iup_colorbrowserdlg.c b/iup/srccontrols/color/iup_colorbrowserdlg.c
+index 65e4d37..dc52725 100755
+--- a/iup/srccontrols/color/iup_colorbrowserdlg.c
++++ b/iup/srccontrols/color/iup_colorbrowserdlg.c
+@@ -158,7 +158,7 @@ static void iColorBrowserDlgBrowserRGB_Update(IcolorDlgData* colordlg_data)
+ 
+ static void iColorBrowserDlgBrowserHSI_Update(IcolorDlgData* colordlg_data)
+ {
+- IupSetfAttribute(colordlg_data->color_browser, "HSI", "%f %f %f", (double)colordlg_data->hue, (double)colordlg_data->saturation, (double)colordlg_data->intensity);
++ IupSetfAttribute(colordlg_data->color_browser, "HSI", "%g %g %g", (double)colordlg_data->hue, (double)colordlg_data->saturation, (double)colordlg_data->intensity);
+ }
+ 
+ /*****************************************\
+@@ -575,10 +575,16 @@ static int iColorBrowserDlgColorCnvUnMap_CB(Ihandle* ih)
+ IcolorDlgData* colordlg_data = (IcolorDlgData*)iupAttribGetInherit(ih, "_IUP_GC_DATA");
+ 
+ if (colordlg_data->color_cddbuffer)
++ {
+ cdKillCanvas(colordlg_data->color_cddbuffer);
++ colordlg_data->color_cddbuffer = NULL;
++ }
+ 
+ if (colordlg_data->color_cdcanvas)
++ {
+ cdKillCanvas(colordlg_data->color_cdcanvas);
++ colordlg_data->color_cdcanvas = NULL;
++ }
+ 
+ return IUP_DEFAULT;
+ }
+diff --git a/iup/srccontrols/config.mak b/iup/srccontrols/config.mak
+index 394d607..10f11e1 100755
+--- a/iup/srccontrols/config.mak
++++ b/iup/srccontrols/config.mak
+@@ -13,7 +13,7 @@ SRCMATRIX = iupmat_key.c iupmat_mark.c iupmat_aux.c iupmat_mem.c iupmat_mouse.c
+ SRCMATRIX := $(addprefix matrix/, $(SRCMATRIX))
+ 
+ SRC = iup_cdutil.c iup_gauge.c iup_cells.c iup_colorbar.c iup_controls.c \
+- iup_dial.c iup_oldtabs.c iup_oldval.c iup_oldmask.c \
++ iup_dial.c iup_oldmask.c \
+ $(SRCCOLOR) $(SRCMATRIX)
+ 
+ LIBS = iup iupcd
+diff --git a/iup/srccontrols/iup_cells.c b/iup/srccontrols/iup_cells.c
+index d9a7fe4..c771d6e 100755
+--- a/iup/srccontrols/iup_cells.c
++++ b/iup/srccontrols/iup_cells.c
+@@ -882,10 +882,16 @@ static int iCellsMapMethod(Ihandle* ih)
+ static void iCellsUnMapMethod(Ihandle* ih)
+ {
+ if (ih->data->cddbuffer)
++ {
+ cdKillCanvas(ih->data->cddbuffer);
++ ih->data->cddbuffer = NULL;
++ }
+ 
+ if (ih->data->cdcanvas)
++ {
+ cdKillCanvas(ih->data->cdcanvas);
++ ih->data->cdcanvas = NULL;
++ }
+ }
+ 
+ static int iCellsCreateMethod(Ihandle* ih, void **params)
+diff --git a/iup/srccontrols/iup_colorbar.c b/iup/srccontrols/iup_colorbar.c
+index 72e717c..1cbcd59 100755
+--- a/iup/srccontrols/iup_colorbar.c
++++ b/iup/srccontrols/iup_colorbar.c
+@@ -978,10 +978,16 @@ static int iColorbarMapMethod(Ihandle* ih)
+ static void iColorbarUnMapMethod(Ihandle* ih)
+ {
+ if (ih->data->cddbuffer)
++ {
+ cdKillCanvas(ih->data->cddbuffer);
++ ih->data->cddbuffer = NULL;
++ }
+ 
+ if (ih->data->cdcanvas)
++ {
+ cdKillCanvas(ih->data->cdcanvas);
++ ih->data->cdcanvas = NULL;
++ }
+ }
+ 
+ static int iColorbarCreateMethod(Ihandle* ih, void **params)
+diff --git a/iup/srccontrols/iup_dial.c b/iup/srccontrols/iup_dial.c
+index 1dd2d0f..c8c5656 100755
+--- a/iup/srccontrols/iup_dial.c
++++ b/iup/srccontrols/iup_dial.c
+@@ -640,7 +640,7 @@ static int iDialWheel_CB(Ihandle* ih, float delta)
+ static char* iDialGetValueAttrib(Ihandle* ih)
+ {
+ char* str = iupStrGetMemory(20);
+- sprintf(str, "%f", ih->data->angle);
++ sprintf(str, "%g", ih->data->angle);
+ return str;
+ }
+ 
+@@ -665,7 +665,7 @@ static int iDialSetDensityAttrib(Ihandle* ih, const char* value)
+ static char* iDialGetDensityAttrib(Ihandle* ih)
+ {
+ char* str = iupStrGetMemory(20);
+- sprintf(str, "%f", ih->data->density);
++ sprintf(str, "%g", ih->data->density);
+ return str;
+ }
+ 
+@@ -780,10 +780,16 @@ static int iDialMapMethod(Ihandle* ih)
+ static void iDialUnMapMethod(Ihandle* ih)
+ {
+ if (ih->data->cddbuffer)
++ {
+ cdKillCanvas(ih->data->cddbuffer);
++ ih->data->cddbuffer = NULL;
++ }
+ 
+ if (ih->data->cdcanvas)
++ {
+ cdKillCanvas(ih->data->cdcanvas);
++ ih->data->cdcanvas = NULL;
++ }
+ }
+ 
+ static int iDialCreateMethod(Ihandle* ih, void **params)
+diff --git a/iup/srccontrols/iup_gauge.c b/iup/srccontrols/iup_gauge.c
+index 8732eee..300b28e 100755
+--- a/iup/srccontrols/iup_gauge.c
++++ b/iup/srccontrols/iup_gauge.c
+@@ -347,10 +347,16 @@ static char* iGaugeGetTextAttrib(Ihandle* ih)
+ static void iGaugeUnMapMethod(Ihandle* ih)
+ {
+ if (ih->data->cddbuffer)
++ {
+ cdKillCanvas(ih->data->cddbuffer);
++ ih->data->cddbuffer = NULL;
++ }
+ 
+ if (ih->data->cdcanvas)
++ {
+ cdKillCanvas(ih->data->cdcanvas);
++ ih->data->cdcanvas = NULL;
++ }
+ }
+ 
+ static int iGaugeMapMethod(Ihandle* ih)
+diff --git a/iup/srccontrols/iup_oldmask.c b/iup/srccontrols/iup_oldmask.c
+index fec10f3..2ec4012 100755
+--- a/iup/srccontrols/iup_oldmask.c
++++ b/iup/srccontrols/iup_oldmask.c
+@@ -42,14 +42,14 @@ int iupmaskMatSetInt(Ihandle *ih, int autofill, int min, int max, int lin, int c
+ int iupmaskSetFloat(Ihandle* ih, int autofill, float min, float max)
+ {
+ (void)autofill;
+- IupSetfAttribute(ih,"MASKFLOAT", "%f:%f", min, max);
++ IupSetfAttribute(ih,"MASKFLOAT", "%g:%g", min, max);
+ return 1;
+ }
+ 
+ int iupmaskMatSetFloat(Ihandle* ih, int autofill, float min, float max, int lin, int col)
+ {
+ (void)autofill;
+- IupMatSetfAttribute(ih,"MASKFLOAT", lin, col, "%f:%f", min, max);
++ IupMatSetfAttribute(ih,"MASKFLOAT", lin, col, "%g:%g", min, max);
+ return 0;
+ }
+ 
+diff --git a/iup/srccontrols/iup_oldtabs.c b/iup/srccontrols/iup_oldtabs.c
+index 43b0c57..5ea7f0a 100755
+--- a/iup/srccontrols/iup_oldtabs.c
++++ b/iup/srccontrols/iup_oldtabs.c
+@@ -2487,10 +2487,16 @@ static int iTabsMapMethod(Ihandle* ih)
+ static void iTabsUnMapMethod(Ihandle* ih)
+ {
+ if (ih->data->cddbuffer)
++ {
+ cdKillCanvas(ih->data->cddbuffer);
++ ih->data->cddbuffer = NULL;
++ }
+ 
+ if (ih->data->cdcanvas)
++ {
+ cdKillCanvas(ih->data->cdcanvas);
++ ih->data->cdcanvas = NULL;
++ }
+ }
+ 
+ static void iTabsDestroyMethod(Ihandle* ih)
+diff --git a/iup/srccontrols/iup_oldval.c b/iup/srccontrols/iup_oldval.c
+index 50dae8a..9c14c90 100755
+--- a/iup/srccontrols/iup_oldval.c
++++ b/iup/srccontrols/iup_oldval.c
+@@ -533,7 +533,7 @@ static char* iValGetTypeAttrib(Ihandle* ih)
+ static char* iValGetValueAttrib(Ihandle* ih)
+ {
+ char* str = iupStrGetMemory(20);
+- sprintf(str, "%f", ih->data->val);
++ sprintf(str, "%g", ih->data->val);
+ return str;
+ }
+ 
+@@ -576,7 +576,7 @@ static int iValSetStepAttrib(Ihandle* ih, const char* step)
+ static char* iValGetStepAttrib(Ihandle* ih)
+ {
+ char* str = iupStrGetMemory(20);
+- sprintf(str, "%f", ih->data->step);
++ sprintf(str, "%g", ih->data->step);
+ return str;
+ }
+ 
+@@ -590,7 +590,7 @@ static int iValSetPageStepAttrib(Ihandle* ih, const char* pagestep)
+ static char* iValGetPageStepAttrib(Ihandle* ih)
+ {
+ char* str = iupStrGetMemory(20);
+- sprintf(str, "%f", ih->data->pagestep);
++ sprintf(str, "%g", ih->data->pagestep);
+ return str;
+ }
+ 
+@@ -605,7 +605,7 @@ static int iValSetMaxAttrib(Ihandle* ih, const char* max)
+ static char* iValGetMaxAttrib(Ihandle* ih)
+ {
+ char* str = iupStrGetMemory(20);
+- sprintf(str, "%f", ih->data->vmax);
++ sprintf(str, "%g", ih->data->vmax);
+ return str;
+ }
+ 
+@@ -620,7 +620,7 @@ static int iValSetMinAttrib(Ihandle* ih, const char* min)
+ static char* iValGetMinAttrib(Ihandle* ih)
+ {
+ char* str = iupStrGetMemory(20);
+- sprintf(str, "%f", ih->data->vmin);
++ sprintf(str, "%g", ih->data->vmin);
+ return str;
+ }
+ 
+@@ -719,10 +719,16 @@ static int iValMapMethod(Ihandle* ih)
+ static void iValUnMapMethod(Ihandle* ih)
+ {
+ if (ih->data->cddbuffer)
++ {
+ cdKillCanvas(ih->data->cddbuffer);
++ ih->data->cddbuffer = NULL;
++ }
+ 
+ if (ih->data->cdcanvas)
++ {
+ cdKillCanvas(ih->data->cdcanvas);
++ ih->data->cdcanvas = NULL;
++ }
+ }
+ 
+ static void iValDestroyMethod(Ihandle* ih)
+diff --git a/iup/srccontrols/matrix/iupmat_aux.c b/iup/srccontrols/matrix/iupmat_aux.c
+index f8b85bb..1a8df57 100755
+--- a/iup/srccontrols/matrix/iupmat_aux.c
++++ b/iup/srccontrols/matrix/iupmat_aux.c
+@@ -24,16 +24,11 @@
+ #include "iupmat_getset.h"
+ 
+ 
+-static int iMatrixAuxIsFullVisibleLast(Ihandle* ih, int m)
++int iupMatrixAuxIsFullVisibleLast(ImatLinColData *p)
+ {
+ int i, sum = 0;
+- ImatLinColData *p;
+-
+- if (m == IMAT_PROCESS_LIN)
+- p = &(ih->data->lines);
+- else
+- p = &(ih->data->columns);
+ 
++ sum -= p->first_offset;
+ for(i = p->first; i <= p->last; i++)
+ sum += p->sizes[i];
+ 
+@@ -43,16 +38,20 @@ static int iMatrixAuxIsFullVisibleLast(Ihandle* ih, int m)
+ return 1;
+ }
+ 
+-int iupMatrixAuxIsCellFullVisible(Ihandle* ih, int lin, int col)
++int iupMatrixAuxIsCellStartVisible(Ihandle* ih, int lin, int col)
+ {
+ if(((lin >= ih->data->lines.first) &&
+ (lin <= ih->data->lines.last) &&
+ (col >= ih->data->columns.first) &&
+ (col <= ih->data->columns.last)))
+ {
+- if (col == ih->data->columns.last && !iMatrixAuxIsFullVisibleLast(ih, IMAT_PROCESS_COL))
++ if (col == ih->data->columns.first && ih->data->columns.first_offset!=0)
++ return 0;
++ if (lin == ih->data->lines.first && ih->data->lines.first_offset!=0)
+ return 0;
+- if (lin == ih->data->lines.last && !iMatrixAuxIsFullVisibleLast(ih, IMAT_PROCESS_LIN))
++ if (col == ih->data->columns.last && !iupMatrixAuxIsFullVisibleLast(&ih->data->columns))
++ return 0;
++ if (lin == ih->data->lines.last && !iupMatrixAuxIsFullVisibleLast(&ih->data->lines))
+ return 0;
+ 
+ return 1;
+@@ -81,18 +80,98 @@ void iupMatrixAuxGetVisibleCellDim(Ihandle* ih, int lin, int col, int* x, int* y
+ /* find the position where the column starts */
+ *x = ih->data->columns.sizes[0];
+ for(i = ih->data->columns.first; i < col; i++)
++ {
+ *x += ih->data->columns.sizes[i];
+ 
+- /* find the column size */
++ if (i == ih->data->columns.first)
++ *x -= ih->data->columns.first_offset;
++ }
++
++ /* get the column size */
+ *w = ih->data->columns.sizes[col] - 1;
++ if (col == ih->data->columns.first)
++ *w -= ih->data->columns.first_offset;
+ 
+ /* find the position where the line starts */
+ *y = ih->data->lines.sizes[0];
+ for(i = ih->data->lines.first; i < lin; i++)
++ {
+ *y += ih->data->lines.sizes[i];
+ 
+- /* find the line size */
++ if (i == ih->data->lines.first)
++ *y -= ih->data->lines.first_offset;
++ }
++
++ /* get the line size */
+ *h = ih->data->lines.sizes[lin] - 1;
++ if (lin == ih->data->lines.first)
++ *h -= ih->data->lines.first_offset;
++}
++
++void iupMatrixAuxAdjustFirstFromLast(ImatLinColData* p)
++{
++ int i, sum = 0;
++
++ /* adjust "first" according to "last" */
++
++ i = p->last;
++ sum = p->sizes[i];
++ while (i>1 && sum < p->visible_size)
++ {
++ i--;
++ sum += p->sizes[i];
++ }
++
++ if (i==1 && sum < p->visible_size)
++ {
++ /* if there are room for everyone then position at start */
++ p->first = 1;
++ p->first_offset = 0;
++ }
++ else
++ {
++ /* the "while" found an index for first */
++ p->first = i;
++
++ /* position at the remaing space */
++ p->first_offset = sum - p->visible_size;
++ }
++}
++
++void iupMatrixAuxAdjustFirstFromScrollPos(ImatLinColData* p, int scroll_pos)
++{
++ int index, sp, offset = 0;
++
++ sp = 0;
++ for(index = 1; index < p->num; index++)
++ {
++ sp += p->sizes[index];
++ if (sp > scroll_pos)
++ {
++ sp -= p->sizes[index]; /* get the previous value */
++ offset = scroll_pos - sp;
++ break;
++ }
++ }
++
++ if (index == p->num)
++ {
++ if (p->num == 1)
++ {
++ /* did NOT go trough the "for" above */
++ offset = scroll_pos;
++ index = 1;
++ }
++ else
++ {
++ /* go all the way trough the "for" above, but still sp < scroll_pos */
++ offset = scroll_pos - sp;
++ index = p->num-1;
++ }
++ }
++
++ p->first = index;
++ p->first_offset = offset;
+ }
+ 
+ /* Calculate the size, in pixels, of the invisible columns/lines,
+@@ -101,10 +180,11 @@ void iupMatrixAuxGetVisibleCellDim(Ihandle* ih, int lin, int col, int* x, int* y
+ Depends on the first visible column/line.
+ -> m : choose will operate on lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
+ */
+-void iupMatrixAuxUpdateVisiblePos(Ihandle* ih, int m)
++void iupMatrixAuxUpdateScrollPos(Ihandle* ih, int m)
+ {
++ float pos;
++ int i, sb, scroll_pos;
+ char* POS;
+- int i, sb, visible_pos;
+ ImatLinColData *p;
+ 
+ if (m == IMAT_PROCESS_LIN)
+@@ -120,33 +200,44 @@ void iupMatrixAuxUpdateVisiblePos(Ihandle* ih, int m)
+ POS = "POSX";
+ }
+ 
+- visible_pos = 0;
+- for(i = 1; i < p->first; i++)
+- visible_pos += p->sizes[i];
++ /* "first" was changed, so update "last" and the scroll pos */
+ 
+- if (ih->data->canvas.sb & sb)
++ if (p->total_size <= p->visible_size)
+ {
+- float pos;
++ /* the matrix is fully visible */
++ p->first = 1;
++ p->first_offset = 0;
++ p->last = p->num==1? 1: p->num-1;
+ 
+- if (p->total_size)
+- {
+- while ((visible_pos + p->visible_size > p->total_size) && p->first>1)
+- {
+- /* invalid position, must recalculate first */
+- p->first--;
+- visible_pos -= p->sizes[p->first];
+- }
++ if (ih->data->canvas.sb & sb)
++ IupSetAttribute(ih, POS, "0");
+ 
+- pos = (float)visible_pos/(float)p->total_size;
+- }
+- else
+- pos = 0;
++ return;
++ }
++
++ /* must check if it is a valid position */
++ scroll_pos = 0;
++ for(i = 1; i < p->first; i++)
++ scroll_pos += p->sizes[i];
++ scroll_pos += p->first_offset;
++
++ if (scroll_pos + p->visible_size > p->total_size)
++ {
++ /* invalid condition, must recalculate so it is valid */
++ scroll_pos = p->total_size - p->visible_size;
+ 
+- iupMatrixAuxUpdateLast(p);
+- IupSetfAttribute(ih, POS, "%.5f", (double)pos);
++ /* position first and first_offset, according to scroll pos */
++ iupMatrixAuxAdjustFirstFromScrollPos(p, scroll_pos);
+ }
+- else
+- iupMatrixAuxUpdateLast(p);
++
++ pos = (float)scroll_pos/(float)p->total_size;
++
++ /* update last */
++ iupMatrixAuxUpdateLast(p);
++
++ /* update scroll pos */
++ if (ih->data->canvas.sb & sb)
++ IupSetfAttribute(ih, POS, "%g", (double)pos);
+ }
+ 
+ /* Calculate which is the last visible column/line of the matrix. 
+@@ -157,18 +248,24 @@ void iupMatrixAuxUpdateLast(ImatLinColData *p)
+ 
+ if (p->visible_size > 0)
+ {
+- /* Find which is the last column/line
++ /* Find which is the last column/line.
+ Start in the first visible and continue adding the widths
+- up to the visible size */
++ up to the visible size */
++ sum -= p->first_offset;
+ for(i = p->first; i < p->num; i++)
+ {
+- sum += p->sizes[i];
++ sum += p->sizes[i];
+ if(sum >= p->visible_size)
+ break;
+ }
+ 
+ if (i == p->num)
+- p->last = i-1;
++ {
++ if (p->num == 1)
++ p->last = 1;
++ else
++ p->last = p->num-1;
++ }
+ else
+ p->last = i;
+ }
+@@ -185,7 +282,7 @@ int iupMatrixAuxGetColumnWidth(Ihandle* ih, int col)
+ char* str = iupStrGetMemory(100);
+ char* value;
+ 
+- /* can only be called for valid columns */
++ /* can be called for invalid columns (col>numcol) */
+ 
+ sprintf(str, "WIDTH%d", col);
+ value = iupAttribGet(ih, str);
+@@ -219,7 +316,7 @@ int iupMatrixAuxGetColumnWidth(Ihandle* ih, int col)
+ width = max_width;
+ }
+ }
+- else if (ih->data->use_title_size)
++ else if (ih->data->use_title_size && (col>=0 && col<ih->data->columns.num))
+ {
+ char* title_value = iupMatrixCellGetValue(ih, 0, col);
+ if (title_value)
+@@ -257,7 +354,7 @@ int iupMatrixAuxGetLineHeight(Ihandle* ih, int lin)
+ char* str = iupStrGetMemory(100);
+ char* value;
+ 
+- /* can only be called for valid lines */
++ /* can be called for invalid lines (lin>numlin) */
+ 
+ sprintf(str, "HEIGHT%d", lin);
+ value = iupAttribGet(ih, str);
+@@ -291,7 +388,7 @@ int iupMatrixAuxGetLineHeight(Ihandle* ih, int lin)
+ height = max_height;
+ }
+ }
+- else if (ih->data->use_title_size)
++ else if (ih->data->use_title_size && (lin>=0 && lin<ih->data->lines.num))
+ {
+ char* title_value = iupMatrixCellGetValue(ih, lin, 0);
+ if (title_value && title_value[0])
+@@ -374,7 +471,7 @@ static void iMatrixAuxUpdateVisibleSize(Ihandle* ih, int m)
+ p->visible_size = p->total_size;
+ 
+ if (p->total_size)
+- IupSetfAttribute(ih, D, "%f", (double)p->visible_size/(double)p->total_size);
++ IupSetfAttribute(ih, D, "%g", (double)p->visible_size/(double)p->total_size);
+ else
+ IupSetAttribute(ih, D, "1.0");
+ }
+@@ -390,6 +487,7 @@ void iupMatrixAuxCalcSizes(Ihandle* ih)
+ /* when removing lines the first can be positioned after the last line */
+ if (ih->data->lines.first > ih->data->lines.num-1) 
+ {
++ ih->data->lines.first_offset = 0;
+ if (ih->data->lines.num==1)
+ ih->data->lines.first = 1;
+ else
+@@ -397,46 +495,50 @@ void iupMatrixAuxCalcSizes(Ihandle* ih)
+ }
+ if (ih->data->columns.first > ih->data->columns.num-1) 
+ {
++ ih->data->columns.first_offset = 0;
+ if (ih->data->columns.num == 1)
+ ih->data->columns.first = 1;
+ else
+ ih->data->columns.first = ih->data->columns.num-1;
+ }
+ 
+- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL);
+- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN);
++ /* make sure scroll pos is consistent */
++ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL);
++ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN);
+ 
+ ih->data->need_calcsize = 0;
+ }
+ 
+ int iupMatrixAuxGetLinColFromXY(Ihandle* ih, int x, int y, int* l, int* c)
+ {
+- int size, lin, col;
++ int x_col, y_col, lin, col;
+ 
+- size = ih->data->columns.sizes[0]; /* always visible when non zero */
+- if (x < size)
++ x_col = ih->data->columns.sizes[0]; /* always visible when non zero */
++ if (x < x_col)
+ col = 0; /* It is in the column of titles */
+ else
+ {
++ x_col -= ih->data->columns.first_offset;
+ for(col = ih->data->columns.first; col <= ih->data->columns.last; col++) /* for all visible columns */
+ {
+- size += ih->data->columns.sizes[col];
+- if (x < size)
++ x_col += ih->data->columns.sizes[col];
++ if (x < x_col)
+ break;
+ }
+ if (col > ih->data->columns.last)
+ col = -1;
+ }
+ 
+- size = ih->data->lines.sizes[0]; /* always visible when non zero */
+- if (y < size)
++ y_col = ih->data->lines.sizes[0]; /* always visible when non zero */
++ if (y < y_col)
+ lin = 0; /* It is in the line of titles */
+ else
+ {
++ y_col -= ih->data->lines.first_offset;
+ for(lin = ih->data->lines.first; lin <= ih->data->lines.last; lin++) /* for all visible lines */
+ {
+- size += ih->data->lines.sizes[lin];
+- if (y < size)
++ y_col += ih->data->lines.sizes[lin];
++ if (y < y_col)
+ break;
+ }
+ if(lin > ih->data->lines.last)
+diff --git a/iup/srccontrols/matrix/iupmat_aux.h b/iup/srccontrols/matrix/iupmat_aux.h
+index 296c1f5..01c77f1 100755
+--- a/iup/srccontrols/matrix/iupmat_aux.h
++++ b/iup/srccontrols/matrix/iupmat_aux.h
+@@ -12,19 +12,22 @@
+ extern "C" {
+ #endif
+ 
+-int iupMatrixAuxIsCellFullVisible(Ihandle* ih, int lin, int col);
++int iupMatrixAuxIsFullVisibleLast(ImatLinColData *p);
++int iupMatrixAuxIsCellStartVisible(Ihandle* ih, int lin, int col);
+ int iupMatrixAuxIsCellVisible(Ihandle* ih, int lin, int col);
+ void iupMatrixAuxGetVisibleCellDim (Ihandle* ih, int lin, int col, int* x, int* y, int* w, int* h);
+ 
+ void iupMatrixAuxCalcSizes(Ihandle* ih);
+ 
+-void iupMatrixAuxUpdateVisiblePos(Ihandle* ih, int m);
++void iupMatrixAuxAdjustFirstFromLast(ImatLinColData* p);
++void iupMatrixAuxAdjustFirstFromScrollPos(ImatLinColData* p, int scroll_pos);
++void iupMatrixAuxUpdateScrollPos(Ihandle* ih, int m);
+ void iupMatrixAuxUpdateLast(ImatLinColData *p);
+ 
+ int iupMatrixAuxGetColumnWidth(Ihandle* ih, int col);
+ int iupMatrixAuxGetLineHeight (Ihandle* ih, int lin);
+ 
+-int iupMatrixAuxGetLinColFromXY (Ihandle* ih, int x, int y, int* l, int* c);
++int iupMatrixAuxGetLinColFromXY (Ihandle* ih, int x, int y, int* l, int* c);
+ 
+ int iupMatrixAuxCallLeaveCellCb (Ihandle* ih);
+ void iupMatrixAuxCallEnterCellCb (Ihandle* ih);
+diff --git a/iup/srccontrols/matrix/iupmat_cd.h b/iup/srccontrols/matrix/iupmat_cd.h
+index 1a10f2b..beb616a 100755
+--- a/iup/srccontrols/matrix/iupmat_cd.h
++++ b/iup/srccontrols/matrix/iupmat_cd.h
+@@ -11,12 +11,12 @@
+ extern "C" {
+ #endif
+ 
+-#define IUPMAT_LINE(_ih,_x1,_y1,_x2,_y2) cdCanvasLine((_ih)->data->cddbuffer, (_x1), iupMatrixInvertYAxis(_ih, _y1), (_x2), iupMatrixInvertYAxis(_ih, _y2))
+-#define IUPMAT_VERTEX(_ih,_x,_y) cdCanvasVertex((_ih)->data->cddbuffer, (_x), iupMatrixInvertYAxis(_ih, _y))
+-#define IUPMAT_BOX(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasBox((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMatrixInvertYAxis(_ih, _ymin), iupMatrixInvertYAxis(_ih, _ymax))
+-#define IUPMAT_RECT(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasRect((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMatrixInvertYAxis(_ih, _ymin), iupMatrixInvertYAxis(_ih, _ymax))
+-#define IUPMAT_CLIPAREA(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasClipArea((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMatrixInvertYAxis(_ih, _ymin), iupMatrixInvertYAxis(_ih, _ymax))
+-#define IUPMAT_TEXT(_ih,_x,_y,_text) cdCanvasText((_ih)->data->cddbuffer, (_x), iupMatrixInvertYAxis(_ih, _y), (_text))
++#define iupMATRIX_LINE(_ih,_x1,_y1,_x2,_y2) cdCanvasLine((_ih)->data->cddbuffer, (_x1), iupMATRIX_INVERTYAXIS(_ih, _y1), (_x2), iupMATRIX_INVERTYAXIS(_ih, _y2))
++#define iupMATRIX_VERTEX(_ih,_x,_y) cdCanvasVertex((_ih)->data->cddbuffer, (_x), iupMATRIX_INVERTYAXIS(_ih, _y))
++#define iupMATRIX_BOX(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasBox((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMATRIX_INVERTYAXIS(_ih, _ymin), iupMATRIX_INVERTYAXIS(_ih, _ymax))
++#define iupMATRIX_RECT(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasRect((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMATRIX_INVERTYAXIS(_ih, _ymin), iupMATRIX_INVERTYAXIS(_ih, _ymax))
++#define iupMATRIX_CLIPAREA(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasClipArea((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMATRIX_INVERTYAXIS(_ih, _ymin), iupMATRIX_INVERTYAXIS(_ih, _ymax))
++#define iupMATRIX_TEXT(_ih,_x,_y,_text) cdCanvasText((_ih)->data->cddbuffer, (_x), iupMATRIX_INVERTYAXIS(_ih, _y), (_text))
+ 
+ #ifdef __cplusplus
+ }
+diff --git a/iup/srccontrols/matrix/iupmat_colres.c b/iup/srccontrols/matrix/iupmat_colres.c
+index d44b7df..79f389e 100755
+--- a/iup/srccontrols/matrix/iupmat_colres.c
++++ b/iup/srccontrols/matrix/iupmat_colres.c
+@@ -34,15 +34,17 @@
+ if so the resize is started */
+ int iupMatrixColResStart(Ihandle* ih, int x, int y)
+ {
+- if (ih->data->lines.sizes[0] && y < ih->data->lines.sizes[0] && iupAttribGetBoolean(ih, "RESIZEMATRIX"))
++ if (ih->data->lines.sizes[0] && 
++ y < ih->data->lines.sizes[0] && 
++ iupAttribGetBoolean(ih, "RESIZEMATRIX"))
+ {
+- int size, col;
++ int x_col, col;
+ 
+ /* Check if is the column of titles */
+- size = ih->data->columns.sizes[0];
+- if (abs(size-x) < IMAT_COLRES_TOL)
++ x_col = ih->data->columns.sizes[0];
++ if (abs(x_col-x) < IMAT_COLRES_TOL)
+ {
+- ih->data->colres_drag_col_start_x = 0;
++ ih->data->colres_drag_col_start_x = x;
+ ih->data->colres_dragging = 1;
+ ih->data->colres_drag_col_last_x = -1;
+ ih->data->colres_drag_col = 0;
+@@ -51,12 +53,13 @@ int iupMatrixColResStart(Ihandle* ih, int x, int y)
+ else
+ {
+ /* find the column */
++ x_col -= ih->data->columns.first_offset;
+ for(col = ih->data->columns.first; col <= ih->data->columns.last; col++)
+ {
+- ih->data->colres_drag_col_start_x = size;
+- size += ih->data->columns.sizes[col];
+- if (abs(size-x) < IMAT_COLRES_TOL)
++ x_col += ih->data->columns.sizes[col];
++ if (abs(x_col-x) < IMAT_COLRES_TOL)
+ {
++ ih->data->colres_drag_col_start_x = x;
+ ih->data->colres_dragging = 1;
+ ih->data->colres_drag_col_last_x = -1;
+ ih->data->colres_drag_col = col;
+@@ -71,7 +74,8 @@ int iupMatrixColResStart(Ihandle* ih, int x, int y)
+ void iupMatrixColResFinish(Ihandle* ih, int x)
+ {
+ char str[100];
+- int width = x - ih->data->colres_drag_col_start_x;
++ int delta = x - ih->data->colres_drag_col_start_x;
++ int width = ih->data->columns.sizes[ih->data->colres_drag_col] + delta;
+ if (width < 0)
+ width = 0;
+ 
+@@ -83,8 +87,8 @@ void iupMatrixColResFinish(Ihandle* ih, int x)
+ 
+ cdCanvasWriteMode(ih->data->cdcanvas, CD_XOR);
+ cdCanvasForeground(ih->data->cdcanvas, IMAT_RESIZE_COLOR); 
+- cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y1), 
+- ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y2));
++ cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y1), 
++ ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y2));
+ cdCanvasWriteMode(ih->data->cdcanvas, CD_REPLACE);
+ }
+ 
+@@ -106,7 +110,8 @@ void iupMatrixColResMove(Ihandle* ih, int x)
+ {
+ int y1, y2;
+ 
+- int width = x - ih->data->colres_drag_col_start_x;
++ int delta = x - ih->data->colres_drag_col_start_x;
++ int width = ih->data->columns.sizes[ih->data->colres_drag_col] + delta;
+ if (width < 0)
+ return;
+ 
+@@ -119,12 +124,12 @@ void iupMatrixColResMove(Ihandle* ih, int x)
+ /* If it is not the first time, move old line */
+ if (ih->data->colres_drag_col_last_x != -1)
+ {
+- cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y1), 
+- ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y2));
++ cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y1), 
++ ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y2));
+ }
+ 
+- cdCanvasLine(ih->data->cdcanvas, x, iupMatrixInvertYAxis(ih, y1), 
+- x, iupMatrixInvertYAxis(ih, y2));
++ cdCanvasLine(ih->data->cdcanvas, x, iupMATRIX_INVERTYAXIS(ih, y1), 
++ x, iupMATRIX_INVERTYAXIS(ih, y2));
+ 
+ ih->data->colres_drag_col_last_x = x;
+ cdCanvasWriteMode(ih->data->cdcanvas, CD_REPLACE);
+@@ -144,20 +149,23 @@ static void iMatrixColResResetMatrixCursor(Ihandle* ih)
+ /* Change the cursor when it passes over a group of the column titles. */
+ void iupMatrixColResCheckChangeCursor(Ihandle* ih, int x, int y)
+ {
+- if(ih->data->lines.sizes[0] && y < ih->data->lines.sizes[0] && iupAttribGetBoolean(ih, "RESIZEMATRIX"))
++ if(ih->data->lines.sizes[0] && 
++ y < ih->data->lines.sizes[0] && 
++ iupAttribGetBoolean(ih, "RESIZEMATRIX"))
+ {
+ /* It is in the column titles area and the resize mode is on */
+- int found = 0, size, col;
++ int found = 0, x_col, col;
+ 
+- size = ih->data->columns.sizes[0];
+- if (abs(size - x) < IMAT_COLRES_TOL)
++ x_col = ih->data->columns.sizes[0];
++ if (abs(x_col - x) < IMAT_COLRES_TOL)
+ found = 1; /* line titles */
+ else
+ {
++ x_col -= ih->data->columns.first_offset;
+ for(col = ih->data->columns.first; col <= ih->data->columns.last && !found; col++)
+ {
+- size += ih->data->columns.sizes[col];
+- if(abs(size - x) < IMAT_COLRES_TOL)
++ x_col += ih->data->columns.sizes[col];
++ if(abs(x_col - x) < IMAT_COLRES_TOL)
+ found = 1;
+ }
+ }
+@@ -168,7 +176,7 @@ void iupMatrixColResCheckChangeCursor(Ihandle* ih, int x, int y)
+ iupAttribStoreStr(ih, "_IUPMAT_CURSOR", IupGetAttribute(ih, "CURSOR"));
+ IupSetAttribute(ih, "CURSOR", "RESIZE_W");
+ }
+- else /* It is in the empty area after the last column */
++ else /* It is in the empty area after the last column, or inside a cell */
+ iMatrixColResResetMatrixCursor(ih); 
+ }
+ else
+diff --git a/iup/srccontrols/matrix/iupmat_def.h b/iup/srccontrols/matrix/iupmat_def.h
+index d45acde..225cc16 100755
+--- a/iup/srccontrols/matrix/iupmat_def.h
++++ b/iup/srccontrols/matrix/iupmat_def.h
+@@ -49,6 +49,7 @@ typedef struct _ImatLinColData
+ int num; /* Number of columns/lines in the matrix, default/minimum=1, always includes the title */
+ int num_alloc; /* Number of columns/lines allocated, default=5 */
+ 
++ int first_offset; /* scroll offset of the first visible column/line from right to left (or the invisible part of the first cell) */
+ int first; /* First visible column/line */
+ int last; /* Last visible column/line */
+ 
+@@ -84,7 +85,7 @@ struct _IcontrolData
+ 
+ /* attributes */
+ int mark_continuous, mark_mode, mark_multiple;
+- int checkframecolor;
++ int checkframecolor, hidden_text_marks;
+ 
+ /* Mouse and Keyboard AUX */
+ int leftpressed; /* left mouse button is pressed */
+@@ -92,8 +93,8 @@ struct _IcontrolData
+ 
+ /* ColRes AUX */
+ int colres_dragging, /* indicates if it is being made a column resize */
+- colres_drag_col, /* column being resized */
+- colres_drag_col_start_x, /* position of the start of the column being resized */
++ colres_drag_col, /* column being resized, handler is at right of the column */
++ colres_drag_col_start_x, /* handler start position */
+ colres_drag_col_last_x; /* previous position */
+ 
+ /* Mark AUX */
+@@ -107,12 +108,14 @@ struct _IcontrolData
+ IFniiIII fgcolor_cb;
+ IFniiIII bgcolor_cb;
+ char *bgcolor, *bgcolor_parent, *fgcolor, *font; /* not need to free */
++
++ int clip_x1, clip_x2, clip_y1, clip_y2; /* aux for cell clipping */
+ };
+ 
+ 
+ int iupMatrixIsValid(Ihandle* ih, int check_cells);
+ 
+-#define iupMatrixInvertYAxis(_ih, _y) ((_ih)->data->h-1 - (_y))
++#define iupMATRIX_INVERTYAXIS(_ih, _y) ((_ih)->data->h-1 - (_y))
+ 
+ 
+ #ifdef __cplusplus
+diff --git a/iup/srccontrols/matrix/iupmat_draw.c b/iup/srccontrols/matrix/iupmat_draw.c
+index 7c53fb5..ec3df59 100755
+--- a/iup/srccontrols/matrix/iupmat_draw.c
++++ b/iup/srccontrols/matrix/iupmat_draw.c
+@@ -47,13 +47,38 @@
+ #define IMAT_COMBOBOX_W 16
+ 
+ 
+-typedef int (*IFniiiiiiC)(Ihandle *h, int lin, int col,int x1, int x2, int y1, int y2, cdCanvas* cnv);
++typedef int (*IFniiiiiiC)(Ihandle *h, int lin, int col, int x1, int x2, int y1, int y2, cdCanvas* cnv);
+ 
+ 
+ /**************************************************************************/
+ /* Private functions */
+ /**************************************************************************/
+ 
++static void iMatrixDrawSetCellClipping(Ihandle* ih, int x1, int x2, int y1, int y2)
++{
++ int old_clip = cdCanvasClip(ih->data->cddbuffer, CD_QUERY);
++ if (old_clip == CD_CLIPAREA)
++ {
++ cdCanvasGetClipArea(ih->data->cddbuffer, &(ih->data->clip_x1), &(ih->data->clip_x2), &(ih->data->clip_y1), &(ih->data->clip_y2));
++ y1 = iupMATRIX_INVERTYAXIS(ih, y1);
++ y2 = iupMATRIX_INVERTYAXIS(ih, y2);
++ if (x1 > x2) {int tmp = x1; x1 = x2; x2 = tmp;}
++ if (y1 > y2) {int tmp = y1; y1 = y2; y2 = tmp;}
++ if (x1 < ih->data->clip_x1) x1 = ih->data->clip_x1;
++ if (x2 > ih->data->clip_x2) x2 = ih->data->clip_x2;
++ if (y1 < ih->data->clip_y1) y1 = ih->data->clip_y1;
++ if (y2 > ih->data->clip_y2) y2 = ih->data->clip_y2;
++ cdCanvasClipArea(ih->data->cddbuffer, x1, x2, y1, y2);
++ cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);
++ }
++}
++
++static void iMatrixDrawResetCellClipping(Ihandle* ih)
++{
++ int old_clip = cdCanvasClip(ih->data->cddbuffer, CD_QUERY);
++ if (old_clip == CD_CLIPAREA)
++ cdCanvasClipArea(ih->data->cddbuffer, ih->data->clip_x1, ih->data->clip_x2, ih->data->clip_y1, ih->data->clip_y2);
++}
+ 
+ static int iMatrixDrawGetColAlignment(Ihandle* ih, int col, char* str)
+ {
+@@ -61,6 +86,8 @@ static int iMatrixDrawGetColAlignment(Ihandle* ih, int col, char* str)
+ sprintf(str, "ALIGNMENT%d", col);
+ align = iupAttribGet(ih, str);
+ if (!align)
++ align = iupAttribGet(ih, "ALIGNMENT");
++ if (!align)
+ {
+ if (col == 0)
+ return IMAT_T_LEFT;
+@@ -80,16 +107,15 @@ static int iMatrixDrawCallDrawCB(Ihandle* ih, int lin, int col, int x1, int x2,
+ int ret;
+ cdCanvas* old_cnv;
+ 
+- IUPMAT_CLIPAREA(ih, x1, x2, y1, y2);
+- cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);
++ iMatrixDrawSetCellClipping(ih, x1, x2, y1, y2);
+ 
+ old_cnv = cdActiveCanvas();
+ if (old_cnv != ih->data->cddbuffer) /* backward compatibility code */
+ cdActivate(ih->data->cddbuffer);
+ 
+- ret = draw_cb(ih, lin, col, x1, x2, iupMatrixInvertYAxis(ih, y1), iupMatrixInvertYAxis(ih, y2), ih->data->cddbuffer);
++ ret = draw_cb(ih, lin, col, x1, x2, iupMATRIX_INVERTYAXIS(ih, y1), iupMATRIX_INVERTYAXIS(ih, y2), ih->data->cddbuffer);
+ 
+- cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);
++ iMatrixDrawResetCellClipping(ih);
+ 
+ if (old_cnv && old_cnv != ih->data->cddbuffer) /* backward compatibility code */
+ {
+@@ -165,28 +191,36 @@ static void iMatrixDrawFrameHorizLineCell(Ihandle* ih, int lin, int col, int x1,
+ {
+ if (ih->data->checkframecolor && (ih->data->callback_mode || ih->data->cells[lin][col].flags & IUPMAT_FRAMEHCOLOR))
+ {
++ char* color;
+ unsigned char r,g,b;
+ sprintf(str, "FRAMEHORIZCOLOR%d:%d", lin, col);
+- if (iupStrToRGB(iupAttribGet(ih, str), &r, &g, &b))
++ color = iupAttribGet(ih, str);
++ if (iupStrEqual(color, "BGCOLOR"))
++ return;
++ if (iupStrToRGB(color, &r, &g, &b))
+ framecolor = cdEncodeColor(r, g, b);
+ }
+ 
+ cdCanvasForeground(ih->data->cddbuffer, framecolor);
+- IUPMAT_LINE(ih, x1, y, x2, y); /* bottom horizontal line */
++ iupMATRIX_LINE(ih, x1, y, x2, y); /* bottom horizontal line */
+ }
+ 
+ static void iMatrixDrawFrameVertLineCell(Ihandle* ih, int lin, int col, int x, int y1, int y2, long framecolor, char* str)
+ {
+ if (ih->data->checkframecolor && (ih->data->callback_mode || ih->data->cells[lin][col].flags & IUPMAT_FRAMEVCOLOR))
+ {
++ char* color;
+ unsigned char r,g,b;
+ sprintf(str, "FRAMEVERTCOLOR%d:%d", lin, col);
+- if (iupStrToRGB(iupAttribGet(ih, str), &r, &g, &b))
++ color = iupAttribGet(ih, str);
++ if (iupStrEqual(color, "BGCOLOR"))
++ return;
++ if (iupStrToRGB(color, &r, &g, &b))
+ framecolor = cdEncodeColor(r, g, b);
+ }
+ 
+ cdCanvasForeground(ih->data->cddbuffer, framecolor);
+- IUPMAT_LINE(ih, x, y1, x, y2); /* right vertical line */
++ iupMATRIX_LINE(ih, x, y1, x, y2); /* right vertical line */
+ }
+ 
+ static void iMatrixDrawFrameRectTitle(Ihandle* ih, int lin, int col, int x1, int x2, int y1, int y2, long framecolor, char* str)
+@@ -195,37 +229,43 @@ static void iMatrixDrawFrameRectTitle(Ihandle* ih, int lin, int col, int x1, int
+ x2 -= IMAT_FRAME_W/2;
+ y2 -= IMAT_FRAME_H/2;
+ 
+- iMatrixDrawFrameVertLineCell(ih, lin, col, x2, y1, y2, framecolor, str); /* right vertical line */
++ /* right vertical line */
++ iMatrixDrawFrameVertLineCell(ih, lin, col, x2, y1, y2, framecolor, str); 
+ if (col==0)
+ {
+- IUPMAT_LINE(ih, x1, y1, x1, y2); /* left vertical line, reuse Foreground */
++ /* left vertical line, reuse Foreground */
++ iupMATRIX_LINE(ih, x1, y1, x1, y2); 
+ x1++;
+ }
+ else if (col==1 && ih->data->columns.sizes[0] == 0)
+ {
+ /* If does not have line titles then draw the left line of the cell frame */
+- IUPMAT_LINE(ih, x1, y1, x1, y2-1);
++ iupMATRIX_LINE(ih, x1, y1, x1, y2-1);
+ x1++;
+ }
+ 
+- cdCanvasForeground(ih->data->cddbuffer, CD_WHITE); /* Titles have a white line near the frame */
+- IUPMAT_LINE(ih, x1, y1+1, x1, y2-1);
++ /* Titles have a white line near the frame, at left */
++ cdCanvasForeground(ih->data->cddbuffer, CD_WHITE); 
++ iupMATRIX_LINE(ih, x1, y1+1, x1, y2-1);
+ 
+- iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2, y2, framecolor, str); /* bottom horizontal line */
++ /* bottom horizontal line */
++ iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2, y2, framecolor, str); 
+ if (lin==0)
+ {
+- IUPMAT_LINE(ih, x1, y1, x2, y1); /* top horizontal line, reuse Foreground */
++ /* top horizontal line, reuse Foreground */
++ iupMATRIX_LINE(ih, x1, y1, x2, y1); 
+ y1++;
+ }
+ else if (lin==1 && ih->data->lines.sizes[0] == 0)
+ {
+ /* If does not have column titles then draw the top line of the cell frame */
+- IUPMAT_LINE(ih, x1, y1, x2-1, y1);
++ iupMATRIX_LINE(ih, x1, y1, x2-1, y1);
+ y1++;
+ }
+ 
+- cdCanvasForeground(ih->data->cddbuffer, CD_WHITE); /* Titles have a white line near the frame */
+- IUPMAT_LINE(ih, x1, y1, x2-1, y1);
++ /* Titles have a white line near the frame, at top */
++ cdCanvasForeground(ih->data->cddbuffer, CD_WHITE); 
++ iupMATRIX_LINE(ih, x1, y1, x2-1, y1);
+ }
+ 
+ static void iMatrixDrawFrameRectCell(Ihandle* ih, int lin, int col, int x1, int x2, int y1, int y2, long framecolor, char* str)
+@@ -233,20 +273,20 @@ static void iMatrixDrawFrameRectCell(Ihandle* ih, int lin, int col, int x1, int
+ if (col==1 && ih->data->columns.sizes[0] == 0)
+ {
+ /* If does not have line titles then draw the left line of the cell frame */
+- iMatrixDrawFrameVertLineCell(ih, lin, col, x1, y1, y2-1-1, framecolor, str);
++ iMatrixDrawFrameVertLineCell(ih, lin, col, x1, y1, y2-1, framecolor, str);
+ }
+ 
+ if (lin==1 && ih->data->lines.sizes[0] == 0)
+ {
+ /* If does not have column titles then draw the top line of the cell frame */
+- iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2-1-1, y1, framecolor, str);
++ iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2-1, y1, framecolor, str);
+ }
+ 
+ /* bottom line */
+ iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2-1, y2-1, framecolor, str);
+ 
+ /* rigth line */
+- iMatrixDrawFrameVertLineCell(ih, lin, col, x2-1, y1, y2-1, framecolor, str);
++ iMatrixDrawFrameVertLineCell(ih, lin, col, x2-1, y1, y2-2, framecolor, str);
+ }
+ 
+ static int iMatrixDrawSortSign(Ihandle* ih, int x2, int y1, int y2, int col, int active, char* str)
+@@ -274,15 +314,15 @@ static int iMatrixDrawSortSign(Ihandle* ih, int x2, int y1, int y2, int col, int
+ 
+ if (iupStrEqualNoCase(sort, "DOWN"))
+ {
+- IUPMAT_VERTEX(ih, x2 - 5, yc + 2);
+- IUPMAT_VERTEX(ih, x2 - 1, yc - 2);
+- IUPMAT_VERTEX(ih, x2 - 9, yc - 2);
++ iupMATRIX_VERTEX(ih, x2 - 5, yc + 2);
++ iupMATRIX_VERTEX(ih, x2 - 1, yc - 2);
++ iupMATRIX_VERTEX(ih, x2 - 9, yc - 2);
+ }
+ else
+ {
+- IUPMAT_VERTEX(ih, x2 - 1, yc + 2);
+- IUPMAT_VERTEX(ih, x2 - 9, yc + 2);
+- IUPMAT_VERTEX(ih, x2 - 5, yc - 2);
++ iupMATRIX_VERTEX(ih, x2 - 1, yc + 2);
++ iupMATRIX_VERTEX(ih, x2 - 9, yc + 2);
++ iupMATRIX_VERTEX(ih, x2 - 5, yc - 2);
+ }
+ 
+ cdCanvasEnd(ih->data->cddbuffer);
+@@ -301,20 +341,20 @@ static void iMatrixDrawComboFeedback(Ihandle* ih, int x2, int y1, int y2, int ac
+ 
+ /* feedback background */
+ iMatrixDrawSetBgColor(ih, 0, 0, 0, active);
+- IUPMAT_BOX(ih, x1, x2, y1, y2);
++ iupMATRIX_BOX(ih, x1, x2, y1, y2);
+ 
+ /* feedback frame */
+ cdCanvasForeground(ih->data->cddbuffer, framecolor);
+- IUPMAT_RECT(ih, x1, x2, y1, y2);
++ iupMATRIX_RECT(ih, x1, x2, y1, y2);
+ 
+ /* feedback arrow */
+ xh2 = x2 - IMAT_COMBOBOX_W / 2;
+ yh2 = y2 - (y2 - y1) / 2;
+ 
+ cdCanvasBegin(ih->data->cddbuffer, CD_FILL);
+- IUPMAT_VERTEX(ih, xh2, yh2 + 3);
+- IUPMAT_VERTEX(ih, xh2 + 4, yh2 - 1);
+- IUPMAT_VERTEX(ih, xh2 - 4, yh2 - 1);
++ iupMATRIX_VERTEX(ih, xh2, yh2 + 3);
++ iupMATRIX_VERTEX(ih, xh2 + 4, yh2 - 1);
++ iupMATRIX_VERTEX(ih, xh2 - 4, yh2 - 1);
+ cdCanvasEnd(ih->data->cddbuffer);
+ }
+ 
+@@ -325,7 +365,7 @@ static void iMatrixDrawBackground(Ihandle* ih, int x1, int x2, int y1, int y2, i
+ y2 -= IMAT_FRAME_H/2;
+ 
+ iMatrixDrawSetBgColor(ih, lin, col, marked, active);
+- IUPMAT_BOX(ih, x1, x2, y1, y2);
++ iupMATRIX_BOX(ih, x1, x2, y1, y2);
+ }
+ 
+ /* Put the cell contents in the screen, using the specified color and alignment.
+@@ -372,7 +412,7 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in
+ if (text && *text)
+ {
+ int num_line, line_height, total_height;
+- int charheight, ypos;
++ int charheight, ypos, hidden_text_marks = 0;
+ 
+ num_line = iupStrLineCount(text);
+ iupdrvFontGetCharSize(ih, NULL, &charheight);
+@@ -380,12 +420,18 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in
+ line_height = charheight;
+ total_height = (line_height + IMAT_PADDING_H/2) * num_line - IMAT_PADDING_H/2 - IMAT_FRAME_H/2;
+ 
+- if (lin==0)
++ if (lin==0 || ih->data->hidden_text_marks)
+ {
+ int text_w;
+ iupdrvFontGetMultiLineStringSize(ih, text, &text_w, NULL);
+ if (text_w > x2 - x1 + 1 - IMAT_PADDING_W - IMAT_FRAME_W)
+- alignment = IMAT_T_LEFT;
++ {
++ if (lin == 0)
++ alignment = IMAT_T_LEFT;
++
++ if (ih->data->hidden_text_marks)
++ hidden_text_marks = 1;
++ }
+ }
+ 
+ /* Set the color used to draw the text */
+@@ -395,8 +441,13 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in
+ iMatrixDrawSetFgColor(ih, lin, col, marked);
+ 
+ /* Set the clip area to the cell region informed, the text maybe greatter than the cell */
+- IUPMAT_CLIPAREA(ih, x1, x2, y1, y2);
+- cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);
++ if (hidden_text_marks)
++ {
++ int crop = iupdrvFontGetStringWidth(ih, "...") + 2;
++ iMatrixDrawSetCellClipping(ih, x1, x2-crop, y1, y2);
++ }
++ else
++ iMatrixDrawSetCellClipping(ih, x1, x2, y1, y2);
+ 
+ cdCanvasNativeFont(ih->data->cddbuffer, iupMatrixGetFont(ih, lin, col));
+ 
+@@ -417,11 +468,11 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in
+ 
+ /* Put the text */
+ if (alignment == IMAT_T_CENTER)
+- IUPMAT_TEXT(ih, (x1 + x2) / 2, ypos, text);
++ iupMATRIX_TEXT(ih, (x1 + x2) / 2, ypos, text);
+ else if(alignment == IMAT_T_LEFT)
+- IUPMAT_TEXT(ih, x1, ypos, text);
++ iupMATRIX_TEXT(ih, x1, ypos, text);
+ else
+- IUPMAT_TEXT(ih, x2, ypos, text);
++ iupMATRIX_TEXT(ih, x2, ypos, text);
+ }
+ else
+ {
+@@ -441,11 +492,11 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in
+ 
+ /* Draw the text */
+ if(alignment == IMAT_T_CENTER)
+- IUPMAT_TEXT(ih, (x1 + x2) / 2, ypos, p);
++ iupMATRIX_TEXT(ih, (x1 + x2) / 2, ypos, p);
+ else if(alignment == IMAT_T_LEFT)
+- IUPMAT_TEXT(ih, x1, ypos, p);
++ iupMATRIX_TEXT(ih, x1, ypos, p);
+ else
+- IUPMAT_TEXT(ih, x2, ypos, p);
++ iupMATRIX_TEXT(ih, x2, ypos, p);
+ 
+ /* Advance the string */
+ if (q) p = q + 1;
+@@ -457,7 +508,15 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in
+ free(newtext);
+ }
+ 
+- cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);
++ iMatrixDrawResetCellClipping(ih);
++
++ if (hidden_text_marks)
++ {
++ cdCanvasTextAlignment(ih->data->cddbuffer, CD_EAST);
++ ypos = (int)((y1 + y2) / 2.0 - 0.5);
++ iupMATRIX_TEXT(ih, x2+IMAT_PADDING_W/2, ypos, "...");
++ }
++
+ }
+ }
+ 
+@@ -522,7 +581,7 @@ static void iMatrixDrawFocus(Ihandle* ih)
+ if (ih->data->lines.focus_cell == 1 && ih->data->lines.sizes[0] == 0)
+ y1++;
+ 
+- cdIupDrawFocusRect(ih, ih->data->cdcanvas, x1, iupMatrixInvertYAxis(ih, y1), x2, iupMatrixInvertYAxis(ih, y2));
++ cdIupDrawFocusRect(ih, ih->data->cdcanvas, x1, iupMATRIX_INVERTYAXIS(ih, y1), x2, iupMATRIX_INVERTYAXIS(ih, y2));
+ }
+ 
+ 
+@@ -560,6 +619,11 @@ void iupMatrixDrawLineTitle(Ihandle* ih, int lin1, int lin2)
+ x2 = ih->data->columns.sizes[0];
+ 
+ y1 = ih->data->lines.sizes[0];
++
++ iupMATRIX_CLIPAREA(ih, x1, x2, y1, ih->data->h-1);
++ cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);
++
++ y1 -= ih->data->lines.first_offset;
+ for(lin = ih->data->lines.first; lin < lin1; lin++)
+ y1 += ih->data->lines.sizes[lin];
+ 
+@@ -592,6 +656,8 @@ void iupMatrixDrawLineTitle(Ihandle* ih, int lin1, int lin2)
+ 
+ y1 = y2;
+ }
++
++ cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);
+ }
+ 
+ /* Draw the column titles, visible, between col and lastcol, include it. 
+@@ -623,6 +689,11 @@ void iupMatrixDrawColumnTitle(Ihandle* ih, int col1, int col2)
+ y2 = ih->data->lines.sizes[0];
+ 
+ x1 = ih->data->columns.sizes[0];
++
++ iupMATRIX_CLIPAREA(ih, x1, ih->data->w-1, y1, y2);
++ cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);
++
++ x1 -= ih->data->columns.first_offset;
+ for(col = ih->data->columns.first; col < col1; col++)
+ x1 += ih->data->columns.sizes[col];
+ 
+@@ -657,6 +728,8 @@ void iupMatrixDrawColumnTitle(Ihandle* ih, int col1, int col2)
+ 
+ x1 = x2;
+ }
++
++ cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);
+ }
+ 
+ /* Redraw a block of cells of the matrix. Handle marked cells, change
+@@ -673,13 +746,11 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
+ IFnii dropcheck_cb;
+ IFniiiiiiC draw_cb;
+ 
+- x1 = 0;
+ x2 = ih->data->w-1;
+- y1 = 0;
+ y2 = ih->data->h-1;
+ 
+ old_x2 = x2;
+- old_y1 = y1;
++ old_y1 = 0;
+ old_y2 = y2;
+ 
+ if (col1 > ih->data->columns.last ||
+@@ -697,8 +768,14 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
+ if (lin2 > ih->data->lines.last)
+ lin2 = ih->data->lines.last;
+ 
++ x1 = ih->data->columns.sizes[0];
++ y1 = ih->data->lines.sizes[0];
++
++ iupMATRIX_CLIPAREA(ih, x1, x2, y1, y2);
++ cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF); /* wait for background */
++
+ /* Find the initial position of the first column */
+- x1 += ih->data->columns.sizes[0];
++ x1 -= ih->data->columns.first_offset;
+ for(col = ih->data->columns.first; col < col1; col++)
+ x1 += ih->data->columns.sizes[col];
+ 
+@@ -708,7 +785,7 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
+ x2 += ih->data->columns.sizes[col];
+ 
+ /* Find the initial position of the first line */
+- y1 += ih->data->lines.sizes[0];
++ y1 -= ih->data->lines.first_offset;
+ for(lin = ih->data->lines.first; lin < lin1; lin++)
+ y1 += ih->data->lines.sizes[lin];
+ 
+@@ -724,7 +801,7 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
+ 
+ /* If it was drawn until the last column and remains space in the right of it,
+ then delete this area with the the background color. */
+- IUPMAT_BOX(ih, x2, old_x2, old_y1, old_y2);
++ iupMATRIX_BOX(ih, x2, old_x2, old_y1, old_y2);
+ }
+ 
+ if ((lin2 == ih->data->lines.num-1) && (old_y2 > y2))
+@@ -735,9 +812,12 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
+ 
+ /* If it was drawn until the last line visible and remains space below it,
+ then delete this area with the the background color. */
+- IUPMAT_BOX(ih, 0, old_x2, y2, old_y2);
++ iupMATRIX_BOX(ih, 0, old_x2, y2, old_y2);
+ }
+ 
++ /* after the background */
++ cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);
++
+ /***** Draw the cell values and frame */
+ old_y1 = y1;
+ framecolor = cdIupConvertColor(iupAttribGetStr(ih, "FRAMECOLOR"));
+@@ -775,7 +855,7 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
+ 
+ if (dropcheck_cb && dropcheck_cb(ih, lin, col) == IUP_DEFAULT)
+ {
+- drop = IMAT_COMBOBOX_W;
++ drop = IMAT_COMBOBOX_W+IMAT_PADDING_W/2;
+ iMatrixDrawComboFeedback(ih, x2, y1, y2, active, framecolor);
+ }
+ 
+@@ -788,6 +868,8 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)
+ x1 = x2;
+ y1 = old_y1; /* must reset also y */
+ }
++
++ cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);
+ }
+ 
+ void iupMatrixDraw(Ihandle* ih, int update)
+diff --git a/iup/srccontrols/matrix/iupmat_edit.c b/iup/srccontrols/matrix/iupmat_edit.c
+index a7e0a74..551baed 100755
+--- a/iup/srccontrols/matrix/iupmat_edit.c
++++ b/iup/srccontrols/matrix/iupmat_edit.c
+@@ -67,7 +67,7 @@ static int iMatrixEditDropDownAction_CB(Ihandle* ih, char* t, int i, int v)
+ if (ret == IUP_CONTINUE)
+ {
+ iupMatrixEditHide(ih_matrix);
+- iupMatrixDrawUpdate(ih);
++ iupMatrixDrawUpdate(ih_matrix);
+ }
+ }
+ 
+@@ -137,13 +137,31 @@ static int iMatrixEditCancel(Ihandle* ih, int focus, int update, int ignore)
+ return IUP_DEFAULT;
+ }
+ 
++static int iMatrixEditDropDown_CB(Ihandle* ih, int state)
++{
++ /* In Motif if DROPDOWN=YES then when the dropdown button is clicked 
++ the list looses its focus and when the dropped list is closed 
++ the list regain the focus, also when that happen if the list looses its focus 
++ to another control the kill focus callback is not called. */
++ Ihandle* ih_matrix = ih->parent;
++ if (state == 1)
++ iupAttribSetStr(ih_matrix, "_IUPMAT_DROPDOWN", "1");
++
++ return IUP_DEFAULT;
++}
++
+ static int iMatrixEditKillFocus_CB(Ihandle* ih)
+ {
+ Ihandle* ih_matrix = ih->parent;
+- if (iupStrEqualNoCase(IupGetGlobal("DRIVER"), "Motif"))
++ if (IupGetGlobal("MOTIFVERSION"))
+ {
+- if (iupAttribGet(ih_matrix, "_IUPMAT_DOUBLE_CLICK"))
++ if (iupAttribGet(ih_matrix, "_IUPMAT_DROPDOWN") || /* from iMatrixEditDropDown_CB, in Motif */
++ iupAttribGet(ih_matrix, "_IUPMAT_DOUBLECLICK")) /* from iMatrixMouseLeftPress, in Motif */
++ {
++ iupAttribSetStr(ih_matrix, "_IUPMAT_DOUBLECLICK", NULL);
++ iupAttribSetStr(ih_matrix, "_IUPMAT_DROPDOWN", NULL);
+ return IUP_DEFAULT;
++ }
+ }
+ 
+ iupMatrixEditForceHidden(ih_matrix);
+@@ -200,7 +218,7 @@ int iupMatrixEditShow(Ihandle* ih)
+ 
+ /* position the cell to make it visible */
+ /* If the focus is not visible, a scroll is done for that the focus to be visible */
+- if (!iupMatrixAuxIsCellFullVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell))
++ if (!iupMatrixAuxIsCellStartVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell))
+ iupMatrixScrollToVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell);
+ 
+ /* set attributes */
+@@ -235,7 +253,7 @@ int iupMatrixEditShow(Ihandle* ih)
+ ih->data->datah->y = y;
+ if (IupGetGlobal("GTKVERSION"))
+ {
+- /* In GTK, IupCanvas is not the actual container of the IupText/IupList */
++ /* In GTK, IupCanvas is NOT the actual container of the IupText/IupList */
+ ih->data->datah->x += ih->x;
+ ih->data->datah->y += ih->y;
+ }
+@@ -366,7 +384,7 @@ static int iMatrixEditTextKeyAny_CB(Ihandle* ih, int c)
+ 
+ if (iupMatrixAuxCallLeaveCellCb(ih_matrix) != IUP_IGNORE)
+ {
+- iupMatrixScrollKeyCr(ih_matrix);
++ iupMATRIX_ScrollKeyCr(ih_matrix);
+ iupMatrixAuxCallEnterCellCb(ih_matrix);
+ }
+ iupMatrixDrawUpdate(ih_matrix);
+@@ -399,7 +417,7 @@ static int iMatrixEditDropDownKeyAny_CB(Ihandle* ih, int c)
+ {
+ if (iupMatrixAuxCallLeaveCellCb(ih_matrix) != IUP_IGNORE)
+ {
+- iupMatrixScrollKeyCr(ih_matrix);
++ iupMATRIX_ScrollKeyCr(ih_matrix);
+ iupMatrixAuxCallEnterCellCb(ih_matrix);
+ }
+ iupMatrixDrawUpdate(ih_matrix);
+@@ -440,6 +458,9 @@ void iupMatrixEditCreate(Ihandle* ih)
+ ih->data->droph = IupList(NULL);
+ iupChildTreeAppend(ih, ih->data->droph);
+ 
++ if (IupGetGlobal("MOTIFVERSION"))
++ IupSetCallback(ih->data->droph, "DROPDOWN_CB", (Icallback)iMatrixEditDropDown_CB);
++
+ IupSetCallback(ih->data->droph, "ACTION", (Icallback)iMatrixEditDropDownAction_CB);
+ IupSetCallback(ih->data->droph, "KILLFOCUS_CB", (Icallback)iMatrixEditKillFocus_CB);
+ IupSetCallback(ih->data->droph, "K_ANY", (Icallback)iMatrixEditDropDownKeyAny_CB);
+diff --git a/iup/srccontrols/matrix/iupmat_focus.c b/iup/srccontrols/matrix/iupmat_focus.c
+index 3c000f8..0cf680d 100755
+--- a/iup/srccontrols/matrix/iupmat_focus.c
++++ b/iup/srccontrols/matrix/iupmat_focus.c
+@@ -35,13 +35,11 @@ int iupMatrixFocus_CB(Ihandle* ih, int focus)
+ if (!iupMatrixIsValid(ih, 1))
+ return IUP_DEFAULT;
+ 
+- if (iupStrEqualNoCase(IupGetGlobal("DRIVER"), "Motif"))
++ if (IupGetGlobal("MOTIFVERSION"))
+ {
+- if (focus && iupAttribGet(ih, "_IUPMAT_DOUBLE_CLICK"))
+- {
+- iupAttribSetStr(ih, "_IUPMAT_DOUBLE_CLICK", NULL);
++ if (iupAttribGet(ih, "_IUPMAT_DROPDOWN") || /* from iMatrixEditDropDown_CB, in Motif */
++ iupAttribGet(ih, "_IUPMAT_DOUBLECLICK")) /* from iMatrixMouseLeftPress, in Motif */
+ return IUP_DEFAULT;
+- }
+ }
+ 
+ ih->data->has_focus = focus;
+diff --git a/iup/srccontrols/matrix/iupmat_getset.c b/iup/srccontrols/matrix/iupmat_getset.c
+index 34947b6..4424948 100755
+--- a/iup/srccontrols/matrix/iupmat_getset.c
++++ b/iup/srccontrols/matrix/iupmat_getset.c
+@@ -313,7 +313,7 @@ char* iupMatrixGetFont(Ihandle* ih, int lin, int col)
+ return font;
+ }
+ 
+-char *iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels)
++char *iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels_unit)
+ {
+ char* str;
+ int size;
+@@ -342,7 +342,7 @@ char *iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels)
+ else
+ size -= IMAT_PADDING_H + IMAT_FRAME_H;
+ 
+- if (!pixels)
++ if (!pixels_unit)
+ {
+ int charwidth, charheight;
+ iupdrvFontGetCharSize(ih, &charwidth, &charheight);
+diff --git a/iup/srccontrols/matrix/iupmat_getset.h b/iup/srccontrols/matrix/iupmat_getset.h
+index 9ae3d07..f26e01e 100755
+--- a/iup/srccontrols/matrix/iupmat_getset.h
++++ b/iup/srccontrols/matrix/iupmat_getset.h
+@@ -26,7 +26,7 @@ void iupMatrixGetFgRGB(Ihandle* ih, int lin, int col, unsigned char *r, unsigned
+ 
+ void iupMatrixCellUpdateValue(Ihandle* ih);
+ 
+-char* iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels);
++char* iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels_unit);
+ 
+ int iupMatrixCheckCellPos(Ihandle* ih, int lin, int col);
+ 
+diff --git a/iup/srccontrols/matrix/iupmat_key.c b/iup/srccontrols/matrix/iupmat_key.c
+index ae9ed55..4824438 100755
+--- a/iup/srccontrols/matrix/iupmat_key.c
++++ b/iup/srccontrols/matrix/iupmat_key.c
+@@ -37,7 +37,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
+ int ret = IUP_IGNORE; /* default for processed keys */
+ 
+ /* If the focus is not visible, a scroll is done for that the focus to be visible */
+- if (!iupMatrixAuxIsCellFullVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell))
++ if (!iupMatrixAuxIsCellStartVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell))
+ iupMatrixScrollToVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell);
+ 
+ switch (c)
+@@ -47,7 +47,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
+ case K_HOME:
+ if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
+ break;
+- iupMatrixScrollKeyHome(ih);
++ iupMATRIX_ScrollKeyHome(ih);
+ ih->data->homekeycount++;
+ iupMatrixAuxCallEnterCellCb(ih);
+ break;
+@@ -57,7 +57,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
+ case K_END:
+ if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
+ break;
+- iupMatrixScrollKeyEnd(ih);
++ iupMATRIX_ScrollKeyEnd(ih);
+ ih->data->endkeycount++;
+ iupMatrixAuxCallEnterCellCb(ih);
+ break;
+@@ -71,7 +71,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
+ case K_LEFT:
+ if (iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
+ break;
+- iupMatrixScrollKeyLeft(ih);
++ iupMATRIX_ScrollKeyLeft(ih);
+ iupMatrixAuxCallEnterCellCb(ih);
+ break;
+ 
+@@ -80,7 +80,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
+ case K_RIGHT:
+ if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
+ break;
+- iupMatrixScrollKeyRight(ih);
++ iupMATRIX_ScrollKeyRight(ih);
+ iupMatrixAuxCallEnterCellCb(ih);
+ break;
+ 
+@@ -89,7 +89,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
+ case K_UP:
+ if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
+ break;
+- iupMatrixScrollKeyUp(ih);
++ iupMATRIX_ScrollKeyUp(ih);
+ iupMatrixAuxCallEnterCellCb(ih);
+ break ;
+ 
+@@ -98,7 +98,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
+ case K_DOWN:
+ if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
+ break;
+- iupMatrixScrollKeyDown(ih);
++ iupMATRIX_ScrollKeyDown(ih);
+ iupMatrixAuxCallEnterCellCb(ih);
+ break;
+ 
+@@ -106,7 +106,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
+ case K_PGUP:
+ if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
+ break;
+- iupMatrixScrollKeyPgUp(ih);
++ iupMATRIX_ScrollKeyPgUp(ih);
+ iupMatrixAuxCallEnterCellCb(ih);
+ break;
+ 
+@@ -114,7 +114,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c)
+ case K_PGDN:
+ if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)
+ break;
+- iupMatrixScrollKeyPgDown(ih);
++ iupMATRIX_ScrollKeyPgDown(ih);
+ iupMatrixAuxCallEnterCellCb(ih);
+ break;
+ 
+diff --git a/iup/srccontrols/matrix/iupmat_mouse.c b/iup/srccontrols/matrix/iupmat_mouse.c
+index 33b5fe7..a3ffa82 100755
+--- a/iup/srccontrols/matrix/iupmat_mouse.c
++++ b/iup/srccontrols/matrix/iupmat_mouse.c
+@@ -80,12 +80,18 @@ static void iMatrixMouseLeftPress(Ihandle* ih, int lin, int col, int shift, int
+ 
+ if (iupMatrixEditShow(ih))
+ {
+- if(ih->data->datah == ih->data->droph) 
++ if (ih->data->datah == ih->data->droph)
+ IupSetAttribute(ih->data->datah, "SHOWDROPDOWN", "YES");
+ 
+- if (iupStrEqualNoCase(IupGetGlobal("DRIVER"), "Motif"))
+- if(atoi(IupGetGlobal("MOTIFNUMBER")) < 2203) /* since OpenMotif version 2.2.3 this is not necessary */
+- iupAttribSetStr(ih, "_IUPMAT_DOUBLE_CLICK", "1");
++ if (IupGetGlobal("MOTIFVERSION"))
++ {
++ /* Sequece of focus_cb in Motif from here:
++ Matrix-Focus(0) - ok
++ Edit-KillFocus - weird, must avoid using _IUPMAT_DOUBLECLICK
++ Since OpenMotif version 2.2.3 this is not necessary anymore. */
++ if (atoi(IupGetGlobal("MOTIFNUMBER")) < 2203) 
++ iupAttribSetStr(ih, "_IUPMAT_DOUBLECLICK", "1");
++ }
+ }
+ }
+ else /* single click */
+@@ -182,14 +188,14 @@ int iupMatrixMouseMove_CB(Ihandle* ih, int x, int y)
+ if (ih->data->leftpressed && ih->data->mark_multiple && ih->data->mark_mode != IMAT_MARK_NO)
+ {
+ if ((x < ih->data->columns.sizes[0] || x < IMAT_DRAG_SCROLL_DELTA) && (ih->data->columns.first > 1))
+- iupMatrixScrollLeft(ih);
++ iupMATRIX_ScrollLeft(ih);
+ else if ((x > ih->data->w - IMAT_DRAG_SCROLL_DELTA) && (ih->data->columns.last < ih->data->columns.num-1))
+- iupMatrixScrollRight(ih);
++ iupMATRIX_ScrollRight(ih);
+ 
+ if ((y < ih->data->lines.sizes[0] || y < IMAT_DRAG_SCROLL_DELTA) && (ih->data->lines.first > 1))
+- iupMatrixScrollUp(ih);
++ iupMATRIX_ScrollUp(ih);
+ else if ((y > ih->data->h - IMAT_DRAG_SCROLL_DELTA) && (ih->data->lines.last < ih->data->lines.num-1))
+- iupMatrixScrollDown(ih);
++ iupMATRIX_ScrollDown(ih);
+ 
+ if (iupMatrixAuxGetLinColFromXY(ih, x, y, &lin, &col))
+ {
+diff --git a/iup/srccontrols/matrix/iupmat_numlc.c b/iup/srccontrols/matrix/iupmat_numlc.c
+index e48720a..6e628b7 100755
+--- a/iup/srccontrols/matrix/iupmat_numlc.c
++++ b/iup/srccontrols/matrix/iupmat_numlc.c
+@@ -294,7 +294,7 @@ int iupMatrixSetAddLinAttrib(Ihandle* ih, const char* value)
+ {
+ int base, count, lines_num = ih->data->lines.num;
+ 
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ 
+ if (!iMatrixGetStartEnd(value, &base, &count, lines_num, 0))
+@@ -326,7 +326,7 @@ int iupMatrixSetDelLinAttrib(Ihandle* ih, const char* value)
+ {
+ int base, count, lines_num = ih->data->lines.num;
+ 
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ 
+ if (!iMatrixGetStartEnd(value, &base, &count, lines_num, 1))
+@@ -366,7 +366,7 @@ int iupMatrixSetAddColAttrib(Ihandle* ih, const char* value)
+ {
+ int base, count, columns_num = ih->data->columns.num;
+ 
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ 
+ if (!iMatrixGetStartEnd(value, &base, &count, columns_num, 0))
+@@ -398,7 +398,7 @@ int iupMatrixSetDelColAttrib(Ihandle* ih, const char* value)
+ {
+ int base, count, columns_num = ih->data->columns.num;
+ 
+- if (!ih->handle) /* do not store the action before map */
++ if (!ih->handle) /* do not do the action before map */
+ return 0;
+ 
+ if (!iMatrixGetStartEnd(value, &base, &count, columns_num, 1))
+diff --git a/iup/srccontrols/matrix/iupmat_scroll.c b/iup/srccontrols/matrix/iupmat_scroll.c
+index 24bbef2..845d248 100755
+--- a/iup/srccontrols/matrix/iupmat_scroll.c
++++ b/iup/srccontrols/matrix/iupmat_scroll.c
+@@ -32,54 +32,32 @@
+ /* Private functions */
+ /**************************************************************************/
+ 
+-
+-static int iMatrixScrollIsFullVisibleLast(ImatLinColData *p)
+-{
+- int i, sum = 0;
+-
+- for(i = p->first; i <= p->last; i++)
+- sum += p->sizes[i];
+-
+- if (sum > p->visible_size)
+- return 0;
+- else
+- return 1;
+-}
+-
+-/* Scroll columns/lines in the left/top side of the matriz until the last column/line is FULLY visible.
+- -> m : Define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL] */
+-static void iMatrixScrollToVisible(Ihandle* ih, int m, int index)
++static void iMatrixScrollToVisible(ImatLinColData* p, int index)
+ {
+- ImatLinColData* p;
++ /* The work here is just to position first and first_offset, 
++ so "index" is between "first" and "last". */
++ 
++ /* It is called only for discrete scrolling, 
++ so first_offset usually will be set to 0. */
++
++ /* already visible, change nothing */
++ if (index > p->first && index < p->last)
++ return;
+ 
+- if (m == IMAT_PROCESS_LIN)
+- p = &(ih->data->lines);
+- else
+- p = &(ih->data->columns);
++ /* scroll to visible, means position the cell so the start at left is visible */
+ 
+- if (index < p->first)
++ if (index <= p->first)
+ {
+ p->first = index;
++ p->first_offset = 0;
+ return;
+ }
+- else if (index > p->last)
++ else /* (index >= p->last) */
+ {
+- /* Increment the first column/line until the index is visible */
+- while(index > p->last && p->last != (p->num - 1))
+- {
+- p->first++;
+- iupMatrixAuxUpdateLast(p);
+- } 
+- }
++ p->last = index;
+ 
+- if (index == p->last)
+- {
+- /* must increment util the last is fully visible */
+- while(index == p->last && p->last != (p->num - 1) && !iMatrixScrollIsFullVisibleLast(p))
+- {
+- p->first++;
+- iupMatrixAuxUpdateLast(p);
+- } 
++ /* adjust "first" according to "last" */
++ iupMatrixAuxAdjustFirstFromLast(p);
+ }
+ }
+ 
+@@ -133,119 +111,114 @@ static int iMatrixScrollGetPrevNonEmpty(Ihandle* ih, int m, int index)
+ return index;
+ }
+ 
+-static void iMatrixScrollSetFocusScrollToVisible(Ihandle* ih, int m, int index)
++static void iMatrixScrollSetFocusScrollToVisible(Ihandle* ih, int lin, int col)
++{
++ /* moving focus and eventually scrolling */
++ iupMatrixFocusSet(ih, lin, col);
++
++ /* set for both because focus maybe hidden */
++ iMatrixScrollToVisible(&ih->data->columns, ih->data->columns.focus_cell);
++ iMatrixScrollToVisible(&ih->data->lines, ih->data->lines.focus_cell);
++}
++
++static void iMatrixScrollSetFocusScrollToVisibleLinCol(Ihandle* ih, int m, int index)
+ {
+ if (m == IMAT_PROCESS_COL)
+- iupMatrixFocusSet(ih, ih->data->lines.focus_cell, index);
++ iMatrixScrollSetFocusScrollToVisible(ih, ih->data->lines.focus_cell, index);
+ else
+- iupMatrixFocusSet(ih, index, ih->data->columns.focus_cell);
+-
+- /* set for both because current focus maybe hidden */
+- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);
+- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);
++ iMatrixScrollSetFocusScrollToVisible(ih, index, ih->data->columns.focus_cell);
+ }
+ 
++
+ /**************************************************************************/
+ /* Exported functions */
+ /**************************************************************************/
+ 
+ 
+-/* Move using the cells of matrix.
+- Receive as a parameter a pointer to a function that will make the work,
+- in fact. This is done to avoid a test to each of the manipulation cursor
+- functions, verifying if it is necessary to call or not the scroll
+- callback. This is only done here.
+- -> func - pointer to the function that will make the movement
+- -> mode - parameter passed to func, specify if the movement request is of
+- the scrollbar or the keyboard
+- -> pos - parameter passed to func, that will be the handle position function
+- of the scrollbar, returning the scrollbar thumb position...
+- if func is other function, this parameter will be ignored
+- -> m - parameter passed to func, specify which is the mode of operation:
+- lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
+-*/
+-void iupMatrixScrollMoveCursor(iupMatrixScrollMoveF func, Ihandle* ih, int mode, float pos, int m)
++void iupMatrixScrollToVisible(Ihandle* ih, int lin, int col)
+ {
+ int old_lines_first = ih->data->lines.first;
+ int old_columns_first = ih->data->columns.first;
++ int old_lines_first_offset = ih->data->lines.first_offset;
++ int old_columns_first_offset = ih->data->columns.first_offset;
+ 
+- iupMatrixEditForceHidden(ih);
++ iMatrixScrollToVisible(&ih->data->columns, col);
++ iMatrixScrollToVisible(&ih->data->lines, lin);
+ 
+- func(ih, mode, pos, m);
+-
+- if (ih->data->lines.first != old_lines_first || ih->data->columns.first != old_columns_first)
++ if ((ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset) ||
++ (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset))
+ {
+- if (ih->data->columns.first != old_columns_first)
+- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL);
++ /* when "first" is changed must update scroll pos */
++ if (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset)
++ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL);
+ 
+- if (ih->data->lines.first != old_lines_first)
+- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN);
++ if (ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset)
++ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN);
+ 
+ iMatrixScrollCallScrollTopCb(ih);
+ 
+- iupMatrixDraw(ih, 0);
++ iupMatrixDraw(ih, 1);
+ }
+ }
+ 
+-void iupMatrixScrollToVisible(Ihandle* ih, int lin, int col)
++void iupMatrixScrollMove(iupMatrixScrollMoveFunc func, Ihandle* ih, int mode, float pos, int m)
+ {
+ int old_lines_first = ih->data->lines.first;
+ int old_columns_first = ih->data->columns.first;
++ int old_lines_first_offset = ih->data->lines.first_offset;
++ int old_columns_first_offset = ih->data->columns.first_offset;
+ 
+- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, col);
+- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, lin);
++ iupMatrixEditForceHidden(ih);
+ 
+- if (ih->data->lines.first != old_lines_first || ih->data->columns.first != old_columns_first)
++ func(ih, mode, pos, m);
++
++ if ((ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset) ||
++ (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset))
+ {
+- if (ih->data->columns.first != old_columns_first)
+- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL);
++ /* when "first" is changed must update scroll pos */
++ if (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset)
++ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL);
+ 
+- if (ih->data->lines.first != old_lines_first)
+- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN);
++ if (ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset)
++ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN);
+ 
+ iMatrixScrollCallScrollTopCb(ih);
+ 
+- iupMatrixDraw(ih, 1);
++ iupMatrixDraw(ih, 0);
+ }
+ }
+ 
++/************************************************************************************/
++
+ /* This function is called when the "home" key is pressed.
+ In the first time, go to the beginning of the line.
+ In the second time, go to the beginning of the page.
+ In the third time, go to the beginning of the matrix.
+ -> mode and pos : DO NOT USED.
+ */
+-void iupMatrixScrollHome(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)
++void iupMatrixScrollHomeFunc(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)
+ {
+ (void)unused_m;
+ (void)unused_mode;
+ (void)unused_pos;
+ 
+ /* called only for mode==IMAT_SCROLLKEY */
++ /* moving focus and eventually scrolling */
+ 
+ if(ih->data->homekeycount == 0) /* go to the beginning of the line */
+ {
+- ih->data->columns.first = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1);
+- iMatrixScrollSetFocusScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.first);
++ int col = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1);
++ iMatrixScrollSetFocusScrollToVisibleLinCol(ih, IMAT_PROCESS_COL, col);
+ }
+ else if(ih->data->homekeycount == 1) /* go to the beginning of the visible page */
+ {
+- iupMatrixFocusSet(ih, ih->data->lines.first, ih->data->columns.first);
+-
+- /* set for both because current focus maybe hidden */
+- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);
+- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);
++ iMatrixScrollSetFocusScrollToVisible(ih, ih->data->lines.first, ih->data->columns.first);
+ }
+ else if(ih->data->homekeycount == 2) /* go to the beginning of the matrix 1:1 */
+ {
+- ih->data->columns.first = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1);
+- ih->data->lines.first = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_LIN, 1);
+-
+- iupMatrixFocusSet(ih, ih->data->lines.first, ih->data->columns.first);
+-
+- /* set for both because current focus maybe hidden */
+- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);
+- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);
++ int lin = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_LIN, 1);
++ int col = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1);
++ iMatrixScrollSetFocusScrollToVisible(ih, lin, col);
+ }
+ }
+ 
+@@ -255,37 +228,29 @@ void iupMatrixScrollHome(Ihandle* ih, int unused_mode, float unused_pos, int unu
+ In the third time, go to the end of the matrix.
+ -> mode and pos : DO NOT USED.
+ */
+-void iupMatrixScrollEnd(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)
++void iupMatrixScrollEndFunc(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)
+ {
+ (void)unused_m;
+ (void)unused_mode;
+ (void)unused_pos;
+ 
+ /* called only for mode==IMAT_SCROLLKEY */
++ /* moving focus and eventually scrolling */
+ 
+ if(ih->data->endkeycount == 0) /* go to the end of the line */
+ {
+- int last_col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1);
+- iMatrixScrollSetFocusScrollToVisible(ih, IMAT_PROCESS_COL, last_col);
++ int col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1);
++ iMatrixScrollSetFocusScrollToVisibleLinCol(ih, IMAT_PROCESS_COL, col);
+ }
+ else if(ih->data->endkeycount == 1) /* go to the end of the visible page */
+ {
+- iupMatrixFocusSet(ih, ih->data->lines.last, ih->data->columns.last);
+-
+- /* set for both because current focus maybe hidden */
+- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);
+- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);
++ iMatrixScrollSetFocusScrollToVisible(ih, ih->data->lines.last, ih->data->columns.last);
+ }
+ else if(ih->data->endkeycount == 2) /* go to the end of the matrix */
+ {
+- int last_col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1);
+- int last_lin = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_LIN, ih->data->lines.num-1);
+-
+- iupMatrixFocusSet(ih, last_lin, last_col);
+-
+- /* set for both because current focus maybe hidden */
+- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);
+- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);
++ int lin = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_LIN, ih->data->lines.num-1);
++ int col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1);
++ iMatrixScrollSetFocusScrollToVisible(ih, lin, col);
+ }
+ }
+ 
+@@ -295,7 +260,7 @@ void iupMatrixScrollEnd(Ihandle* ih, int unused_mode, float unused_pos, int unus
+ -> pos : DO NOT USED
+ -> m : define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
+ */
+-void iupMatrixScrollLeftUp(Ihandle* ih, int mode, float pos, int m)
++void iupMatrixScrollLeftUpFunc(Ihandle* ih, int mode, float pos, int m)
+ {
+ ImatLinColData* p;
+ (void)pos;
+@@ -307,12 +272,15 @@ void iupMatrixScrollLeftUp(Ihandle* ih, int mode, float pos, int m)
+ 
+ if (mode == IMAT_SCROLLKEY)
+ {
++ /* moving focus and eventually scrolling */
+ int next = iMatrixScrollGetPrevNonEmpty(ih, m, p->focus_cell-1);
+- iMatrixScrollSetFocusScrollToVisible(ih, m, next);
++ iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next);
+ }
+ else /* IMAT_SCROLLBAR */
+ {
++ /* always scrolling without changing focus */
+ p->first = iMatrixScrollGetPrevNonEmpty(ih, m, p->first-1);
++ p->first_offset = 0;
+ }
+ }
+ 
+@@ -322,7 +290,7 @@ void iupMatrixScrollLeftUp(Ihandle* ih, int mode, float pos, int m)
+ -> pos : DO NOT USED
+ -> m : define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
+ */
+-void iupMatrixScrollRightDown(Ihandle* ih, int mode, float pos, int m)
++void iupMatrixScrollRightDownFunc(Ihandle* ih, int mode, float pos, int m)
+ {
+ ImatLinColData* p;
+ (void)pos;
+@@ -334,12 +302,15 @@ void iupMatrixScrollRightDown(Ihandle* ih, int mode, float pos, int m)
+ 
+ if (mode == IMAT_SCROLLKEY)
+ {
++ /* moving focus and eventually scrolling */
+ int next = iMatrixScrollGetNextNonEmpty(ih, m, p->focus_cell+1);
+- iMatrixScrollSetFocusScrollToVisible(ih, m, next);
++ iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next);
+ }
+ else /* IMAT_SCROLLBAR */
+ {
++ /* always scrolling without changing focus */
+ p->first = iMatrixScrollGetNextNonEmpty(ih, m, p->first+1);
++ p->first_offset = 0;
+ }
+ }
+ 
+@@ -349,7 +320,7 @@ void iupMatrixScrollRightDown(Ihandle* ih, int mode, float pos, int m)
+ -> pos : DO NOT USED
+ -> m : define the mode of operation: lines (PgLeft) or columns (PgUp) [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
+ */
+-void iupMatrixScrollPgLeftUp(Ihandle* ih, int mode, float pos, int m)
++void iupMatrixScrollPgLeftUpFunc(Ihandle* ih, int mode, float pos, int m)
+ {
+ ImatLinColData* p;
+ (void)pos;
+@@ -361,12 +332,15 @@ void iupMatrixScrollPgLeftUp(Ihandle* ih, int mode, float pos, int m)
+ 
+ if (mode == IMAT_SCROLLKEY)
+ {
++ /* moving focus and eventually scrolling */
+ int next = iMatrixScrollGetPrevNonEmpty(ih, m, p->focus_cell - (p->last - p->first));
+- iMatrixScrollSetFocusScrollToVisible(ih, m, next);
++ iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next);
+ }
+ else /* IMAT_SCROLLBAR */
+ {
++ /* always scrolling without changing focus */
+ p->first = iMatrixScrollGetPrevNonEmpty(ih, m, p->first - (p->last - p->first));
++ p->first_offset = 0;
+ }
+ }
+ 
+@@ -376,7 +350,7 @@ void iupMatrixScrollPgLeftUp(Ihandle* ih, int mode, float pos, int m)
+ -> pos : DO NOT USED
+ -> m : define the mode of operation: lines (PgDown) or columns (PgRight) [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
+ */
+-void iupMatrixScrollPgRightDown(Ihandle* ih, int mode, float pos, int m)
++void iupMatrixScrollPgRightDownFunc(Ihandle* ih, int mode, float pos, int m)
+ {
+ ImatLinColData* p;
+ (void)pos;
+@@ -388,16 +362,19 @@ void iupMatrixScrollPgRightDown(Ihandle* ih, int mode, float pos, int m)
+ 
+ if (mode == IMAT_SCROLLKEY)
+ {
+- int next = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, p->focus_cell + (p->last - p->first));
+- iMatrixScrollSetFocusScrollToVisible(ih, m, next);
++ /* moving focus and eventually scrolling */
++ int next = iMatrixScrollGetNextNonEmpty(ih, m, p->focus_cell + (p->last - p->first));
++ iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next);
+ }
+ else /* IMAT_SCROLLBAR */
+ {
++ /* always scrolling without changing focus */
+ p->first = iMatrixScrollGetPrevNonEmpty(ih, m, p->first + (p->last - p->first));
++ p->first_offset = 0;
+ }
+ }
+ 
+-void iupMatrixScrollCr(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)
++void iupMatrixScrollCrFunc(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)
+ {
+ int oldlin = ih->data->lines.focus_cell;
+ int oldcol = ih->data->columns.focus_cell;
+@@ -408,13 +385,13 @@ void iupMatrixScrollCr(Ihandle* ih, int unused_mode, float unused_pos, int unuse
+ /* called only for mode==IMAT_SCROLLKEY */
+ 
+ /* try the normal processing of next cell down */
+- iupMatrixScrollRightDown(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN);
++ iupMatrixScrollRightDownFunc(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN);
+ 
+ if(ih->data->lines.focus_cell == oldlin && ih->data->columns.focus_cell == oldcol)
+ {
+ /* If focus was not changed, it was because it is in the last line of the column.
+ Go to the next column of the same line. */
+- iupMatrixScrollRightDown(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL);
++ iupMatrixScrollRightDownFunc(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL);
+ }
+ }
+ 
+@@ -423,70 +400,51 @@ void iupMatrixScrollCr(Ihandle* ih, int unused_mode, float unused_pos, int unuse
+ -> mode : DO NOT USED
+ -> m : define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL]
+ */
+-void iupMatrixScrollPos(Ihandle* ih, int mode, float pos, int m)
++void iupMatrixScrollPosFunc(Ihandle* ih, int mode, float pos, int m)
+ {
+- int scroll_pos, index, vp;
+- float d;
++ int scroll_pos;
+ ImatLinColData* p;
+ (void)mode;
+ 
+ if (m == IMAT_PROCESS_LIN)
+- {
+ p = &(ih->data->lines);
+- d = IupGetFloat(ih, "DY");
+- }
+ else
+- {
+ p = &(ih->data->columns);
+- d = IupGetFloat(ih, "DX");
+- }
+ 
+ if (p->num == 1)
+ {
+ p->first = 1;
++ p->first_offset = 0;
+ return;
+ }
+ 
+ scroll_pos = (int)(pos * p->total_size + 0.5);
+ 
+- vp = 0;
+- for(index = 1; index < p->num; index++)
+- {
+- vp += p->sizes[index];
+- if (vp > scroll_pos)
+- break;
+- }
+-
+- if (index == p->num)
+- {
+- if (p->num == 1)
+- index = 1;
+- else
+- index = p->num-1;
+- }
+-
+- p->first = index;
++ /* position first and first_offset, according to scroll pos */
++ iupMatrixAuxAdjustFirstFromScrollPos(p, scroll_pos);
+ }
+ 
+-int iupMatrixScroll_CB(Ihandle* ih, int action, float x, float y)
++/************************************************************************************/
++
++int iupMatrixScroll_CB(Ihandle* ih, int action, float posx, float posy)
+ {
+ if (!iupMatrixIsValid(ih, 0))
+ return IUP_DEFAULT;
+ 
+ switch(action)
+ {
+- case IUP_SBUP : iupMatrixScrollUp(ih); break;
+- case IUP_SBDN : iupMatrixScrollDown(ih); break;
+- case IUP_SBPGUP : iupMatrixScrollPgUp(ih); break;
+- case IUP_SBPGDN : iupMatrixScrollPgDown(ih); break;
+- case IUP_SBRIGHT : iupMatrixScrollRight(ih); break;
+- case IUP_SBLEFT : iupMatrixScrollLeft(ih); break;
+- case IUP_SBPGRIGHT : iupMatrixScrollPgRight(ih); break;
+- case IUP_SBPGLEFT : iupMatrixScrollPgLeft(ih); break;
+- case IUP_SBPOSV : iupMatrixScrollPosVer(ih,y); break;
+- case IUP_SBPOSH : iupMatrixScrollPosHor(ih,x); break;
+- case IUP_SBDRAGV : iupMatrixScrollPosVer(ih,y); break;
+- case IUP_SBDRAGH : iupMatrixScrollPosHor(ih,x); break;
++ case IUP_SBUP : iupMATRIX_ScrollUp(ih); break;
++ case IUP_SBDN : iupMATRIX_ScrollDown(ih); break;
++ case IUP_SBPGUP : iupMATRIX_ScrollPgUp(ih); break;
++ case IUP_SBPGDN : iupMATRIX_ScrollPgDown(ih); break;
++ case IUP_SBRIGHT : iupMATRIX_ScrollRight(ih); break;
++ case IUP_SBLEFT : iupMATRIX_ScrollLeft(ih); break;
++ case IUP_SBPGRIGHT : iupMATRIX_ScrollPgRight(ih); break;
++ case IUP_SBPGLEFT : iupMATRIX_ScrollPgLeft(ih); break;
++ case IUP_SBPOSV : iupMATRIX_ScrollPosVer(ih,posy); break;
++ case IUP_SBPOSH : iupMATRIX_ScrollPosHor(ih,posx); break;
++ case IUP_SBDRAGV : iupMATRIX_ScrollPosVer(ih,posy); break;
++ case IUP_SBDRAGH : iupMATRIX_ScrollPosHor(ih,posx); break;
+ }
+ 
+ iupMatrixDrawUpdate(ih);
+diff --git a/iup/srccontrols/matrix/iupmat_scroll.h b/iup/srccontrols/matrix/iupmat_scroll.h
+index 582442b..45d7417 100755
+--- a/iup/srccontrols/matrix/iupmat_scroll.h
++++ b/iup/srccontrols/matrix/iupmat_scroll.h
+@@ -12,54 +12,54 @@
+ extern "C" {
+ #endif
+ 
+-int iupMatrixScroll_CB(Ihandle* ih, int action, float x, float y);
++int iupMatrixScroll_CB(Ihandle* ih, int action, float posx, float posy);
+ 
+ void iupMatrixScrollToVisible(Ihandle* ih, int lin, int col);
+ 
+-typedef void (*iupMatrixScrollMoveF)(Ihandle* ih, int mode, float pos, int m);
+-void iupMatrixScrollMoveCursor(iupMatrixScrollMoveF func, Ihandle* ih, int mode, float pos, int m);
++typedef void (*iupMatrixScrollMoveFunc)(Ihandle* ih, int mode, float pos, int m);
++void iupMatrixScrollMove(iupMatrixScrollMoveFunc func, Ihandle* ih, int mode, float pos, int m);
+ 
+ /* Used only by the macros bellow */
+-void iupMatrixScrollHome (Ihandle* ih, int, float, int);
+-void iupMatrixScrollEnd (Ihandle* ih, int, float, int);
+-void iupMatrixScrollLeftUp (Ihandle* ih, int, float, int);
+-void iupMatrixScrollRightDown (Ihandle* ih, int, float, int);
+-void iupMatrixScrollPgLeftUp (Ihandle* ih, int, float, int);
+-void iupMatrixScrollPgRightDown(Ihandle* ih, int, float, int);
+-void iupMatrixScrollPos (Ihandle* ih, int, float, int);
+-void iupMatrixScrollCr (Ihandle* ih, int, float, int);
++void iupMatrixScrollHomeFunc (Ihandle* ih, int, float, int);
++void iupMatrixScrollEndFunc (Ihandle* ih, int, float, int);
++void iupMatrixScrollLeftUpFunc (Ihandle* ih, int, float, int);
++void iupMatrixScrollRightDownFunc (Ihandle* ih, int, float, int);
++void iupMatrixScrollPgLeftUpFunc (Ihandle* ih, int, float, int);
++void iupMatrixScrollPgRightDownFunc(Ihandle* ih, int, float, int);
++void iupMatrixScrollPosFunc (Ihandle* ih, int, float, int);
++void iupMatrixScrollCrFunc (Ihandle* ih, int, float, int);
+ 
+ /* Mode used to "walk" inside the matrix.
+ It shows if the movement request was from the scrollbar or from a key.
+- Possible values for the "mode" parameter of the iupMatrixScrollMoveCursor function.
++ Possible values for the "mode" parameter of the iupMatrixScrollMove function.
+ */
+ #define IMAT_SCROLLBAR 0
+ #define IMAT_SCROLLKEY 1
+ 
+-/* Macros to help during the call of iupMatrixScrollMoveCursor function */
++/* Macros to help during the call of iupMatrixScrollMove function */
+ 
+ /* used in the keyboard processing module */
+-#define iupMatrixScrollKeyHome(ih) iupMatrixScrollMoveCursor(iupMatrixScrollHome , ih, IMAT_SCROLLKEY, 0, 0)
+-#define iupMatrixScrollKeyEnd(ih) iupMatrixScrollMoveCursor(iupMatrixScrollEnd , ih, IMAT_SCROLLKEY, 0, 0)
+-#define iupMatrixScrollKeyPgUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgLeftUp , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
+-#define iupMatrixScrollKeyPgDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgRightDown, ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
+-#define iupMatrixScrollKeyDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
+-#define iupMatrixScrollKeyRight(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL)
+-#define iupMatrixScrollKeyUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
+-#define iupMatrixScrollKeyLeft(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL)
+-#define iupMatrixScrollKeyCr(ih) iupMatrixScrollMoveCursor(iupMatrixScrollCr , ih, IMAT_SCROLLKEY, 0, 0)
++#define iupMATRIX_ScrollKeyHome(ih) iupMatrixScrollMove(iupMatrixScrollHomeFunc , ih, IMAT_SCROLLKEY, 0, 0)
++#define iupMATRIX_ScrollKeyEnd(ih) iupMatrixScrollMove(iupMatrixScrollEndFunc , ih, IMAT_SCROLLKEY, 0, 0)
++#define iupMATRIX_ScrollKeyPgUp(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
++#define iupMATRIX_ScrollKeyPgDown(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
++#define iupMATRIX_ScrollKeyDown(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
++#define iupMATRIX_ScrollKeyRight(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL)
++#define iupMATRIX_ScrollKeyUp(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)
++#define iupMATRIX_ScrollKeyLeft(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL)
++#define iupMATRIX_ScrollKeyCr(ih) iupMatrixScrollMove(iupMatrixScrollCrFunc , ih, IMAT_SCROLLKEY, 0, 0)
+ 
+ /* Used by the scrollbar callback only */
+-#define iupMatrixScrollUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
+-#define iupMatrixScrollLeft(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
+-#define iupMatrixScrollDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
+-#define iupMatrixScrollRight(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
+-#define iupMatrixScrollPgUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
+-#define iupMatrixScrollPgLeft(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
+-#define iupMatrixScrollPgDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgRightDown, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
+-#define iupMatrixScrollPgRight(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgRightDown, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
+-#define iupMatrixScrollPosVer(ih, y) iupMatrixScrollMoveCursor(iupMatrixScrollPos , ih, IMAT_SCROLLBAR, y, IMAT_PROCESS_LIN)
+-#define iupMatrixScrollPosHor(ih, x) iupMatrixScrollMoveCursor(iupMatrixScrollPos , ih, IMAT_SCROLLBAR, x, IMAT_PROCESS_COL)
++#define iupMATRIX_ScrollUp(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
++#define iupMATRIX_ScrollLeft(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
++#define iupMATRIX_ScrollDown(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
++#define iupMATRIX_ScrollRight(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
++#define iupMATRIX_ScrollPgUp(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
++#define iupMATRIX_ScrollPgLeft(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
++#define iupMATRIX_ScrollPgDown(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)
++#define iupMATRIX_ScrollPgRight(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)
++#define iupMATRIX_ScrollPosVer(ih, y) iupMatrixScrollMove(iupMatrixScrollPosFunc , ih, IMAT_SCROLLBAR, posy, IMAT_PROCESS_LIN)
++#define iupMATRIX_ScrollPosHor(ih, x) iupMatrixScrollMove(iupMatrixScrollPosFunc , ih, IMAT_SCROLLBAR, posx, IMAT_PROCESS_COL)
+ 
+ 
+ #ifdef __cplusplus
+diff --git a/iup/srccontrols/matrix/iupmatrix.c b/iup/srccontrols/matrix/iupmatrix.c
+index 20d618d..9e379e2 100755
+--- a/iup/srccontrols/matrix/iupmatrix.c
++++ b/iup/srccontrols/matrix/iupmatrix.c
+@@ -76,10 +76,13 @@ static int iMatrixSetOriginAttrib(Ihandle* ih, const char* value)
+ return 0;
+ 
+ ih->data->columns.first = col;
++ ih->data->columns.first_offset = 0;
+ ih->data->lines.first = lin;
++ ih->data->lines.first_offset = 0;
+ 
+- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL);
+- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN);
++ /* when "first" is changed must update scroll pos */
++ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL);
++ iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN);
+ 
+ iupMatrixDraw(ih, 1);
+ return 0;
+@@ -109,7 +112,7 @@ static int iMatrixSetShowAttrib(Ihandle* ih, const char* value)
+ if((lin < 1) || (col < 1))
+ return 0;
+ 
+- if (!iupMatrixAuxIsCellFullVisible(ih, lin, col))
++ if (!iupMatrixAuxIsCellStartVisible(ih, lin, col))
+ iupMatrixScrollToVisible(ih, lin, col);
+ 
+ return 0;
+@@ -173,6 +176,23 @@ static char* iMatrixGetUseTitleSizeAttrib(Ihandle* ih)
+ return "NO";
+ }
+ 
++static int iMatrixSetHiddenTextMarksAttrib(Ihandle* ih, const char* value)
++{
++ if (iupStrBoolean(value))
++ ih->data->hidden_text_marks = 1;
++ else 
++ ih->data->hidden_text_marks = 0;
++ return 0;
++}
++
++static char* iMatrixGetHiddenTextMarksAttrib(Ihandle* ih)
++{
++ if (ih->data->hidden_text_marks)
++ return "YES";
++ else
++ return "NO";
++}
++
+ static int iMatrixSetValueAttrib(Ihandle* ih, const char* value)
+ {
+ if (IupGetInt(ih->data->datah, "VISIBLE"))
+@@ -228,14 +248,14 @@ static char* iMatrixGetMultilineAttrib(Ihandle* ih)
+ static char* iMatrixGetNumLinAttrib(Ihandle* ih)
+ {
+ char* num = iupStrGetMemory(100);
+- sprintf(num, "%d", ih->data->lines.num-1);
++ sprintf(num, "%d", ih->data->lines.num-1); /* the attribute does not include the title */
+ return num;
+ }
+ 
+ static char* iMatrixGetNumColAttrib(Ihandle* ih)
+ {
+ char* num = iupStrGetMemory(100);
+- sprintf(num, "%d", ih->data->columns.num-1);
++ sprintf(num, "%d", ih->data->columns.num-1); /* the attribute does not include the title */
+ return num;
+ }
+ 
+@@ -427,13 +447,19 @@ static char* iMatrixGetAlignmentAttrib(Ihandle* ih, const char* name_id)
+ align = iupAttribGet(ih, str);
+ if (!align)
+ {
+- int col;
+- if (iupStrToInt(name_id, &col))
++ align = iupAttribGet(ih, "ALIGNMENT");
++ if (align)
++ return align;
++ else
+ {
+- if (col == 0)
+- return "ALEFT";
+- else
+- return "ACENTER";
++ int col;
++ if (iupStrToInt(name_id, &col))
++ {
++ if (col == 0)
++ return "ALEFT";
++ else
++ return "ACENTER";
++ }
+ }
+ }
+ 
+@@ -642,7 +668,7 @@ static int iMatrixCreateMethod(Ihandle* ih, void **params)
+ /* Create the edit fields */
+ iupMatrixEditCreate(ih);
+ 
+- /* defaults */
++ /* defaults that are non zero */
+ ih->data->datah = ih->data->texth;
+ ih->data->mark_continuous = 1;
+ ih->data->columns.num = 1;
+@@ -656,7 +682,6 @@ static int iMatrixCreateMethod(Ihandle* ih, void **params)
+ ih->data->mark_col1 = -1;
+ ih->data->mark_lin2 = -1;
+ ih->data->mark_col2 = -1;
+- ih->data->use_title_size = 0;
+ 
+ return IUP_NOERROR;
+ }
+@@ -700,11 +725,34 @@ static void iMatrixUnMapMethod(Ihandle* ih)
+ iupMatrixMemRelease(ih);
+ }
+ 
++static char* iMatrixGetDefault(Ihandle* ih, const char* name)
++{
++ int inherit;
++ char *def_value;
++ iupClassObjectGetAttributeInfo(ih, name, &def_value, &inherit);
++ return def_value;
++}
++
++static int iMatrixGetInt(Ihandle* ih, const char* name)
++{
++ char *value = iupAttribGet(ih, name);
++ if (!value) value = iMatrixGetDefault(ih, name);
++ if (value)
++ {
++ int i = 0;
++ if (iupStrToInt(value, &i))
++ return i;
++ }
++ return 0;
++}
++
+ static int iMatrixGetNaturalWidth(Ihandle* ih)
+ {
+ int width = 0, num, col;
+ 
+- num = iupAttribGetInt(ih, "NUMCOL_VISIBLE")+1; /* include the title column */
++ /* must use this custom function because 
++ the get method for this attribute returns a value with a different meaning */
++ num = iMatrixGetInt(ih, "NUMCOL_VISIBLE")+1; /* include the title column */
+ 
+ if (iupAttribGetInt(ih, "NUMCOL_VISIBLE_LAST"))
+ {
+@@ -716,9 +764,7 @@ static int iMatrixGetNaturalWidth(Ihandle* ih)
+ }
+ else
+ {
+- if (num > ih->data->columns.num)
+- num = ih->data->columns.num;
+- for(col = 0; col < num; col++)
++ for(col = 0; col < num; col++) /* num can be > numcol */
+ width += iupMatrixAuxGetColumnWidth(ih, col);
+ }
+ 
+@@ -729,7 +775,9 @@ static int iMatrixGetNaturalHeight(Ihandle* ih)
+ {
+ int height = 0, num, lin;
+ 
+- num = iupAttribGetInt(ih, "NUMLIN_VISIBLE")+1; /* include the title line */
++ /* must use this custom function because 
++ the get method for this attribute returns a value with a different meaning */
++ num = iMatrixGetInt(ih, "NUMLIN_VISIBLE")+1; /* include the title line */
+ 
+ if (iupAttribGetInt(ih, "NUMLIN_VISIBLE_LAST"))
+ {
+@@ -741,9 +789,7 @@ static int iMatrixGetNaturalHeight(Ihandle* ih)
+ }
+ else
+ {
+- if (num > ih->data->lines.num)
+- num = ih->data->lines.num;
+- for(lin = 0; lin < num; lin++)
++ for(lin = 0; lin < num; lin++) /* num can be > numlin */
+ height += iupMatrixAuxGetLineHeight(ih, lin);
+ }
+ 
+@@ -902,6 +948,8 @@ Iclass* iupMatrixGetClass(void)
+ 
+ /* IupMatrix Attributes - GENERAL */
+ iupClassRegisterAttribute(ic, "USETITLESIZE", iMatrixGetUseTitleSizeAttrib, iMatrixSetUseTitleSizeAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
++ iupClassRegisterAttribute(ic, "HIDDENTEXTMARKS", iMatrixGetHiddenTextMarksAttrib, iMatrixSetHiddenTextMarksAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
++ 
+ iupClassRegisterAttribute(ic, "FRAMECOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "100 100 100", IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "READONLY", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+ iupClassRegisterAttribute(ic, "RESIZEMATRIX", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);
+diff --git a/iup/srcgl/Makefile b/iup/srcgl/Makefile
+index 882d0d2..48037f0 100755
+--- a/iup/srcgl/Makefile
++++ b/iup/srcgl/Makefile
+@@ -3,4 +3,4 @@
+ do_all: iupgl
+ 
+ iupgl:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak 
++ @$(MAKE) --no-print-directory -f ../tecmake.mak 
+diff --git a/iup/srcim/Makefile b/iup/srcim/Makefile
+index 933ded1..d47e014 100755
+--- a/iup/srcim/Makefile
++++ b/iup/srcim/Makefile
+@@ -3,4 +3,4 @@
+ do_all: iupim
+ 
+ iupim:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak 
++ @$(MAKE) --no-print-directory -f ../tecmake.mak 
+diff --git a/iup/srcim/iup_im.c b/iup/srcim/iup_im.c
+index c26a3ff..ce58d80 100755
+--- a/iup/srcim/iup_im.c
++++ b/iup/srcim/iup_im.c
+@@ -23,7 +23,7 @@
+ #include "iup_image.h"
+ 
+ 
+-static void PrintError(int error)
++static void iSaveErrorMsg(int error)
+ {
+ char* lang = IupGetLanguage();
+ char* msg;
+@@ -31,20 +31,22 @@ static void PrintError(int error)
+ {
+ switch (error)
+ {
++ case IM_ERR_NONE:
++ msg = NULL;
+ case IM_ERR_OPEN:
+- msg = "Error Opening File.\n";
++ msg = "Error Opening Image File.\n";
+ break;
+ case IM_ERR_MEM:
+ msg = "Insuficient memory.\n";
+ break;
+ case IM_ERR_ACCESS:
+- msg = "Error Accessing File.\n";
++ msg = "Error Accessing Image File.\n";
+ break;
+ case IM_ERR_DATA:
+ msg = "Image type not Suported.\n";
+ break;
+ case IM_ERR_FORMAT:
+- msg = "Invalid Format.\n";
++ msg = "Invalid Image File Format.\n";
+ break;
+ case IM_ERR_COMPRESS:
+ msg = "Invalid or unsupported compression.\n";
+@@ -57,20 +59,22 @@ static void PrintError(int error)
+ {
+ switch (error)
+ {
++ case IM_ERR_NONE:
++ msg = NULL;
+ case IM_ERR_OPEN:
+- msg = "Erro Abrindo Arquivo.\n";
++ msg = "Erro Abrindo Arquivo de Imagem.\n";
+ break;
+ case IM_ERR_MEM:
+ msg = "Memória Insuficiente.\n";
+ break;
+ case IM_ERR_ACCESS:
+- msg = "Erro Acessando Arquivo.\n";
++ msg = "Erro Acessando Arquivo de Imagem.\n";
+ break;
+ case IM_ERR_DATA:
+ msg = "Tipo de Imagem não Suportado.\n";
+ break;
+ case IM_ERR_FORMAT:
+- msg = "Formato Inválido.\n";
++ msg = "Formato de Arquivo de Imagem Inválido.\n";
+ break;
+ case IM_ERR_COMPRESS:
+ msg = "Compressão Inválida ou não Suportada.\n";
+@@ -80,7 +84,7 @@ static void PrintError(int error)
+ }
+ }
+ 
+- IupMessage("Error", msg);
++ IupSetGlobal("IUPIM_LASTERROR", msg);
+ }
+ 
+ Ihandle* IupLoadImage(const char* file_name)
+@@ -165,7 +169,7 @@ load_finish:
+ imCounterSetCallback(NULL, old_callback);
+ if (ifile) imFileClose(ifile);
+ if (image_data) free(image_data);
+- if (error) PrintError(error);
++ iSaveErrorMsg(error);
+ return iup_image;
+ }
+ 
+@@ -188,7 +192,7 @@ int IupSaveImage(Ihandle* ih, const char* file_name, const char* format)
+ ifile = imFileNew(file_name, format, &error);
+ if (!ifile)
+ {
+- PrintError(error);
++ iSaveErrorMsg(error);
+ return 0;
+ }
+ 
+@@ -238,8 +242,7 @@ int IupSaveImage(Ihandle* ih, const char* file_name, const char* format)
+ 
+ imFileClose(ifile); 
+ 
+- if (error)
+- PrintError(error);
++ iSaveErrorMsg(error);
+ 
+ return error == IM_ERR_NONE? 1: 0;
+ }
+diff --git a/iup/srcimglib/Makefile b/iup/srcimglib/Makefile
+index 261537a..873715f 100755
+--- a/iup/srcimglib/Makefile
++++ b/iup/srcimglib/Makefile
+@@ -3,4 +3,4 @@
+ do_all: iupimglib
+ 
+ iupimglib:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak
++ @$(MAKE) --no-print-directory -f ../tecmake.mak
+diff --git a/iup/srcledc/Makefile b/iup/srcledc/Makefile
+index 8854269..71b9235 100755
+--- a/iup/srcledc/Makefile
++++ b/iup/srcledc/Makefile
+@@ -3,4 +3,4 @@
+ do_all: ledc
+ 
+ ledc:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak 
++ @$(MAKE) --no-print-directory -f ../tecmake.mak 
+diff --git a/iup/srclua3/Makefile b/iup/srclua3/Makefile
+index b63716a..0551725 100755
+--- a/iup/srclua3/Makefile
++++ b/iup/srclua3/Makefile
+@@ -3,19 +3,19 @@
+ do_all: iuplua iupluacd iupluacontrols iuplua_pplot iupluagl iupluaim
+ 
+ iuplua:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak 
++ @$(MAKE) --no-print-directory -f ../tecmake.mak 
+ 
+ iupluacd:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcd
++ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcd
+ 
+ iupluacontrols:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcontrols
++ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcontrols
+ 
+ iuplua_pplot:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iup_pplot
++ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iup_pplot
+ 
+ iupluagl:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupgl
++ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupgl
+ 
+ iupluaim:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupim
++ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupim
+diff --git a/iup/srclua3/config.mak b/iup/srclua3/config.mak
+index fae6145..a3ffb1d 100755
+--- a/iup/srclua3/config.mak
++++ b/iup/srclua3/config.mak
+@@ -6,9 +6,9 @@ OPT = YES
+ 
+ LOHDIR = loh
+ SRCLUA = iuplua.lua iuplua_widgets.lua constants.lua spin.lua \
+- sbox.lua val.lua tree.lua tabs.lua
++ sbox.lua split.lua val.lua tree.lua tabs.lua
+ SRC = iuplua.c iuplua_api.c iuplua_widgets.c il_scanf.c il_cbox.c \
+- il_sbox.c il_spin.c il_val.c il_tree.c il_tabs.c il_getcolor.c il_getparam.c
++ il_sbox.c il_split.c il_spin.c il_val.c il_tree.c il_tabs.c il_getcolor.c il_getparam.c
+ 
+ USE_LUA = Yes
+ 
+diff --git a/iup/srclua3/il.h b/iup/srclua3/il.h
+index 406ccc4..63f9866 100755
+--- a/iup/srclua3/il.h
++++ b/iup/srclua3/il.h
+@@ -15,6 +15,7 @@ int iupluaapi_open(void);
+ int iupluawidgets_open(int tag);
+ 
+ int sboxlua_open(void);
++int splitlua_open(void);
+ int spinlua_open(void);
+ int cboxlua_open(void);
+ int gclua_open (void);
+diff --git a/iup/srclua3/il_getparam.c b/iup/srclua3/il_getparam.c
+index 28a41be..6005ce8 100755
+--- a/iup/srclua3/il_getparam.c
++++ b/iup/srclua3/il_getparam.c
+@@ -93,6 +93,8 @@ static void GetParam(void)
+ param_data[i] = malloc(sizeof(float));
+ *(float*)(param_data[i]) = (float)luaL_check_number(lua_param_start); lua_param_start++;
+ break;
++ case 'f':
++ case 'c':
+ case 's':
+ case 'm':
+ s = luaL_check_string(lua_param_start); lua_param_start++;
+@@ -136,6 +138,8 @@ static void GetParam(void)
+ case 'r':
+ lua_pushnumber(*(float*)(param_data[i]));
+ break;
++ case 'f':
++ case 'c':
+ case 's':
+ case 'm':
+ lua_pushstring((char*)(param_data[i]));
+diff --git a/iup/srclua3/il_tree.c b/iup/srclua3/il_tree.c
+index 8d5fcf8..5d145bf 100755
+--- a/iup/srclua3/il_tree.c
++++ b/iup/srclua3/il_tree.c
+@@ -91,6 +91,29 @@ static int TREE_multiselection (Ihandle *handle, int *ids, int n)
+ return iuplua_call();
+ }
+ 
++static int TREE_multiunselection (Ihandle *handle, int *ids, int n)
++{
++ int i;
++ lua_Object tb;
++
++ iuplua_call_start(handle, "multiunselection");
++
++ tb = lua_createtable();
++ for (i = 0; i < n; i++) 
++ {
++ lua_beginblock();
++ lua_pushobject(tb);
++ lua_pushnumber(i+1);
++ lua_pushnumber(ids[i]);
++ lua_settable();
++ lua_endblock(); 
++ }
++ lua_pushobject(tb);
++
++ lua_pushnumber (n);
++ return iuplua_call();
++}
++
+ static int TREE_dragdrop(Ihandle* handle, int drag_id, int drop_id, int isshift, int iscontrol)
+ {
+ iuplua_call_start(handle, "dragdrop");
+@@ -232,6 +255,7 @@ int treelua_open(void)
+ lua_CFunction func;
+ } TreeAssocList [] = {
+ {"iup_tree_multiselection_cb", (lua_CFunction)TREE_multiselection},
++ {"iup_tree_multiunselection_cb", (lua_CFunction)TREE_multiunselection},
+ {"iup_tree_selection_cb", (lua_CFunction)TREE_selection},
+ {"iup_tree_branchopen_cb", (lua_CFunction)TREE_branchopen},
+ {"iup_tree_branchclose_cb", (lua_CFunction)TREE_branchclose},
+diff --git a/iup/srclua3/iuplua.c b/iup/srclua3/iuplua.c
+index 7789ce8..5563699 100755
+--- a/iup/srclua3/iuplua.c
++++ b/iup/srclua3/iuplua.c
+@@ -481,6 +481,7 @@ int iuplua_open(void)
+ iupluawidgets_open(iuplua_tag);
+ 
+ sboxlua_open();
++ splitlua_open();
+ spinlua_open();
+ cboxlua_open();
+ vallua_open();
+diff --git a/iup/srclua3/iuplua_api.c b/iup/srclua3/iuplua_api.c
+index 3221658..a9acf1d 100755
+--- a/iup/srclua3/iuplua_api.c
++++ b/iup/srclua3/iuplua_api.c
+@@ -182,7 +182,7 @@ static void GetAttribute(void)
+ char *name = luaL_check_string(2);
+ Ihandle* ih = iuplua_checkihandle(1);
+ char *value = IupGetAttribute(ih, name);
+- if (!value || iupAttribIsInternal(name))
++ if (!value || iupATTRIB_ISINTERNAL(name))
+ lua_pushnil();
+ else
+ {
+diff --git a/iup/srclua3/iuplua_widgets.c b/iup/srclua3/iuplua_widgets.c
+index f6b801b..7591580 100755
+--- a/iup/srclua3/iuplua_widgets.c
++++ b/iup/srclua3/iuplua_widgets.c
+@@ -170,6 +170,12 @@ static int iupluaUnMapCb(Ihandle* handle)
+ return iuplua_call();
+ }
+ 
++static int iupluaDestroyCb(Ihandle* handle)
++{
++ iuplua_call_start(handle, "destroycb");
++ return iuplua_call();
++}
++
+ static int iupluaMapCb(Ihandle* handle)
+ {
+ iuplua_call_start(handle, "mapcb");
+@@ -610,6 +616,7 @@ int iupluawidgets_open(int tag)
+ { "iup_show_cb", (lua_CFunction)dialog_show},
+ { "iup_map_cb", (lua_CFunction)iupluaMapCb},
+ { "iup_unmap_cb", (lua_CFunction)iupluaUnMapCb},
++ { "iup_destroy_cb", (lua_CFunction)iupluaDestroyCb},
+ { "iup_dropfiles_cb", (lua_CFunction)iupluaDropfilesCb},
+ { "iup_trayclick_cb", (lua_CFunction)dialog_trayclick},
+ { "iup_getfocus_cb", (lua_CFunction)iupluaGetfocusCb},
+diff --git a/iup/srclua3/iuplua_widgets.lua b/iup/srclua3/iuplua_widgets.lua
+index 33be9e3..a59bde6 100755
+--- a/iup/srclua3/iuplua_widgets.lua
++++ b/iup/srclua3/iuplua_widgets.lua
+@@ -875,6 +875,7 @@ iup_callbacks =
+ showcb = {"SHOW_CB", iup_show_cb},
+ mapcb = {"MAP_CB", iup_map_cb},
+ unmapcb = {"UNMAP_CB", iup_unmap_cb},
++ destroycb = {"DESTROY_CB", iup_destroy_cb},
+ dropfiles = {"DROPFILES_CB", iup_dropfiles_cb},
+ menuclose = {"MENUCLOSE_CB", iup_menuclose_cb},
+ highlight = {"HIGHLIGHT_CB", iup_highlight_cb},
+@@ -921,6 +922,7 @@ iup_callbacks.open_cb = iup_callbacks.open
+ iup_callbacks.show_cb = iup_callbacks.showcb 
+ iup_callbacks.map_cb = iup_callbacks.mapcb 
+ iup_callbacks.unmap_cb = iup_callbacks.unmapcb 
++iup_callbacks.destroy_cb = iup_callbacks.destroycb 
+ iup_callbacks.dropfiles_cb = iup_callbacks.dropfiles 
+ iup_callbacks.menuclose_cb = iup_callbacks.menuclose 
+ iup_callbacks.highlight_cb = iup_callbacks.highlight 
+diff --git a/iup/srclua3/tree.lua b/iup/srclua3/tree.lua
+index 659afdb..bf53bca 100755
+--- a/iup/srclua3/tree.lua
++++ b/iup/srclua3/tree.lua
+@@ -47,6 +47,7 @@ iup.TreeSetValue = TreeSetValue
+ 
+ iup_callbacks.selection = {"SELECTION_CB", iup_tree_selection_cb}
+ iup_callbacks.multiselection = {"MULTISELECTION_CB", iup_tree_multiselection_cb}
++iup_callbacks.multiunselection = {"MULTIUNSELECTION_CB", iup_tree_multiunselection_cb}
+ iup_callbacks.branchopen = {"BRANCHOPEN_CB", iup_tree_branchopen_cb}
+ iup_callbacks.branchclose = {"BRANCHCLOSE_CB", iup_tree_branchclose_cb}
+ iup_callbacks.executeleaf = {"EXECUTELEAF_CB", iup_tree_executeleaf_cb}
+@@ -58,6 +59,7 @@ iup_callbacks.dragdrop = {"DRAGDROP_CB", iup_tree_dragdrop_cb}
+ 
+ iup_callbacks.selection_cb = iup_callbacks.selection 
+ iup_callbacks.multiselection_cb = iup_callbacks.multiselection 
++iup_callbacks.multiunselection_cb = iup_callbacks.multiunselection 
+ iup_callbacks.branchopen_cb = iup_callbacks.branchopen 
+ iup_callbacks.branchclose_cb = iup_callbacks.branchclose 
+ iup_callbacks.executeleaf_cb = iup_callbacks.executeleaf 
+diff --git a/iup/srclua5/Makefile b/iup/srclua5/Makefile
+index 3942e79..1189d32 100755
+--- a/iup/srclua5/Makefile
++++ b/iup/srclua5/Makefile
+@@ -3,22 +3,22 @@
+ do_all: iuplua iupluacd iupluacontrols iuplua_pplot iupluagl iupluaim iupluaimglib
+ 
+ iuplua:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak 
++ @$(MAKE) --no-print-directory -f ../tecmake.mak 
+ 
+ iupluacd:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcd
++ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcd
+ 
+ iupluacontrols:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcontrols
++ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcontrols
+ 
+ iuplua_pplot:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iup_pplot
++ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iup_pplot
+ 
+ iupluagl:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupgl
++ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupgl
+ 
+ iupluaim:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupim
++ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupim
+ 
+ iupluaimglib:
+- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupimglib
++ @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupimglib
+diff --git a/iup/srclua5/button.lua b/iup/srclua5/button.lua
+index 946a05e..fc57b1a 100755
+--- a/iup/srclua5/button.lua
++++ b/iup/srclua5/button.lua
+@@ -3,16 +3,16 @@
+ ------------------------------------------------------------------------------
+ local ctrl = {
+ nick = "button",
+- parent = WIDGET,
++ parent = iup.WIDGET,
+ creation = "S-",
+ callback = {
+ action = "", 
+ }
+ } 
+ 
+-function ctrl.createElement(class, arg)
+- return Button(arg.title)
++function ctrl.createElement(class, param)
++ return iup.Button(param.title)
+ end
+ 
+-iupRegisterWidget(ctrl)
+-iupSetClass(ctrl, "iup widget")
++iup.RegisterWidget(ctrl)
++iup.SetClass(ctrl, "iup widget")
+diff --git a/iup/srclua5/canvas.lua b/iup/srclua5/canvas.lua
+index 562d671..101c4f4 100755
+--- a/iup/srclua5/canvas.lua
++++ b/iup/srclua5/canvas.lua
+@@ -3,7 +3,7 @@
+ ------------------------------------------------------------------------------
+ local ctrl = {
+ nick = "canvas",
+- parent = WIDGET,
++ parent = iup.WIDGET,
+ creation = "-",
+ callback = {
+ action = "ff",
+@@ -21,9 +21,9 @@ local ctrl = {
+ }
+ }
+ 
+-function ctrl.createElement(class, arg)
+- return Canvas()
++function ctrl.createElement(class, param)
++ return iup.Canvas()
+ end
+ 
+-iupRegisterWidget(ctrl)
+-iupSetClass(ctrl, "iup widget")
++iup.RegisterWidget(ctrl)
++iup.SetClass(ctrl, "iup widget")
+diff --git a/iup/srclua5/cbox.lua b/iup/srclua5/cbox.lua
+index 3533970..81ba9be 100755
+--- a/iup/srclua5/cbox.lua
++++ b/iup/srclua5/cbox.lua
+@@ -3,7 +3,7 @@
+ ------------------------------------------------------------------------------
+ local ctrl = {
+ nick = "cbox",
+- parent = WIDGET,
++ parent = iup.WIDGET,
+ creation = "v",
+ callback = {},
+ funcname = "Cboxv",
+@@ -20,9 +20,9 @@ static int Cboxv(lua_State *L)
+ ]],
+ }
+ 
+-function ctrl.createElement(class, arg)
+- return Cboxv(arg)
++function ctrl.createElement(class, param)
++ return iup.Cboxv(param)
+ end
+ 
+-iupRegisterWidget(ctrl)
+-iupSetClass(ctrl, "iup widget")
++iup.RegisterWidget(ctrl)
++iup.SetClass(ctrl, "iup widget")
+diff --git a/iup/srclua5/cells.lua b/iup/srclua5/cells.lua
+index 9c914f2..0355b17 100755
+--- a/iup/srclua5/cells.lua
++++ b/iup/srclua5/cells.lua
+@@ -3,7 +3,7 @@
+ ------------------------------------------------------------------------------
+ local ctrl = {
+ nick = "cells",
+- parent = WIDGET,
++ parent = iup.WIDGET,
+ creation = "",
+ callback = {
+ mouseclick_cb = "nnnnnns",
+@@ -24,9 +24,9 @@ function ctrl.redraw(handle)
+ handle.repaint = "YES"
+ end
+ 
+-function ctrl.createElement(class, arg)
+- return Cells()
++function ctrl.createElement(class, param)
++ return iup.Cells()
+ end
+ 
+-iupRegisterWidget(ctrl)
+-iupSetClass(ctrl, "iup widget")
++iup.RegisterWidget(ctrl)
++iup.SetClass(ctrl, "iup widget")
+diff --git a/iup/srclua5/clipboard.lua b/iup/srclua5/clipboard.lua
+index e60b8bd..663215b 100755
+--- a/iup/srclua5/clipboard.lua
++++ b/iup/srclua5/clipboard.lua
+@@ -3,15 +3,15 @@
+ ------------------------------------------------------------------------------
+ local ctrl = {
+ nick = "clipboard",
+- parent = WIDGET,
++ parent = iup.WIDGET,
+ creation = "",
+ callback = {
+ },
+ } 
+ 
+-function ctrl.createElement(class, arg)
+- return Clipboard()
++function ctrl.createElement(class, param)
++ return iup.Clipboard()
+ end
+ 
+-iupRegisterWidget(ctrl)
+-iupSetClass(ctrl, "iup widget")
++iup.RegisterWidget(ctrl)
++iup.SetClass(ctrl, "iup widget")
+diff --git a/iup/srclua5/colorbar.lua b/iup/srclua5/colorbar.lua
+index 524d5f3..7cc07db 100755
+--- a/iup/srclua5/colorbar.lua
++++ b/iup/srclua5/colorbar.lua
+@@ -3,7 +3,7 @@
+ ------------------------------------------------------------------------------
+ local ctrl = {
+ nick = "colorbar",
+- parent = WIDGET,
++ parent = iup.WIDGET,
+ creation = "",
+ callback = {
+ select_cb = "nn",
+@@ -15,12 +15,12 @@ local ctrl = {
+ include = "iupcontrols.h",
+ }
+ 
+-PRIMARY = -1
+-SECONDARY = -2
++iup.PRIMARY = -1
++iup.SECONDARY = -2
+ 
+-function ctrl.createElement(class, arg)
+- return Colorbar(arg.action)
++function ctrl.createElement(class, param)
++ return iup.Colorbar(param.action)
+ end
+ 
+-iupRegisterWidget(ctrl)
+-iupSetClass(ctrl, "iup widget")
++iup.RegisterWidget(ctrl)
++iup.SetClass(ctrl, "iup widget")
+diff --git a/iup/srclua5/colorbrowser.lua b/iup/srclua5/colorbrowser.lua
+index 16ac58f..496ce21 100755
+--- a/iup/srclua5/colorbrowser.lua
++++ b/iup/srclua5/colorbrowser.lua
+@@ -3,7 +3,7 @@
+ ------------------------------------------------------------------------------
+ local ctrl = {
+ nick = "colorbrowser",
+- parent = WIDGET,
++ parent = iup.WIDGET,
+ creation = "",
+ callback = {
+ drag_cb = "ccc",
+@@ -13,9 +13,9 @@ local ctrl = {
+ include = "iupcontrols.h",
+ }
+ 
+-function ctrl.createElement(class, arg)
+- return ColorBrowser(arg.action)
++function ctrl.createElement(class, param)
++ return iup.ColorBrowser(param.action)
+ end
+ 
+-iupRegisterWidget(ctrl)
+-iupSetClass(ctrl, "iup widget")
++iup.RegisterWidget(ctrl)
++iup.SetClass(ctrl, "iup widget")
+diff --git a/iup/srclua5/colordlg.lua b/iup/srclua5/colordlg.lua
+index 6eea53b..d6a71a4 100755
+--- a/iup/srclua5/colordlg.lua
++++ b/iup/srclua5/colordlg.lua
+@@ -3,24 +3,24 @@
+ ------------------------------------------------------------------------------
+ local ctrl = {
+ nick = "colordlg",
+- parent = WIDGET,
++ parent = iup.WIDGET,
+ creation = "",
+ funcname = "ColorDlg",
+ callback = {}
+ } 
+ 
+ function ctrl.popup(handle, x, y)
+- Popup(handle,x,y)
++ iup.Popup(handle,x,y)
+ end
+ 
+ function ctrl.destroy(handle)
+- return Destroy(handle)
++ return iup.Destroy(handle)
+ end
+ 
+-function ctrl.createElement(class, arg)
+- return ColorDlg()
++function ctrl.createElement(class, param)
++ return iup.ColorDlg()
+ end
+ 
+-iupRegisterWidget(ctrl)
+-iupSetClass(ctrl, "iup widget")
++iup.RegisterWidget(ctrl)
++iup.SetClass(ctrl, "iup widget")
+ 
+diff --git a/iup/srclua5/config.mak b/iup/srclua5/config.mak
+index 7979f0e..921aa29 100755
+--- a/iup/srclua5/config.mak
++++ b/iup/srclua5/config.mak
+@@ -17,7 +17,7 @@ CTRLUA = button.lua canvas.lua dialog.lua colordlg.lua clipboard.lua \
+ item.lua image.lua imagergb.lua imagergba.lua label.lua \
+ menu.lua multiline.lua list.lua separator.lua user.lua \
+ submenu.lua text.lua toggle.lua vbox.lua zbox.lua timer.lua \
+- sbox.lua spin.lua spinbox.lua cbox.lua messagedlg.lua \
++ sbox.lua split.lua spin.lua spinbox.lua cbox.lua messagedlg.lua \
+ radio.lua val.lua tabs.lua fontdlg.lua tree.lua progressbar.lua
+ 
+ GC := $(addsuffix .c, $(basename $(CTRLUA)))
+diff --git a/iup/srclua5/constants.lua b/iup/srclua5/constants.lua
+index 9a72f6a..2a1e76f 100755
+--- a/iup/srclua5/constants.lua
++++ b/iup/srclua5/constants.lua
+@@ -3,70 +3,70 @@
+ ----------------------------------------------------------------------------
+ -- Common return values 
+ ----------------------------------------------------------------------------
+-ERROR = 1
+-NOERROR = 0
+-OPENED = -1
+-INVALID = -1
++iup.ERROR = 1
++iup.NOERROR = 0
++iup.OPENED = -1
++iup.INVALID = -1
+ 
+ ----------------------------------------------------------------------------
+ -- Callback return values 
+ ----------------------------------------------------------------------------
+-IGNORE = -1
+-DEFAULT = -2
+-CLOSE = -3
+-CONTINUE = -4
++iup.IGNORE = -1
++iup.DEFAULT = -2
++iup.CLOSE = -3
++iup.CONTINUE = -4
+ 
+ ----------------------------------------------------------------------------
+ -- IupPopup e IupShowXY 
+ ------------------------------- \ No newline at end of file